New solar sprites, new solar panel upgrades, and some solar panel fixes. (#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.
This commit is contained in:
CaasGit
2025-01-26 06:01:34 -08:00
committed by GitHub
parent 2214857809
commit 2a632b21b0
24 changed files with 270 additions and 22 deletions

View File

@@ -77,7 +77,7 @@
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: generic
state: engineering
- type: StaticPrice
price: 85
- type: Tag

View File

@@ -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: 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
@@ -89,7 +157,7 @@
suffix: Broken
components:
- type: Sprite
state: broken
state: solar_panel_glass_broken
- type: Damageable
damageContainer: StructuralInorganic
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

View File

@@ -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:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 B

View File

@@ -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": "broken",
"select": [],
"flags": {},
"directions": 1
},
{
"name": "static"
},
{
"name": "solar_assembly"
},
{
"name": "solar_assembly_tracker_circuit"
},
{
"name": "solar_panel_glass_broken"
},
{
"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.

Before

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 801 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B