]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Completes secure wiring across all airlocks and windoors (#30794)
authorVelcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Mon, 9 Sep 2024 19:35:47 +0000 (14:35 -0500)
committerGitHub <noreply@github.com>
Mon, 9 Sep 2024 19:35:47 +0000 (13:35 -0600)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml
Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml
Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml
Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml
Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml
Resources/Prototypes/Wires/layouts.yml
Resources/Prototypes/tags.yml

index 0c280f339ac3c9fe6ce00ff4b794c1821863a515..51484b9599ea295b88c9e3d79dab8c4cddc55fb9 100644 (file)
@@ -90,6 +90,8 @@
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsCargo ]
+  - type: Wires
+    layoutId: AirlockCargo
 
 - type: entity
   parent: AirlockExternal
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsEngineering ]
+  - type: Wires
+    layoutId: AirlockEngineering
 
 - type: entity
   parent: AirlockExternal
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsAtmospherics ]
+  - type: Wires
+    layoutId: AirlockEngineering
 
 - type: entity
   parent: AirlockExternal
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsSyndicateAgent ]
+  - type: Wires
+    layoutId: AirlockSecurity
 
 - type: entity
   parent: AirlockExternal
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsNukeop ]
+  - type: Wires
+    layoutId: AirlockSecurity
 
 - type: entity
   parent: AirlockFreezer
       board: [ DoorElectronicsTheatre ]
 
 - type: entity
-  parent: AirlockGlass
+  parent: AirlockServiceGlassLocked
   id: AirlockBarGlassLocked
   suffix: Bar, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsCargo ]
+  - type: Wires
+    layoutId: AirlockCargo
 
 - type: entity
   parent: AirlockExternalGlass
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsSyndicateAgent ]
+  - type: Wires
+    layoutId: AirlockSecurity
 
 - type: entity
   parent: AirlockExternalGlass
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsNukeop ]
+  - type: Wires
+    layoutId: AirlockSecurity
 
 - type: entity
   parent: AirlockExternalGlass
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsEngineering ]
+  - type: Wires
+    layoutId: AirlockEngineering
 
 - type: entity
   parent: AirlockExternalGlass
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsAtmospherics ]
+  - type: Wires
+    layoutId: AirlockEngineering
 
 - type: entity
   parent: AirlockServiceGlassLocked
   components:
   - type: PriorityDock
     tag: DockArrivals
+  - type: ContainerFill
+    containers:
+      board: [ DoorElectronicsExternal ]
 
 - type: entity
   parent: AirlockGlassShuttle
     - type: IFF
       flags:
       - HideLabel
+  - type: ContainerFill
+    containers:
+      board: [ DoorElectronicsExternal ]
 
 #HighSecDoors
 - type: entity
index 3197ba417f9e2dd6511c65d7f4abe3d3ef9ccce9..7f5c01902505c136aae99e75c23764e5786855dd 100644 (file)
@@ -19,6 +19,8 @@
   - type: PaintableAirlock
     group: External
     department: null
+  - type: Wires
+    layoutId: AirlockExternal
 
 - type: entity
   parent: AirlockExternal
index e9d95f90bebdf9122db668ebfe181a5c2852b059..800affffbb87d116f93d7e02be77fc529de3f254 100644 (file)
     node: windoorSecure
   - type: StaticPrice
     price: 350
+  - type: Tag
+    tags:
+      - SecureWindoor
+      # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor
+
 
 #Plasma Windoors
 - type: entity
     price: 500
   - type: RadiationBlocker
     resistance: 4
+  - type: Tag
+    tags:
+      - SecurePlasmaWindoor
+      # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor
+
 
 #Uranium Windoors
 - type: entity
     price: 750
   - type: RadiationBlocker
     resistance: 5
+  - type: Tag
+    tags:
+      - SecureUraniumWindoor
+      # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor
index 089d5f81d1bdbdcc5e315a024a198e0720541e0b..2501a9fb7a4fd7e43af3ea19074c5910304da5c0 100644 (file)
@@ -44,7 +44,7 @@
 # Windoors (alphabetical)
 
 - type: entity
-  parent: Windoor
+  parent: WindoorServiceLocked
   id: WindoorBarLocked
   suffix: Bar, Locked
   components:
@@ -53,7 +53,7 @@
       board: [ DoorElectronicsBar ]
 
 - type: entity
-  parent: Windoor
+  parent: WindoorServiceLocked
   id: WindoorBarKitchenLocked
   suffix: Bar&Kitchen, Locked
   components:
@@ -69,6 +69,8 @@
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsCargo ]
+  - type: Wires
+    layoutId: AirlockCargo
 
 - type: entity
   parent: Windoor
@@ -80,7 +82,7 @@
       board: [ DoorElectronicsChapel ]
 
 - type: entity
-  parent: Windoor
+  parent: WindoorServiceLocked
   id: WindoorHydroponicsLocked
   suffix: Hydroponics, Locked
   components:
@@ -89,7 +91,7 @@
       board: [ DoorElectronicsHydroponics ]
 
 - type: entity
-  parent: Windoor
+  parent: WindoorServiceLocked
   id: WindoorJanitorLocked
   suffix: Janitor, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsJanitor ]
+  - type: Wires
+    layoutId: AirlockService
 
 - type: entity
-  parent: Windoor
+  parent: WindoorServiceLocked
   id: WindoorKitchenLocked
   suffix: Kitchen, Locked
   components:
       board: [ DoorElectronicsKitchen ]
 
 - type: entity
-  parent: Windoor
+  parent: WindoorServiceLocked
   id: WindoorKitchenHydroponicsLocked
   suffix: Kitchen&Hydroponics, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsService ]
+  - type: Wires
+    layoutId: AirlockService
 
 - type: entity
-  parent: Windoor
+  parent: WindoorServiceLocked
   id: WindoorTheatreLocked
   suffix: Theatre, Locked
   components:
 # Secure
 
 - type: entity
-  parent: WindoorSecureSecurityLocked
+  parent: WindoorSecure
   id: WindoorSecureArmoryLocked
   suffix: Armory, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsArmory ]
+  - type: Wires
+    layoutId: AirlockArmory
 
 - type: entity
   parent: WindoorSecurePlasma
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsArmory ]
+  - type: Wires
+    layoutId: AirlockArmory
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureEngineeringLocked
   id: WindoorSecureAtmosphericsLocked
   suffix: Atmospherics, Locked
   components:
       board: [ DoorElectronicsAtmospherics ]
 
 - type: entity
-  parent: WindoorSecurePlasma
+  parent: PlasmaWindoorSecureEngineeringLocked
   id: PlasmaWindoorSecureAtmosphericsLocked
   suffix: Atmospherics, Locked, Plasma
   components:
       board: [ DoorElectronicsAtmospherics ]
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureServiceLocked
   id: WindoorSecureBarLocked
   suffix: Bar, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsCargo ]
+  - type: Wires
+    layoutId: AirlockCargo
 
 - type: entity
   parent: WindoorSecure
       board: [ DoorElectronicsChapel ]
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureMedicalLocked
   id: WindoorSecureChemistryLocked
   suffix: Chemistry, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsChemistry ]
+  - type: Wires
+    layoutId: AirlockMedical
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureCommandLocked
   id: WindoorSecureCentralCommandLocked
   suffix: Central Command, Locked
   components:
       board: [ DoorElectronicsCentralCommand ]
 
 - type: entity
-  parent: WindoorSecurePlasma
+  parent: PlasmaWindoorSecureCommandLocked
   id: PlasmaWindoorSecureCentralCommandLocked
   suffix: Central Command, Locked, Plasma
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsCentralCommand ]
+  - type: WiresPanelSecurity
+    securityLevel: medSecurity
+  - type: Wires
+    layoutId: AirlockCommand
 
 - type: entity
   parent: WindoorSecure
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsCommand ]
+  - type: WiresPanelSecurity
+    securityLevel: medSecurity
+  - type: Wires
+    layoutId: AirlockCommand
 
 - type: entity
   parent: WindoorSecurePlasma
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsCommand ]
+  - type: WiresPanelSecurity
+    securityLevel: medSecurity
+  - type: Wires
+    layoutId: AirlockCommand
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureSecurityLocked
   id: WindoorSecureDetectiveLocked
   suffix: Detective, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsEngineering ]
+  - type: Wires
+    layoutId: AirlockEngineering
 
 - type: entity
   parent: WindoorSecurePlasma
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsEngineering ]
+  - type: Wires
+    layoutId: AirlockEngineering
 
 - type: entity
   parent: WindoorSecureUranium
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsEngineering ]
+  - type: Wires
+    layoutId: AirlockEngineering
 
 - type: entity
   parent: WindoorSecure
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsExternal ]
+  - type: Wires
+    layoutId: AirlockExternal
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureServiceLocked
   id: WindoorSecureJanitorLocked
   suffix: Janitor, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsJanitor ]
+  - type: Wires
+    layoutId: AirlockService
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureServiceLocked
   id: WindoorSecureKitchenLocked
   suffix: Kitchen, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsMedical ]
+  - type: Wires
+    layoutId: AirlockMedical
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureCargoLocked
   id: WindoorSecureSalvageLocked
   suffix: Salvage, Locked
   components:
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsSecurity ]
+  - type: Wires
+    layoutId: AirlockSecurity
 
 - type: entity
   parent: WindoorSecurePlasma
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsSecurity ]
+  - type: Wires
+    layoutId: AirlockSecurity
 
 - type: entity
   parent: WindoorSecure
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsResearch ]
+  - type: Wires
+    layoutId: AirlockScience
 
 - type: entity
   parent: WindoorSecurePlasma
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsResearch ]
+  - type: Wires
+    layoutId: AirlockScience
 
 - type: entity
   parent: WindoorSecure
   - type: ContainerFill
     containers:
       board: [ DoorElectronicsService ]
+  - type: Wires
+    layoutId: AirlockService
 
 - type: entity
-  parent: WindoorSecure
+  parent: WindoorSecureCommandLocked
   id: WindoorSecureHeadOfPersonnelLocked
   suffix: HeadOfPersonnel, Locked
   components:
index de896634670a576f0042859c75df618f6391759c..b56c48d0dfdf5f1de73ed298775d56f495c2e111 100644 (file)
       - tool: Screwing
         doAfter: 4
 
-
   - node: wiredSecure
     entity: WindoorAssemblySecure
     edges:
 
   - node: windoorSecure
     entity: WindoorSecure
+    doNotReplaceInheritingEntities: true
+    actions:
+    - !type:SetWiresPanelSecurity
+      wiresAccessible: true
     edges:
     - to: wiredSecure
       conditions:
       - tool: Anchoring
         doAfter: 4
 
+    - to: medSecurityUnfinished
+      conditions:
+      - !type:WirePanel {}
+      steps:
+      - material: Steel
+        amount: 2
+        doAfter: 2
+
+#Clockwork
   - node: assemblyClockwork
     entity: WindoorAssemblyClockwork
     actions:
 
   - node: pwindoorSecure
     entity: WindoorSecurePlasma
+    doNotReplaceInheritingEntities: true
+    actions:
+    - !type:SetWiresPanelSecurity
+      wiresAccessible: true
     edges:
     - to: pwiredSecure
       conditions:
       - tool: Screwing
         doAfter: 4
 
-
   - node: uwiredSecure
     entity: WindoorAssemblySecureUranium
     edges:
 
   - node: uwindoorSecure
     entity: WindoorSecureUranium
+    doNotReplaceInheritingEntities: true
+    actions:
+    - !type:SetWiresPanelSecurity
+      wiresAccessible: true
     edges:
     - to: uwiredSecure
       conditions:
       steps:
       - tool: Anchoring
         doAfter: 4
+
+#Security Panels
+  - node: medSecurityUnfinished
+    actions:
+    - !type:SetWiresPanelSecurity
+      examine: wires-panel-component-on-examine-security-level1
+      wiresAccessible: false
+    edges:
+    - to: windoorSecure
+      completed:
+      - !type:GivePrototype
+        prototype: SheetSteel1
+        amount: 2
+      conditions:
+      - !type:WirePanel {}
+      - !type:HasTag
+        tag: SecureWindoor
+      steps:
+      - tool: Prying
+        doAfter: 4
+
+    - to: pwindoorSecure
+      completed:
+      - !type:GivePrototype
+        prototype: SheetSteel1
+        amount: 2
+      conditions:
+      - !type:WirePanel {}
+      - !type:HasTag
+        tag: SecurePlasmaWindoor
+      steps:
+      - tool: Prying
+        doAfter: 4
+
+    - to: uwindoorSecure
+      completed:
+      - !type:GivePrototype
+        prototype: SheetSteel1
+        amount: 2
+      conditions:
+      - !type:WirePanel {}
+      - !type:HasTag
+        tag: SecureUraniumWindoor
+      steps:
+      - tool: Prying
+        doAfter: 4
+
+    - to: medSecurity
+      conditions:
+      - !type:WirePanel {}
+      steps:
+      - tool: Welding
+        doAfter: 3
+
+  - node: medSecurity
+    actions:
+    - !type:SetWiresPanelSecurity
+      examine: wires-panel-component-on-examine-security-level2
+      wiresAccessible: false
+    edges:
+    - to: medSecurityUnfinished
+      conditions:
+      - !type:WirePanel {}
+      steps:
+      - tool: Welding
+        doAfter: 10
index 70b11ca7edc640d9a0162370d201f5f418b432b1..7b42ef8b75303fcf2268bed7a03a476ee00c177e 100644 (file)
   parent: Airlock
   id: AirlockArmory
 
+- type: wireLayout
+  parent: Airlock
+  id: AirlockExternal
+
 - type: wireLayout
   id: HighSec
   wires:
index cfe1ecfdea11582b55575f4675f0c08f0b1a8dc7..e2400265f26a3313817dec12009b7b037d2db0f1 100644 (file)
   id: SecBeltEquip
 
 - type: Tag
+  id: SecurePlasmaWindoor
+
+- type: Tag
+  id: SecureUraniumWindoor
+
+- type: Tag
+  id: SecureWindoor
+
+- type: Tag  
   id: SecurityHelmet
 
 - type: Tag