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 TileData = new(); private PuddleOverlay? _overlay; public override void Initialize() { base.Initialize(); SubscribeNetworkEvent(DisableOverlay); SubscribeNetworkEvent(RenderDebugData); } private void RenderDebugData(PuddleOverlayDebugMessage message) { TileData[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; } }