Skip to content

Commit

Permalink
New Solar Sprites, New Solar Panel Upgrades, and some Solar Panel Fix…
Browse files Browse the repository at this point in the history
…es (#1677)

port space-wizards/space-station-14#29224

🆑 CaasGit
- add: Solar panels can now be upgraded with plasma or uranium glass.

---------

Co-authored-by: CaasGit <87243814+CaasGit@users.noreply.github.com>
  • Loading branch information
sleepyyapril and CaasGit authored Jan 30, 2025
1 parent ee9802c commit d58c83d
Show file tree
Hide file tree
Showing 24 changed files with 267 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: generic
state: engineering
- type: StaticPrice
price: 85
- type: Tag
Expand Down
142 changes: 137 additions & 5 deletions Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
Expand All @@ -51,15 +51,83 @@
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
name: solar panel
description: A solar panel that generates power.
components:
- type: PowerSupplier
supplyRampTolerance: 1000
supplyRampRate: 1000
supplyRampTolerance: 4000
supplyRampRate: 4000
- type: SolarPanel
- type: Damageable
damageContainer: Inorganic
Expand Down Expand Up @@ -89,7 +157,7 @@
suffix: Broken
components:
- type: Sprite
state: broken
state: solar_panel_glass_broken
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -42,14 +60,48 @@
name: Solar Tracker Electronics
icon:
sprite: Objects/Misc/module.rsi
state: id_mod
state: engineering
doAfter: 1
- material: Glass
amount: 2
doAfter: 2
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:
Expand Down Expand Up @@ -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:
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -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"
}
]
}
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.

0 comments on commit d58c83d

Please sign in to comment.