1
0

AutodocSafetyWireAction.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
  2. // SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
  3. // SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
  4. //
  5. // SPDX-License-Identifier: AGPL-3.0-or-later
  6. using Content.Server.Wires;
  7. using Content.Shared._Shitmed.Autodoc.Components;
  8. using Content.Shared._Shitmed.Autodoc.Systems;
  9. using Content.Shared.Wires;
  10. namespace Content.Server._Shitmed.Autodoc;
  11. public sealed partial class AutodocSafetyWireAction : ComponentWireAction<AutodocComponent>
  12. {
  13. public override Color Color { get; set; } = Color.Red;
  14. public override string Name { get; set; } = "wire-name-autodoc-safety";
  15. public override StatusLightState? GetLightState(Wire wire, AutodocComponent comp)
  16. => comp.RequireSleeping ? StatusLightState.On : StatusLightState.Off;
  17. public override object StatusKey { get; } = AutodocWireStatus.SafetyIndicator;
  18. public override bool Cut(EntityUid user, Wire wire, AutodocComponent comp)
  19. {
  20. var uid = wire.Owner;
  21. EntityManager.System<SharedAutodocSystem>().SetSafety((uid, comp), false);
  22. return true;
  23. }
  24. public override bool Mend(EntityUid user, Wire wire, AutodocComponent comp)
  25. {
  26. var uid = wire.Owner;
  27. EntityManager.System<SharedAutodocSystem>().SetSafety((uid, comp), true);
  28. return true;
  29. }
  30. public override void Pulse(EntityUid user, Wire wire, AutodocComponent comp)
  31. {
  32. var uid = wire.Owner;
  33. EntityManager.System<SharedAutodocSystem>().SetSafety((uid, comp), !comp.RequireSleeping);
  34. }
  35. }