using Robust.Client.GameObjects; using static Content.Shared.Paper.PaperComponent; namespace Content.Client.Paper.UI; public sealed class PaperVisualizerSystem : VisualizerSystem { [Dependency] private readonly SpriteSystem _sprite = default!; protected override void OnAppearanceChange(EntityUid uid, PaperVisualsComponent component, ref AppearanceChangeEvent args) { if (args.Sprite == null) return; if (AppearanceSystem.TryGetData(uid, PaperVisuals.Status, out var writingStatus, args.Component)) _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Writing, writingStatus == PaperStatus.Written); if (AppearanceSystem.TryGetData(uid, PaperVisuals.Stamp, out var stampState, args.Component)) { if (stampState != string.Empty) { _sprite.LayerSetRsiState((uid, args.Sprite), PaperVisualLayers.Stamp, stampState); _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Stamp, true); } else { _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Stamp, false); } } } } public enum PaperVisualLayers { Stamp, Writing }