ParticleAcceleratorPartVisualizerSystem.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. using System.Linq;
  2. using Content.Shared.Singularity.Components;
  3. using Robust.Client.GameObjects;
  4. namespace Content.Client.ParticleAccelerator;
  5. public sealed class ParticleAcceleratorPartVisualizerSystem : VisualizerSystem<ParticleAcceleratorPartVisualsComponent>
  6. {
  7. protected override void OnAppearanceChange(EntityUid uid, ParticleAcceleratorPartVisualsComponent comp, ref AppearanceChangeEvent args)
  8. {
  9. if (args.Sprite == null)
  10. return;
  11. if (!args.Sprite.LayerMapTryGet(ParticleAcceleratorVisualLayers.Unlit, out var index))
  12. return;
  13. if (!AppearanceSystem.TryGetData<ParticleAcceleratorVisualState>(uid, ParticleAcceleratorVisuals.VisualState, out var state, args.Component))
  14. {
  15. state = ParticleAcceleratorVisualState.Unpowered;
  16. }
  17. if (state != ParticleAcceleratorVisualState.Unpowered)
  18. {
  19. args.Sprite.LayerSetVisible(index, true);
  20. args.Sprite.LayerSetState(index, comp.StateBase + comp.StatesSuffixes[state]);
  21. }
  22. else
  23. {
  24. args.Sprite.LayerSetVisible(index, false);
  25. }
  26. }
  27. }