using Content.Shared.Paper; using Robust.Client.GameObjects; namespace Content.Client.Paper; public sealed class EnvelopeSystem : VisualizerSystem { public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAfterAutoHandleState); } private void OnAfterAutoHandleState(Entity ent, ref AfterAutoHandleStateEvent args) { UpdateAppearance(ent); } private void UpdateAppearance(Entity ent, SpriteComponent? sprite = null) { if (!Resolve(ent.Owner, ref sprite)) return; sprite.LayerSetVisible(EnvelopeVisualLayers.Open, ent.Comp.State == EnvelopeComponent.EnvelopeState.Open); sprite.LayerSetVisible(EnvelopeVisualLayers.Sealed, ent.Comp.State == EnvelopeComponent.EnvelopeState.Sealed); sprite.LayerSetVisible(EnvelopeVisualLayers.Torn, ent.Comp.State == EnvelopeComponent.EnvelopeState.Torn); } public enum EnvelopeVisualLayers : byte { Open, Sealed, Torn } }