1
0

PuddleDebugOverlaySystem.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Collections;
  2. using Content.Shared.Fluids;
  3. using Robust.Client.Graphics;
  4. namespace Content.Client.Fluids;
  5. public sealed class PuddleDebugOverlaySystem : SharedPuddleDebugOverlaySystem
  6. {
  7. [Dependency] private readonly IOverlayManager _overlayManager = default!;
  8. public readonly Dictionary<EntityUid, PuddleOverlayDebugMessage> TileData = new();
  9. private PuddleOverlay? _overlay;
  10. public override void Initialize()
  11. {
  12. base.Initialize();
  13. SubscribeNetworkEvent<PuddleOverlayDisableMessage>(DisableOverlay);
  14. SubscribeNetworkEvent<PuddleOverlayDebugMessage>(RenderDebugData);
  15. }
  16. private void RenderDebugData(PuddleOverlayDebugMessage message)
  17. {
  18. TileData[GetEntity(message.GridUid)] = message;
  19. if (_overlay != null)
  20. return;
  21. _overlay = new PuddleOverlay();
  22. _overlayManager.AddOverlay(_overlay);
  23. }
  24. private void DisableOverlay(PuddleOverlayDisableMessage message)
  25. {
  26. TileData.Clear();
  27. if (_overlay == null)
  28. return;
  29. _overlayManager.RemoveOverlay(_overlay);
  30. _overlay = null;
  31. }
  32. public PuddleDebugOverlayData[] GetData(EntityUid mapGridGridEntityId)
  33. {
  34. return TileData[mapGridGridEntityId].OverlayData;
  35. }
  36. }