EnvelopeSystem.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Content.Shared.Paper;
  2. using Robust.Client.GameObjects;
  3. namespace Content.Client.Paper;
  4. public sealed class EnvelopeSystem : VisualizerSystem<EnvelopeComponent>
  5. {
  6. public override void Initialize()
  7. {
  8. base.Initialize();
  9. SubscribeLocalEvent<EnvelopeComponent, AfterAutoHandleStateEvent>(OnAfterAutoHandleState);
  10. }
  11. private void OnAfterAutoHandleState(Entity<EnvelopeComponent> ent, ref AfterAutoHandleStateEvent args)
  12. {
  13. UpdateAppearance(ent);
  14. }
  15. private void UpdateAppearance(Entity<EnvelopeComponent> ent, SpriteComponent? sprite = null)
  16. {
  17. if (!Resolve(ent.Owner, ref sprite))
  18. return;
  19. sprite.LayerSetVisible(EnvelopeVisualLayers.Open, ent.Comp.State == EnvelopeComponent.EnvelopeState.Open);
  20. sprite.LayerSetVisible(EnvelopeVisualLayers.Sealed, ent.Comp.State == EnvelopeComponent.EnvelopeState.Sealed);
  21. sprite.LayerSetVisible(EnvelopeVisualLayers.Torn, ent.Comp.State == EnvelopeComponent.EnvelopeState.Torn);
  22. }
  23. public enum EnvelopeVisualLayers : byte
  24. {
  25. Open,
  26. Sealed,
  27. Torn
  28. }
  29. }