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:
metalgearsloth
2020-07-10 22:18:21 +10:00
committed by GitHub
parent 257189141e
commit 13e3dc7a70

View File

@@ -15,6 +15,10 @@ namespace Content.Client.GameObjects.EntitySystems.AI
#if DEBUG
public class ClientAiDebugSystem : EntitySystem
{
#pragma warning disable 649
[Dependency] private IEyeManager _eyeManager;
#pragma restore disable 649
private AiDebugMode _tooltips = AiDebugMode.None;
private readonly Dictionary<IEntity, PanelContainer> _aiBoxes = new Dictionary<IEntity,PanelContainer>();
@@ -23,26 +27,44 @@ namespace Content.Client.GameObjects.EntitySystems.AI
base.Update(frameTime);
if (_tooltips == 0)
{
if (_aiBoxes.Count > 0)
{
foreach (var (_, panel) in _aiBoxes)
{
panel.Dispose();
}
_aiBoxes.Clear();
}
return;
}
var eyeManager = IoCManager.Resolve<IEyeManager>();
var deletedEntities = new List<IEntity>(0);
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;
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);
panel.Visible = true;
LayoutContainer.SetPosition(panel, offsetPosition);
}
foreach (var entity in deletedEntities)
{
_aiBoxes.Remove(entity);
}
}
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?
var entityManager = IoCManager.Resolve<IEntityManager>();
var entity = entityManager.GetEntity(message.EntityUid);
if (entity == null)
{
return;
}
TryCreatePanel(entity);
// 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 entity = entityManager.GetEntity(message.EntityUid);
if (entity == null)
{
return;
}
TryCreatePanel(entity);
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 entity = entityManager.GetEntity(message.EntityUid);
if (entity == null)
{
return;
}
TryCreatePanel(entity);
var label = (Label) _aiBoxes[entity].GetChild(0).GetChild(1);