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
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user