Fix mob panel debug (#1334)
The panel was staying when an individual part was toggled. I also removed some other redundant code. Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
This commit is contained in:
@@ -15,6 +15,10 @@ namespace Content.Client.GameObjects.EntitySystems.AI
|
|||||||
#if DEBUG
|
#if DEBUG
|
||||||
public class ClientAiDebugSystem : EntitySystem
|
public class ClientAiDebugSystem : EntitySystem
|
||||||
{
|
{
|
||||||
|
#pragma warning disable 649
|
||||||
|
[Dependency] private IEyeManager _eyeManager;
|
||||||
|
#pragma restore disable 649
|
||||||
|
|
||||||
private AiDebugMode _tooltips = AiDebugMode.None;
|
private AiDebugMode _tooltips = AiDebugMode.None;
|
||||||
private readonly Dictionary<IEntity, PanelContainer> _aiBoxes = new Dictionary<IEntity,PanelContainer>();
|
private readonly Dictionary<IEntity, PanelContainer> _aiBoxes = new Dictionary<IEntity,PanelContainer>();
|
||||||
|
|
||||||
@@ -23,26 +27,44 @@ namespace Content.Client.GameObjects.EntitySystems.AI
|
|||||||
base.Update(frameTime);
|
base.Update(frameTime);
|
||||||
if (_tooltips == 0)
|
if (_tooltips == 0)
|
||||||
{
|
{
|
||||||
|
if (_aiBoxes.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var (_, panel) in _aiBoxes)
|
||||||
|
{
|
||||||
|
panel.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
_aiBoxes.Clear();
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var eyeManager = IoCManager.Resolve<IEyeManager>();
|
var deletedEntities = new List<IEntity>(0);
|
||||||
foreach (var (entity, panel) in _aiBoxes)
|
foreach (var (entity, panel) in _aiBoxes)
|
||||||
{
|
{
|
||||||
if (entity == null) continue;
|
if (entity.Deleted)
|
||||||
|
{
|
||||||
|
deletedEntities.Add(entity);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (!eyeManager.GetWorldViewport().Contains(entity.Transform.WorldPosition))
|
if (!_eyeManager.GetWorldViewport().Contains(entity.Transform.WorldPosition))
|
||||||
{
|
{
|
||||||
panel.Visible = false;
|
panel.Visible = false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var (x, y) = eyeManager.WorldToScreen(entity.Transform.GridPosition).Position;
|
var (x, y) = _eyeManager.WorldToScreen(entity.Transform.GridPosition).Position;
|
||||||
var offsetPosition = new Vector2(x - panel.Width / 2, y - panel.Height - 50f);
|
var offsetPosition = new Vector2(x - panel.Width / 2, y - panel.Height - 50f);
|
||||||
panel.Visible = true;
|
panel.Visible = true;
|
||||||
|
|
||||||
LayoutContainer.SetPosition(panel, offsetPosition);
|
LayoutContainer.SetPosition(panel, offsetPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var entity in deletedEntities)
|
||||||
|
{
|
||||||
|
_aiBoxes.Remove(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
@@ -60,11 +82,6 @@ namespace Content.Client.GameObjects.EntitySystems.AI
|
|||||||
// I guess if it's out of range we don't know about it?
|
// I guess if it's out of range we don't know about it?
|
||||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||||
var entity = entityManager.GetEntity(message.EntityUid);
|
var entity = entityManager.GetEntity(message.EntityUid);
|
||||||
if (entity == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TryCreatePanel(entity);
|
TryCreatePanel(entity);
|
||||||
|
|
||||||
// Probably shouldn't access by index but it's a debugging tool so eh
|
// Probably shouldn't access by index but it's a debugging tool so eh
|
||||||
@@ -82,11 +99,6 @@ namespace Content.Client.GameObjects.EntitySystems.AI
|
|||||||
{
|
{
|
||||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||||
var entity = entityManager.GetEntity(message.EntityUid);
|
var entity = entityManager.GetEntity(message.EntityUid);
|
||||||
if (entity == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TryCreatePanel(entity);
|
TryCreatePanel(entity);
|
||||||
|
|
||||||
var label = (Label) _aiBoxes[entity].GetChild(0).GetChild(1);
|
var label = (Label) _aiBoxes[entity].GetChild(0).GetChild(1);
|
||||||
@@ -102,11 +114,6 @@ namespace Content.Client.GameObjects.EntitySystems.AI
|
|||||||
{
|
{
|
||||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||||
var entity = entityManager.GetEntity(message.EntityUid);
|
var entity = entityManager.GetEntity(message.EntityUid);
|
||||||
if (entity == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TryCreatePanel(entity);
|
TryCreatePanel(entity);
|
||||||
|
|
||||||
var label = (Label) _aiBoxes[entity].GetChild(0).GetChild(1);
|
var label = (Label) _aiBoxes[entity].GetChild(0).GetChild(1);
|
||||||
|
|||||||
Reference in New Issue
Block a user