MechAssemblyVisualizerSystem.cs 747 B

123456789101112131415161718192021222324
  1. using Content.Shared.Mech;
  2. using Robust.Client.GameObjects;
  3. namespace Content.Client.Mech;
  4. /// <summary>
  5. /// Handles the sprite state changes while
  6. /// constructing mech assemblies.
  7. /// </summary>
  8. public sealed class MechAssemblyVisualizerSystem : VisualizerSystem<MechAssemblyVisualsComponent>
  9. {
  10. protected override void OnAppearanceChange(EntityUid uid, MechAssemblyVisualsComponent component,
  11. ref AppearanceChangeEvent args)
  12. {
  13. base.OnAppearanceChange(uid, component, ref args);
  14. if (!AppearanceSystem.TryGetData<int>(uid, MechAssemblyVisuals.State, out var stage, args.Component))
  15. return;
  16. var state = component.StatePrefix + stage;
  17. args.Sprite?.LayerSetState(0, state);
  18. }
  19. }