1
0

EmergencyLightSystem.cs 1.0 KB

1234567891011121314151617181920212223242526
  1. using Content.Client.Light.Components;
  2. using Content.Shared.Light.Components;
  3. using Robust.Client.GameObjects;
  4. namespace Content.Client.Light.EntitySystems;
  5. public sealed class EmergencyLightSystem : VisualizerSystem<EmergencyLightComponent>
  6. {
  7. protected override void OnAppearanceChange(EntityUid uid, EmergencyLightComponent comp, ref AppearanceChangeEvent args)
  8. {
  9. if (args.Sprite == null)
  10. return;
  11. if (!AppearanceSystem.TryGetData<bool>(uid, EmergencyLightVisuals.On, out var on, args.Component))
  12. on = false;
  13. args.Sprite.LayerSetVisible(EmergencyLightVisualLayers.LightOff, !on);
  14. args.Sprite.LayerSetVisible(EmergencyLightVisualLayers.LightOn, on);
  15. if (AppearanceSystem.TryGetData<Color>(uid, EmergencyLightVisuals.Color, out var color, args.Component))
  16. {
  17. args.Sprite.LayerSetColor(EmergencyLightVisualLayers.LightOn, color);
  18. args.Sprite.LayerSetColor(EmergencyLightVisualLayers.LightOff, color);
  19. }
  20. }
  21. }