From 3a04288f3aff3ec285686ee043dfe00046c7afaf Mon Sep 17 00:00:00 2001 From: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com> Date: Thu, 29 Jun 2023 00:23:58 -0400 Subject: [PATCH] Bolt Signals for Airlocks (#181) # Description Adds bolt signals to airlocks, mostly for use with Brig timers. How was this not done before? # Changelog :cl: - add: Airlocks now have various Bolt signal ports. --- Content.Server/Doors/Systems/AirlockSystem.cs | 14 +++++++++++++ .../Doors/Components/AirlockComponent.cs | 20 +++++++++++++++++++ .../en-US/machine-linking/receiver_ports.ftl | 10 ++++++++++ .../Doors/Airlocks/base_structureairlocks.yml | 3 +++ .../MachineLinking/receiver_ports.yml | 14 +++++++++++++ 5 files changed, 61 insertions(+) create mode 100644 Resources/Prototypes/SimpleStation14/MachineLinking/receiver_ports.yml diff --git a/Content.Server/Doors/Systems/AirlockSystem.cs b/Content.Server/Doors/Systems/AirlockSystem.cs index 4dc8a3dc99..33baec9f21 100644 --- a/Content.Server/Doors/Systems/AirlockSystem.cs +++ b/Content.Server/Doors/Systems/AirlockSystem.cs @@ -50,6 +50,20 @@ private void OnSignalReceived(EntityUid uid, AirlockComponent component, SignalR { component.AutoClose = false; } + // Parkstation-BoltSignal-Start + else if (args.Port == component.BoltPort) + { + SetBoltsWithAudio(uid, component, true); + } + else if (args.Port == component.UnBoltPort) + { + SetBoltsWithAudio(uid, component, false); + } + else if (args.Port == component.ToggleBoltPort) + { + SetBoltsWithAudio(uid, component, !component.BoltsDown); + } + // Parkstation-BoltSignal-End } private void OnPowerChanged(EntityUid uid, AirlockComponent component, ref PowerChangedEvent args) diff --git a/Content.Shared/Doors/Components/AirlockComponent.cs b/Content.Shared/Doors/Components/AirlockComponent.cs index 2d343da615..c37f02ca7b 100644 --- a/Content.Shared/Doors/Components/AirlockComponent.cs +++ b/Content.Shared/Doors/Components/AirlockComponent.cs @@ -98,6 +98,26 @@ public sealed class AirlockComponent : Component [DataField("autoClosePort", customTypeSerializer: typeof(PrototypeIdSerializer))] public string AutoClosePort = "AutoClose"; + // Parkstation-BoltSignal-Start + /// + /// The receiver port for bolting the airlock. + /// + [DataField("boltPort", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string BoltPort = "Bolt"; + + /// + /// The receiver port for unbolt the airlock. + /// + [DataField("unBoltPort", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string UnBoltPort = "UnBolt"; + + /// + /// The receiver port for toggling the bolt state of the airlock. + /// + [DataField("toggleBoltPort", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string ToggleBoltPort = "ToggleBolt"; + // Parkstation-BoltSignal-End + #region Graphics /// diff --git a/Resources/Locale/en-US/machine-linking/receiver_ports.ftl b/Resources/Locale/en-US/machine-linking/receiver_ports.ftl index b86e711b17..29cb487d22 100644 --- a/Resources/Locale/en-US/machine-linking/receiver_ports.ftl +++ b/Resources/Locale/en-US/machine-linking/receiver_ports.ftl @@ -54,3 +54,13 @@ signal-port-description-artifact-analyzer-sender = Analysis console signal sende signal-port-name-artifact-analyzer-receiver = Pad signal-port-description-artifact-analyzer-receiver = Artifact analyzer signal receiver + +## Parkstation +signal-port-name-bolt = Bolt +signal-port-description-bolt = Bolts the door. + +signal-port-name-unbolt = Unbolt +signal-port-description-unbolt = Unbolts the door. + +signal-port-name-togglebolt = Toggle bolt +signal-port-description-togglebolt = Toggles the bolt state of the door. diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml index d8dc64b45d..bbcebfc59f 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml @@ -83,6 +83,9 @@ Close: [] Toggle: [] AutoClose: [] + Bolt: [] + UnBolt: [] + ToggleBolt: [] - type: UserInterface interfaces: - key: enum.WiresUiKey.Key diff --git a/Resources/Prototypes/SimpleStation14/MachineLinking/receiver_ports.yml b/Resources/Prototypes/SimpleStation14/MachineLinking/receiver_ports.yml new file mode 100644 index 0000000000..822c22c89e --- /dev/null +++ b/Resources/Prototypes/SimpleStation14/MachineLinking/receiver_ports.yml @@ -0,0 +1,14 @@ +- type: receiverPort + id: Bolt + name: signal-port-name-bolt + description: signal-port-description-bolt + +- type: receiverPort + id: UnBolt + name: signal-port-name-unbolt + description: signal-port-description-unbolt + +- type: receiverPort + id: ToggleBolt + name: signal-port-name-togglebolt + description: signal-port-description-togglebolt