DoorBoltLightWireAction.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Content.Server.Doors.Systems;
  2. using Content.Server.Wires;
  3. using Content.Shared.Doors;
  4. using Content.Shared.Doors.Components;
  5. using Content.Shared.Wires;
  6. namespace Content.Server.Doors;
  7. public sealed partial class DoorBoltLightWireAction : ComponentWireAction<DoorBoltComponent>
  8. {
  9. public override Color Color { get; set; } = Color.Lime;
  10. public override string Name { get; set; } = "wire-name-bolt-light";
  11. public override StatusLightState? GetLightState(Wire wire, DoorBoltComponent comp)
  12. => comp.BoltLightsEnabled ? StatusLightState.On : StatusLightState.Off;
  13. public override object StatusKey { get; } = AirlockWireStatus.BoltLightIndicator;
  14. public override bool Cut(EntityUid user, Wire wire, DoorBoltComponent door)
  15. {
  16. EntityManager.System<DoorSystem>().SetBoltLightsEnabled((wire.Owner, door), false);
  17. return true;
  18. }
  19. public override bool Mend(EntityUid user, Wire wire, DoorBoltComponent door)
  20. {
  21. EntityManager.System<DoorSystem>().SetBoltLightsEnabled((wire.Owner, door), true);
  22. return true;
  23. }
  24. public override void Pulse(EntityUid user, Wire wire, DoorBoltComponent door)
  25. {
  26. EntityManager.System<DoorSystem>().SetBoltLightsEnabled((wire.Owner, door), !door.BoltLightsEnabled);
  27. }
  28. }