2022-11-15 12:30:59 +01:00
|
|
|
|
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)
|
|
|
|
|
|
{
|
2023-09-11 09:42:41 +10:00
|
|
|
|
TileData[GetEntity(message.GridUid)] = message;
|
2022-11-15 12:30:59 +01:00
|
|
|
|
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;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|