diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml index 24da64964c8..19d78d14fc2 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml @@ -80,7 +80,7 @@ components: - type: Sprite sprite: Objects/Misc/module.rsi - state: generic + state: engineering - type: StaticPrice price: 85 - type: Tag diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml index 382846938b2..25b0f6d73ff 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml @@ -28,7 +28,7 @@ - MidImpassable, LowImpassable, BulletImpassable - type: Sprite sprite: Structures/Power/Generation/solar_panel.rsi - state: normal + state: solar_panel_glass - type: NodeContainer examinable: true nodes: @@ -39,7 +39,7 @@ group: Generator loadNode: output sprite: Structures/Power/Generation/solar_panel.rsi - state: static + state: solar_panel_glass collectionName: SolarPanel - type: Anchorable - type: Pullable @@ -51,6 +51,74 @@ highVoltageNode: output - type: RequireProjectileTarget +- type: entity + id: SolarPanelPlasma + parent: SolarPanelBasePhysSprite + name: solar panel plasma + description: A plasma solar panel that generates power. + components: + - type: PowerSupplier + supplyRampTolerance: 2000 + supplyRampRate: 2000 + - type: SolarPanel + maxSupply: 4000 + - type: Sprite + sprite: Structures/Power/Generation/solar_panel.rsi + state: solar_panel_plasma + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:ChangeConstructionNodeBehavior + node: solarpanelplasma_broken + - !type:DoActsBehavior + acts: ["Breakage"] + - type: Construction + graph: SolarPanel + node: solarpanelplasma + +- type: entity + id: SolarPanelUranium + parent: SolarPanelBasePhysSprite + name: solar panel uranium + description: A uranium solar panel that generates power. + components: + - type: PowerSupplier + supplyRampTolerance: 2000 + supplyRampRate: 2000 + - type: SolarPanel + maxSupply: 6000 + - type: Sprite + sprite: Structures/Power/Generation/solar_panel.rsi + state: solar_panel_uranium + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:ChangeConstructionNodeBehavior + node: solarpaneluranium_broken + - !type:DoActsBehavior + acts: ["Breakage"] + - type: Construction + graph: SolarPanel + node: solarpaneluranium + - type: entity id: SolarPanel parent: SolarPanelBasePhysSprite @@ -58,8 +126,8 @@ description: A solar panel that generates power. components: - type: PowerSupplier - supplyRampTolerance: 1000 - supplyRampRate: 1000 + supplyRampTolerance: 4000 + supplyRampRate: 4000 - type: SolarPanel - type: Damageable damageContainer: Inorganic @@ -89,7 +157,7 @@ suffix: Broken components: - type: Sprite - state: broken + state: solar_panel_glass_broken - type: Damageable damageContainer: Inorganic damageModifierSet: Metallic @@ -113,6 +181,70 @@ graph: SolarPanel node: solarpanel_broken +- type: entity + id: SolarPanelPlasmaBroken + parent: SolarPanelBasePhysSprite + name: plasma solar panel + description: A broken plasma solar panel. + suffix: Broken + components: + - type: Sprite + state: solar_panel_plasma_broken + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + ShardGlassPlasma: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SolarPanel + node: solarpanelplasma_broken + +- type: entity + id: SolarPanelUraniumBroken + parent: SolarPanelBasePhysSprite + name: uranium solar panel + description: A broken uranium solar panel. + suffix: Broken + components: + - type: Sprite + state: solar_panel_uranium_broken + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + ShardGlassUranium: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SolarPanel + node: solarpaneluranium_broken + - type: entity id: SolarAssembly name: solar assembly diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml index 922e8857c92..2f232877c5f 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml @@ -25,6 +25,24 @@ steps: - tool: Screwing doAfter: 2 + - to: solarpanelplasma + conditions: + - !type:EntityAnchored + steps: + - material: PlasmaGlass + amount: 2 + doAfter: 0.5 + completed: + - !type:SnapToGrid + - to: solarpaneluranium + conditions: + - !type:EntityAnchored + steps: + - material: UraniumGlass + amount: 2 + doAfter: 0.5 + completed: + - !type:SnapToGrid - to: solarpanel conditions: - !type:EntityAnchored @@ -42,7 +60,7 @@ name: Solar Tracker Electronics icon: sprite: Objects/Misc/module.rsi - state: id_mod + state: engineering doAfter: 1 - material: Glass amount: 2 @@ -50,6 +68,40 @@ completed: - !type:SnapToGrid + - node: solarpanelplasma + entity: SolarPanelPlasma + edges: + - to: solarassembly + completed: + - !type:SnapToGrid + southRotation: true + - !type:SpawnPrototype + prototype: SheetPGlass1 + amount: 2 + conditions: + - !type:EntityAnchored + anchored: true + steps: + - tool: Prying + doAfter: 0.5 + + - node: solarpaneluranium + entity: SolarPanelUranium + edges: + - to: solarassembly + completed: + - !type:SnapToGrid + southRotation: true + - !type:SpawnPrototype + prototype: SheetUGlass1 + amount: 2 + conditions: + - !type:EntityAnchored + anchored: true + steps: + - tool: Prying + doAfter: 0.5 + - node: solarpanel entity: SolarPanel edges: @@ -84,6 +136,40 @@ - tool: Prying doAfter: 0.5 + - node: solarpanelplasma_broken + entity: SolarPanelPlasmaBroken + edges: + - to: solarassembly + completed: + - !type:SnapToGrid + southRotation: true + - !type:SpawnPrototype + prototype: ShardGlassPlasma + amount: 2 + conditions: + - !type:EntityAnchored + anchored: true + steps: + - tool: Prying + doAfter: 0.5 + + - node: solarpaneluranium_broken + entity: SolarPanelUraniumBroken + edges: + - to: solarassembly + completed: + - !type:SnapToGrid + southRotation: true + - !type:SpawnPrototype + prototype: ShardGlassUranium + amount: 2 + conditions: + - !type:EntityAnchored + anchored: true + steps: + - tool: Prying + doAfter: 0.5 + - node: solartracker entity: SolarTracker edges: diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/broken.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/broken.png deleted file mode 100644 index ded81ca75f5..00000000000 Binary files a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/broken.png and /dev/null differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/meta.json b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/meta.json index 00466666560..7fa89a8ca15 100644 --- a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/meta.json +++ b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/meta.json @@ -1,30 +1,60 @@ { "version":1, - "license":"CC-BY-SA-3.0", - "copyright":"Taken from https://github.com/discordia-space/CEV-Eris/blob/d1e0161af146835f4fb79d21a6200caa9cc842d0/icons/obj/power.dmi and modified.", + "license":"CC-BY-SA-4.0", + "copyright":"KalimbaMachine (github) & CaasGit (github) for Space Station 14", "size":{"x":32,"y":32}, "states": [ { - "name": "normal", - "select": [], - "flags": {}, - "directions": 8 + "name": "solar_assembly" }, { - "name": "broken", - "select": [], - "flags": {}, - "directions": 1 + "name": "solar_assembly_tracker_circuit" }, { - "name": "static" + "name": "solar_panel_glass_broken" }, { - "name": "solar_assembly" + "name": "solar_panel_plasma_broken" + }, + { + "name": "solar_panel_uranium_broken" + }, + { + "name": "solar_panel_glass" + }, + { + "name": "solar_panel_plasma" + }, + { + "name": "solar_panel_uranium" }, { "name": "solar_tracker" + }, + { + "name": "solar_tracker_broken" + }, + { + "name": "solar_assembly_uncabled" + }, + { + "name": "solar_assembly_tracker_circuit_uncabled" + }, + { + "name": "solar_panel_glass_uncabled" + }, + { + "name": "solar_panel_plasma_uncabled" + }, + { + "name": "solar_panel_uranium_uncabled" + }, + { + "name": "solar_tracker_uncabled" + }, + { + "name": "solar_tracker_broken_uncabled" } ] } diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/normal.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/normal.png deleted file mode 100644 index 1e1c620029d..00000000000 Binary files a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/normal.png and /dev/null differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly.png index 6714f199e4f..191ebeaaa32 100644 Binary files a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly.png and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_tracker_circuit.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_tracker_circuit.png new file mode 100644 index 00000000000..e83efe08694 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_tracker_circuit.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_tracker_circuit_uncabled.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_tracker_circuit_uncabled.png new file mode 100644 index 00000000000..52db0ee4a59 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_tracker_circuit_uncabled.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_uncabled.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_uncabled.png new file mode 100644 index 00000000000..d1fc51c95e1 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_assembly_uncabled.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass.png new file mode 100644 index 00000000000..ae84f90a86b Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass_broken.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass_broken.png new file mode 100644 index 00000000000..13eeac91cea Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass_broken.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass_uncabled.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass_uncabled.png new file mode 100644 index 00000000000..9e4bfbc11f1 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_glass_uncabled.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma.png new file mode 100644 index 00000000000..a3777f3a799 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma_broken.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma_broken.png new file mode 100644 index 00000000000..465a9326720 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma_broken.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma_uncabled.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma_uncabled.png new file mode 100644 index 00000000000..c1e181ea911 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_plasma_uncabled.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium.png new file mode 100644 index 00000000000..ae41622a4e4 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium_broken.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium_broken.png new file mode 100644 index 00000000000..c2feca3fbdc Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium_broken.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium_uncabled.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium_uncabled.png new file mode 100644 index 00000000000..fab9dd3ed7e Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_panel_uranium_uncabled.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker.png index 17abc02d28a..a36865c79ab 100644 Binary files a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker.png and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_broken.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_broken.png new file mode 100644 index 00000000000..99bdb064758 Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_broken.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_broken_uncabled.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_broken_uncabled.png new file mode 100644 index 00000000000..2c8a3ec951e Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_broken_uncabled.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_uncabled.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_uncabled.png new file mode 100644 index 00000000000..d0684fe3dfd Binary files /dev/null and b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/solar_tracker_uncabled.png differ diff --git a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/static.png b/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/static.png deleted file mode 100644 index 455a061b31b..00000000000 Binary files a/Resources/Textures/Structures/Power/Generation/solar_panel.rsi/static.png and /dev/null differ