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. (#29224)

* New solar sprites, new solar panel upgrades, and some solar panel fixes.

This adds and changes a few things for solar panels!

* New sprites for all solar panels and all related states.
* Move from xform.WorldRotation to _xformSystem.SetWorldRotation within
  the solar code.
* Few random fixes that Rider suggested as warnings.
* Solar Tracker Electronics was using what looks like to be the airlock
  controller electronics, so that's now updated to something a bit more
  realistic. It also uses the engineering circuit sprite instead of the
  generic
* New Solar Panels! Adds Plasma and Uranium Glass solar panels. These
  can be constructed by adding the respective glass to the panel. Plasma
  is a slight increase of power and health, and uranium is double the
  power and health of glass. Thus giving engineers something to update
  if they want to use solar panels and possibly giving small outposts
  a way to make a bit more power without a large and complex power
  setup.

* Add in solar sprites that were not in the meta file.

* Updated sprites based on feedback.

* Fix the rotation of the solar panel sprites.
  • Loading branch information
CaasGit authored Jan 26, 2025
1 parent 2214857 commit 2a632b2
Show file tree
Hide file tree
Showing 24 changed files with 265 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: generic
state: engineering
- type: StaticPrice
price: 85
- type: Tag
Expand Down
138 changes: 135 additions & 3 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,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: 500
supplyRampRate: 500
- type: SolarPanel
maxSupply: 1000
- 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: 500
supplyRampRate: 500
- type: SolarPanel
maxSupply: 1500
- 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
Expand Down Expand Up @@ -89,7 +157,7 @@
suffix: Broken
components:
- type: Sprite
state: broken
state: solar_panel_glass_broken
- type: Damageable
damageContainer: StructuralInorganic
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 2a632b2

Please sign in to comment.