From 10796df6bcab6e8135bc3500d8888d7591f0e932 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Wed, 30 Apr 2025 02:34:20 +0200 Subject: [PATCH] Un-copypaste wallmount substation prototype to give them a UI (#37047) *sigh* --- .../Entities/Structures/Power/substation.yml | 171 ++++++++---------- 1 file changed, 76 insertions(+), 95 deletions(-) diff --git a/Resources/Prototypes/Entities/Structures/Power/substation.yml b/Resources/Prototypes/Entities/Structures/Power/substation.yml index fec2c30c43..8e10e00806 100644 --- a/Resources/Prototypes/Entities/Structures/Power/substation.yml +++ b/Resources/Prototypes/Entities/Structures/Power/substation.yml @@ -1,8 +1,74 @@ +# Core logic shared between regular and wall-mount substation +- type: entity + abstract: true + id: CoreSubstation + components: + # Core power behavior + - type: Battery + - type: ExaminableBattery + - type: NodeContainer + examinable: true + nodes: + input: + !type:CableDeviceNode + nodeGroupID: HVPower + output: + !type:CableDeviceNode + nodeGroupID: MVPower + - type: BatteryCharger + voltage: High + - type: BatteryDischarger + voltage: Medium + - type: PowerNetworkBattery + maxSupply: 150000 + maxChargeRate: 5000 + supplyRampTolerance: 5000 + supplyRampRate: 1000 + - type: StationInfiniteBatteryTarget + + # Interface + - type: BatteryInterface + minChargeRate: 5000 + maxChargeRate: 150000 + minSupply: 5000 + maxSupply: 150000 + - type: UserInterface + interfaces: + enum.BatteryUiKey.Key: + type: BatteryBoundUserInterface + - type: ActivatableUI + key: enum.BatteryUiKey.Key + + - type: PowerMonitoringDevice + group: Substation + sourceNode: input + loadNode: output + collectionName: substation + + # Damage + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: StructuralMetallicStrong + - type: PacifismDangerousAttack + + # Guidebook + - type: GuideHelp + guides: + - VoltageNetworks + - Power + + # Ambient sound + - type: AmbientOnPowered + - type: AmbientSound + volume: -5 + sound: + path: /Audio/Ambience/Objects/buzzing.ogg + # Base substation - type: entity abstract: true id: BaseSubstation - parent: [ BaseMachine, ConstructibleMachine ] + parent: [ CoreSubstation, BaseMachine, ConstructibleMachine ] name: substation description: Reduces the voltage of electricity put into it. placement: @@ -20,49 +86,22 @@ - type: Battery maxCharge: 2500000 startingCharge: 0 - - type: ExaminableBattery - type: PointLight radius: 1.5 energy: 1 color: "#ff6900" castShadows: false - - type: NodeContainer - examinable: true - nodes: - input: - !type:CableDeviceNode - nodeGroupID: HVPower - output: - !type:CableDeviceNode - nodeGroupID: MVPower - type: PowerMonitoringDevice - group: Substation - sourceNode: input - loadNode: output - collectionName: substation sprite: Structures/Power/substation.rsi state: substation_static - - type: BatteryCharger - voltage: High - - type: BatteryDischarger - voltage: Medium - - type: PowerNetworkBattery - maxSupply: 150000 - maxChargeRate: 5000 - supplyRampTolerance: 5000 - supplyRampRate: 1000 - - type: Damageable - damageContainer: StructuralInorganic - damageModifierSet: StructuralMetallicStrong - - type: PacifismDangerousAttack - type: Destructible thresholds: - trigger: !type:DamageTrigger damage: 200 behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 100 @@ -82,9 +121,9 @@ gasMixture: volume: 1000 moles: - - 0 # oxygen - - 0 # nitrogen - - 340.5701689 # carbon dioxide + - 0 # oxygen + - 0 # nitrogen + - 340.5701689 # carbon dioxide temperature: 373.15 - type: Explosive explosionType: Default @@ -94,13 +133,8 @@ - type: WiresPanel - type: Machine board: SubstationMachineCircuitboard - - type: StationInfiniteBatteryTarget - - type: AmbientOnPowered - type: AmbientSound - volume: -5 range: 3 - sound: - path: /Audio/Ambience/Objects/buzzing.ogg - type: Electrified onHandInteract: false onInteractUsing: false @@ -108,39 +142,19 @@ requirePower: true highVoltageNode: input mediumVoltageNode: output - - type: GuideHelp - guides: - - VoltageNetworks - - Power - - # Interface - - type: BatteryInterface - minChargeRate: 5000 - maxChargeRate: 150000 - minSupply: 5000 - maxSupply: 150000 - - type: UserInterface - interfaces: - enum.BatteryUiKey.Key: - type: BatteryBoundUserInterface - - type: ActivatableUI - key: enum.BatteryUiKey.Key # Compact Wall Substation Base - type: entity id: BaseSubstationWall + parent: CoreSubstation categories: [ HideSpawnMenu ] name: wallmount substation description: A substation designed for compact shuttles and spaces. placement: mode: SnapgridCenter components: - - type: AmbientOnPowered - type: AmbientSound - volume: -5 range: 2 - sound: - path: /Audio/Ambience/Objects/buzzing.ogg - type: PointLight radius: 1.5 energy: 1 @@ -149,8 +163,6 @@ castShadows: false offset: 0, -0.2 - type: Clickable - - type: AccessReader - access: [["Engineering"]] - type: ContainerFill containers: board: [ WallmountSubstationElectronics ] @@ -174,43 +186,17 @@ - type: Battery maxCharge: 2000000 startingCharge: 0 - - type: ExaminableBattery - - type: NodeContainer - examinable: true - nodes: - input: - !type:CableDeviceNode - nodeGroupID: HVPower - output: - !type:CableDeviceNode - nodeGroupID: MVPower - type: PowerMonitoringDevice - group: Substation - sourceNode: input - loadNode: output sprite: Structures/Power/substation.rsi state: substation_wall_static - - type: BatteryCharger - voltage: High - - type: BatteryDischarger - voltage: Medium - - type: PowerNetworkBattery - maxSupply: 150000 - maxChargeRate: 5000 - supplyRampTolerance: 5000 - supplyRampRate: 1000 - - type: Damageable - damageContainer: StructuralInorganic - damageModifierSet: StructuralMetallicStrong - - type: PacifismDangerousAttack - type: Destructible thresholds: - trigger: !type:DamageTrigger damage: 200 behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 100 @@ -229,12 +215,7 @@ maxIntensity: 50 intensitySlope: 2 totalIntensity: 100 - - type: StationInfiniteBatteryTarget - type: WallMount - - type: GuideHelp - guides: - - VoltageNetworks - - Power # Substations in use @@ -274,7 +255,7 @@ capacitor: !type:Container powercell: !type:Container -# Construction Frame + # Construction Frame - type: entity id: BaseSubstationWallFrame categories: [ HideSpawnMenu ] -- 2.51.2