CatStation/Content.Client/Paper/PaperVisualizerSystem.cs
āda 826adad181
Split PaperVisualsComponent (#43771)
* commit

* minor tweak

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
2026-05-01 14:55:16 +00:00

41 lines
1.3 KiB
C#

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