Files
tbd-station-14/Content.Client/Fluids/PuddleDebugOverlaySystem.cs
2023-09-11 09:42:41 +10:00

46 lines
1.3 KiB
C#

using System.Collections;
using Content.Shared.Fluids;
using Robust.Client.Graphics;
namespace Content.Client.Fluids;
public sealed class PuddleDebugOverlaySystem : SharedPuddleDebugOverlaySystem
{
[Dependency] private readonly IOverlayManager _overlayManager = default!;
public readonly Dictionary<EntityUid, PuddleOverlayDebugMessage> TileData = new();
private PuddleOverlay? _overlay;
public override void Initialize()
{
base.Initialize();
SubscribeNetworkEvent<PuddleOverlayDisableMessage>(DisableOverlay);
SubscribeNetworkEvent<PuddleOverlayDebugMessage>(RenderDebugData);
}
private void RenderDebugData(PuddleOverlayDebugMessage message)
{
TileData[GetEntity(message.GridUid)] = message;
if (_overlay != null)
return;
_overlay = new PuddleOverlay();
_overlayManager.AddOverlay(_overlay);
}
private void DisableOverlay(PuddleOverlayDisableMessage message)
{
TileData.Clear();
if (_overlay == null)
return;
_overlayManager.RemoveOverlay(_overlay);
_overlay = null;
}
public PuddleDebugOverlayData[] GetData(EntityUid mapGridGridEntityId)
{
return TileData[mapGridGridEntityId].OverlayData;
}
}