Adds construction for wooden barricades, solar panels + solar trackers (#3472)
* Added barricades and textures for hidden doors Constructable barricades and textures for square wall hidden doors * Added solar assembly & tracker. Restructured power construction Added solar tracker and assembly construction and textures. (Trackers don't work at present). Moved APC and solar item sot construction/power.yml Moved power based items to "Utility" in construction menu. * Localisation changes Added flammable to barricades. Added localisation to barricades and all solar entities. * Removed hidden doors Removed .rsi for hidden doors as wasn't able to get non airlock doors working. * Adds solar crate to cargo * Fixed tests * Removed glass from solar crate Removing glass from solars crate until stacks can be specified. * Added deconstruction to solar graphs * Added deconstruction to barricade And fixed nodes for solars. * Fixed materials * Fixed meta indent and solartracker type * Fixed materials, physics & naming Added new physics fixtures to barricade and solars Changed solar tracker board to electronics. Changed material ID for destruction of wooden barricades to new ID. * Changed back to prototype from component step Component step does not work for electronics only machine boards. * Localisation fixes 1 * yaml linter fixes Removed obsolete code * Update meta.json * Fix trailing comma Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
This commit is contained in:
5
Resources/Locale/en-US/entities/barricades.ftl
Normal file
5
Resources/Locale/en-US/entities/barricades.ftl
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
### Barricades entity prototype data.
|
||||||
|
|
||||||
|
ent-barricade = wooden barricade
|
||||||
|
.desc = The poor man's barrier, not nearly as strong or cool looking.
|
||||||
|
|
||||||
15
Resources/Locale/en-US/entities/solar_panels.ftl
Normal file
15
Resources/Locale/en-US/entities/solar_panels.ftl
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
### Power entity prototype data.
|
||||||
|
|
||||||
|
|
||||||
|
###Solars
|
||||||
|
ent-solar-tracker = solar tracker
|
||||||
|
.desc = A solar tracker. Can be wired to a solar array and computer to track solar positions.
|
||||||
|
ent-solar-assembly = solar assembly
|
||||||
|
.desc = A solar assembly. Anchor to a wire to start building a solar panel.
|
||||||
|
ent-solar-panel = solar panel
|
||||||
|
.desc = Generates power from sunlight. Usually used to power replacements for sunlight. Fragile.
|
||||||
|
|
||||||
|
ent-solar-tracker-electronics = solar tracker electronics
|
||||||
|
.desc = An electronics board for making a solar tracker.
|
||||||
|
ent-solar-assembly-part = solar assembly parts
|
||||||
|
.desc = Used in the construction of solar assemblies for solar panels and trackers.
|
||||||
@@ -93,3 +93,15 @@
|
|||||||
cost: 10000
|
cost: 10000
|
||||||
category: Engineering
|
category: Engineering
|
||||||
group: market
|
group: market
|
||||||
|
|
||||||
|
- type: cargoProduct
|
||||||
|
name: "solar assembly parts"
|
||||||
|
id: cargo.enginessolar
|
||||||
|
description: "Parts for constructing solar panels and trackers."
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Power/solar_parts.rsi
|
||||||
|
state: solar_assembly_parts
|
||||||
|
product: CrateEngineeringSolar
|
||||||
|
cost: 500
|
||||||
|
category: Engineering
|
||||||
|
group: market
|
||||||
|
|||||||
@@ -126,3 +126,13 @@
|
|||||||
contents:
|
contents:
|
||||||
- name: DebugGenerator
|
- name: DebugGenerator
|
||||||
amount: 1
|
amount: 1
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: CrateEngineeringSolar
|
||||||
|
name: solar assembly crate
|
||||||
|
parent: CrateEngineering
|
||||||
|
components:
|
||||||
|
- type: StorageFill
|
||||||
|
contents:
|
||||||
|
- name: SolarAssemblyPart
|
||||||
|
amount: 6
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
- cargo.engineameshielding
|
- cargo.engineameshielding
|
||||||
- cargo.engineamejar
|
- cargo.engineamejar
|
||||||
- cargo.engineamecontrol
|
- cargo.engineamecontrol
|
||||||
|
- cargo.enginessolar
|
||||||
- cargo.funplushies
|
- cargo.funplushies
|
||||||
- cargo.funartsupplies
|
- cargo.funartsupplies
|
||||||
- cargo.funinstruments
|
- cargo.funinstruments
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: BaseGenerator
|
id: BaseGenerator
|
||||||
description: A high efficiency thermoelectric generator.
|
description: "A high efficiency thermoelectric generator."
|
||||||
name: Base Generator
|
name: Base Generator
|
||||||
abstract: true
|
abstract: true
|
||||||
placement:
|
placement:
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: BaseSmes
|
id: BaseSmes
|
||||||
description: A high-capacity superconducting magnetic energy storage (SMES) unit.
|
description: "A high-capacity superconducting magnetic energy storage (SMES) unit."
|
||||||
name: Base Smes
|
name: Base Smes
|
||||||
abstract: true
|
abstract: true
|
||||||
placement:
|
placement:
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: BaseSubstation
|
id: BaseSubstation
|
||||||
description: Reduces the voltage of electricity put into it.
|
description: "Reduces the voltage of electricity put into it."
|
||||||
name: Base Substation
|
name: Base Substation
|
||||||
abstract: true
|
abstract: true
|
||||||
placement:
|
placement:
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: BaseApc
|
id: BaseApc
|
||||||
description: A control terminal for the area's electrical systems.
|
description: "A control terminal for the area's electrical systems."
|
||||||
name: Base Apc
|
name: Base Apc
|
||||||
abstract: true
|
abstract: true
|
||||||
placement:
|
placement:
|
||||||
@@ -222,16 +222,14 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: SolarPanel
|
id: SolarPanel
|
||||||
name: solar panel
|
|
||||||
description: Generates power from sunlight. Usually used to power replacements for sunlight. Fragile.
|
|
||||||
placement:
|
placement:
|
||||||
mode: SnapgridCenter
|
mode: SnapgridCenter
|
||||||
components:
|
components:
|
||||||
- type: Clickable
|
- type: Clickable
|
||||||
- type: InteractionOutline
|
- type: InteractionOutline
|
||||||
- type: Physics
|
- type: Physics
|
||||||
mass: 25
|
mass: 100
|
||||||
bodyType: Dynamic
|
bodyType: Static
|
||||||
fixtures:
|
fixtures:
|
||||||
- shape:
|
- shape:
|
||||||
!type:PhysShapeAabb {}
|
!type:PhysShapeAabb {}
|
||||||
@@ -273,3 +271,90 @@
|
|||||||
- type: ClientEntitySpawner
|
- type: ClientEntitySpawner
|
||||||
prototypes:
|
prototypes:
|
||||||
- HVDummyWire
|
- HVDummyWire
|
||||||
|
- type: Construction
|
||||||
|
graph: solarpanel
|
||||||
|
node: solarpanel
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: SolarAssembly
|
||||||
|
name: solar assembly
|
||||||
|
description: "A solar assembly. Anchor to a wire to start building a solar panel."
|
||||||
|
placement:
|
||||||
|
mode: SnapgridCenter
|
||||||
|
components:
|
||||||
|
- type: Clickable
|
||||||
|
- type: InteractionOutline
|
||||||
|
- type: Physics
|
||||||
|
mass: 75
|
||||||
|
bodyType: Static
|
||||||
|
fixtures:
|
||||||
|
- shape:
|
||||||
|
!type:PhysShapeAabb {}
|
||||||
|
mask:
|
||||||
|
- VaultImpassable
|
||||||
|
layer:
|
||||||
|
- VaultImpassable
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Constructible/Power/solar_panel.rsi
|
||||||
|
state: solar_assembly
|
||||||
|
- type: SnapGrid
|
||||||
|
offset: Center
|
||||||
|
- type: Damageable
|
||||||
|
resistances: metallicResistances
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 100
|
||||||
|
behaviors:
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Breakage"]
|
||||||
|
- type: Anchorable
|
||||||
|
- type: Pullable
|
||||||
|
- type: Construction
|
||||||
|
graph: solarpanel
|
||||||
|
node: solarassembly
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: SolarTracker
|
||||||
|
placement:
|
||||||
|
mode: SnapgridCenter
|
||||||
|
components:
|
||||||
|
- type: Clickable
|
||||||
|
- type: InteractionOutline
|
||||||
|
- type: Physics
|
||||||
|
mass: 100
|
||||||
|
bodyType: Static
|
||||||
|
fixtures:
|
||||||
|
- shape:
|
||||||
|
!type:PhysShapeAabb {}
|
||||||
|
mask:
|
||||||
|
- Impassable
|
||||||
|
- MobImpassable
|
||||||
|
- VaultImpassable
|
||||||
|
- SmallImpassable
|
||||||
|
layer:
|
||||||
|
- Opaque
|
||||||
|
- MobImpassable
|
||||||
|
- VaultImpassable
|
||||||
|
- SmallImpassable
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Constructible/Power/solar_panel.rsi
|
||||||
|
state: solar_tracker
|
||||||
|
- type: SnapGrid
|
||||||
|
offset: Center
|
||||||
|
- type: Damageable
|
||||||
|
resistances: metallicResistances
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 100
|
||||||
|
behaviors:
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Breakage"]
|
||||||
|
- type: Anchorable
|
||||||
|
- type: Pullable
|
||||||
|
- type: Construction
|
||||||
|
graph: solarpanel
|
||||||
|
node: solartracker
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
- type: entity
|
||||||
|
id: Barricade
|
||||||
|
components:
|
||||||
|
- type: Clickable
|
||||||
|
- type: InteractionOutline
|
||||||
|
- type: Construction
|
||||||
|
graph: barricade
|
||||||
|
node: barricadewooden
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Constructible/Structures/barricades.rsi
|
||||||
|
state: barricadewooden
|
||||||
|
- type: Physics
|
||||||
|
mass: 75
|
||||||
|
bodyType: Static
|
||||||
|
fixtures:
|
||||||
|
- shape:
|
||||||
|
!type:PhysShapeAabb
|
||||||
|
bounds: "-0.5, -0.5, 0.5, 0.5"
|
||||||
|
layer:
|
||||||
|
- Opaque
|
||||||
|
- Impassable
|
||||||
|
- MobImpassable
|
||||||
|
- VaultImpassable
|
||||||
|
- SmallImpassable
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- ExplosivePassable
|
||||||
|
- type: Damageable
|
||||||
|
resistances: metallicResistances
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 50
|
||||||
|
behaviors:
|
||||||
|
- !type:SpawnEntitiesBehavior
|
||||||
|
spawn:
|
||||||
|
MaterialWoodPlank1:
|
||||||
|
min: 3
|
||||||
|
max: 3
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: [ "Destruction" ]
|
||||||
|
- type: AtmosExposed
|
||||||
|
- type: Flammable
|
||||||
|
fireSpread: true
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: FireVisualizer
|
||||||
|
sprite: Effects/fire.rsi
|
||||||
|
normalState: 1
|
||||||
|
Sprite:
|
||||||
|
drawdepth: Overlays
|
||||||
|
- type: SnapGrid
|
||||||
|
offset: Edge
|
||||||
|
placement:
|
||||||
|
snap:
|
||||||
|
- Wall
|
||||||
17
Resources/Prototypes/Entities/Objects/Power/solar_parts.yml
Normal file
17
Resources/Prototypes/Entities/Objects/Power/solar_parts.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
- type: entity
|
||||||
|
id: SolarAssemblyPart
|
||||||
|
parent: BaseItem
|
||||||
|
components:
|
||||||
|
- type: Item
|
||||||
|
size: 10
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Power/solar_parts.rsi
|
||||||
|
state: solar_assembly_parts
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: SolarTrackerElectronics
|
||||||
|
parent: BaseItem
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Constructible/Misc/module.rsi
|
||||||
|
state: generic
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
- type: constructionGraph
|
||||||
|
id: barricade
|
||||||
|
start: start
|
||||||
|
graph:
|
||||||
|
- node: start
|
||||||
|
edges:
|
||||||
|
- to: barricadewooden
|
||||||
|
steps:
|
||||||
|
- material: WoodPlank
|
||||||
|
amount: 5
|
||||||
|
doAfter: 3
|
||||||
|
|
||||||
|
- node: barricadewooden
|
||||||
|
entity: Barricade
|
||||||
|
edges:
|
||||||
|
- to: start
|
||||||
|
completed:
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: MaterialWoodPlank1
|
||||||
|
amount: 4 #returns 1 less as one breaks
|
||||||
|
- !type:DeleteEntity {}
|
||||||
|
conditions:
|
||||||
|
- !type:EntityAnchored
|
||||||
|
anchored: true
|
||||||
|
steps:
|
||||||
|
- tool: Prying
|
||||||
|
doAfter: 5
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
- type: constructionGraph
|
||||||
|
id: solarpanel
|
||||||
|
start: start
|
||||||
|
graph:
|
||||||
|
- node: start
|
||||||
|
edges:
|
||||||
|
- to: solarassembly
|
||||||
|
steps:
|
||||||
|
- prototype: SolarAssemblyPart
|
||||||
|
name: Solar Assembly Parts
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Power/solar_parts.rsi
|
||||||
|
state: solar_assembly_parts
|
||||||
|
doAfter: 1
|
||||||
|
|
||||||
|
- node: solarassembly
|
||||||
|
entity: SolarAssembly
|
||||||
|
edges:
|
||||||
|
- to: start
|
||||||
|
completed:
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: SolarAssemblyPart
|
||||||
|
amount: 1
|
||||||
|
- !type:DeleteEntity {}
|
||||||
|
steps:
|
||||||
|
- tool: Screwing
|
||||||
|
doAfter: 2
|
||||||
|
- to: solarpanel
|
||||||
|
conditions:
|
||||||
|
- !type:EntityAnchored
|
||||||
|
value: true
|
||||||
|
steps:
|
||||||
|
- material: Glass
|
||||||
|
amount: 2
|
||||||
|
doAfter: 0.5
|
||||||
|
completed:
|
||||||
|
- !type:SnapToGrid
|
||||||
|
offset: Center
|
||||||
|
- to: solartracker
|
||||||
|
conditions:
|
||||||
|
- !type:EntityAnchored
|
||||||
|
value: true
|
||||||
|
steps:
|
||||||
|
- prototype: SolarTrackerElectronics
|
||||||
|
name: Solar Tracker Electronics
|
||||||
|
icon:
|
||||||
|
sprite: Constructible/Misc/module.rsi
|
||||||
|
state: id_mod
|
||||||
|
doAfter: 1
|
||||||
|
- material: Glass
|
||||||
|
amount: 2
|
||||||
|
doAfter: 2
|
||||||
|
completed:
|
||||||
|
- !type:SnapToGrid
|
||||||
|
offset: Center
|
||||||
|
|
||||||
|
- node: solarpanel
|
||||||
|
entity: SolarPanel
|
||||||
|
edges:
|
||||||
|
- to: solarassembly
|
||||||
|
completed:
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: SheetGlass1
|
||||||
|
amount: 2
|
||||||
|
conditions:
|
||||||
|
- !type:EntityAnchored
|
||||||
|
anchored: true
|
||||||
|
steps:
|
||||||
|
- tool: Prying
|
||||||
|
doAfter: 0.5
|
||||||
|
|
||||||
|
- node: solartracker
|
||||||
|
entity: SolarTracker
|
||||||
|
edges:
|
||||||
|
- to: solarassembly
|
||||||
|
completed:
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: SheetGlass1
|
||||||
|
amount: 2
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: SolarTrackerElectronics
|
||||||
|
amount: 1
|
||||||
|
conditions:
|
||||||
|
- !type:EntityAnchored
|
||||||
|
anchored: true
|
||||||
|
steps:
|
||||||
|
- tool: Prying
|
||||||
|
doAfter: 1
|
||||||
31
Resources/Prototypes/Recipes/Construction/power.yml
Normal file
31
Resources/Prototypes/Recipes/Construction/power.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
- type: construction
|
||||||
|
name: APC
|
||||||
|
id: apc
|
||||||
|
graph: apc
|
||||||
|
startNode: start
|
||||||
|
targetNode: apc
|
||||||
|
category: Utility
|
||||||
|
description: "Area Power Controller (APC). Controls power. In an area."
|
||||||
|
icon:
|
||||||
|
sprite: Constructible/Power/apc.rsi
|
||||||
|
state: apc0
|
||||||
|
objectType: Structure
|
||||||
|
placementMode: AlignWallProper
|
||||||
|
canBuildInImpassable: true
|
||||||
|
|
||||||
|
- type: construction
|
||||||
|
name: Solar Assembly
|
||||||
|
id: SolarPanel
|
||||||
|
graph: solarpanel
|
||||||
|
startNode: start
|
||||||
|
targetNode: solarpanel
|
||||||
|
category: Utility
|
||||||
|
description: "Can be turned into a solar panel or solar tracker."
|
||||||
|
icon:
|
||||||
|
sprite: Constructible/Power/solar_panel.rsi
|
||||||
|
state: solar_assembly
|
||||||
|
objectType: Structure
|
||||||
|
placementMode: SnapgridCenter
|
||||||
|
canBuildInImpassable: false
|
||||||
|
conditions:
|
||||||
|
- !type:TileNotBlocked {}
|
||||||
@@ -198,16 +198,18 @@
|
|||||||
canBuildInImpassable: false
|
canBuildInImpassable: false
|
||||||
|
|
||||||
- type: construction
|
- type: construction
|
||||||
name: APC
|
name: Wooden Barricade
|
||||||
id: apc
|
id: Barricade
|
||||||
graph: apc
|
graph: barricade
|
||||||
startNode: start
|
startNode: start
|
||||||
targetNode: apc
|
targetNode: barricadewooden
|
||||||
category: Structures
|
category: Structures
|
||||||
description: Area Power Controller (APC). Controls power. In an area.
|
description: An improvised barricade made out of wooden planks.
|
||||||
icon:
|
icon:
|
||||||
sprite: Constructible/Power/apc.rsi
|
sprite: Constructible/Structures/barricades.rsi
|
||||||
state: apc0
|
state: barricadewooden
|
||||||
objectType: Structure
|
objectType: Structure
|
||||||
placementMode: SnapgridCenter
|
placementMode: SnapgridCenter
|
||||||
canBuildInImpassable: true
|
canBuildInImpassable: false
|
||||||
|
conditions:
|
||||||
|
- !type:TileNotBlocked {}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"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.","size":{"x":32,"y":32},"states":[{"name":"normal","select":[],"flags":{},"directions":8},{"name":"broken","select":[],"flags":{},"directions":1}]}
|
{"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.","size":{"x":32,"y":32},"states":[{"name":"normal","select":[],"flags":{},"directions":8},{"name":"broken","select":[],"flags":{},"directions":1},{"name": "solar_assembly"},{"name": "solar_tracker"}]}
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 315 B |
Binary file not shown.
|
After Width: | Height: | Size: 506 B |
Binary file not shown.
|
After Width: | Height: | Size: 409 B |
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/e09101cb4be860ff02e035b18bef93a08b9c204c",
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "barricadewooden"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
14
Resources/Textures/Objects/Power/solar_parts.rsi/meta.json
Normal file
14
Resources/Textures/Objects/Power/solar_parts.rsi/meta.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Taken from https://tgstation13.org/wiki/Guide_to_construction#Solar_Panels_and_Trackers and modified.",
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "solar_assembly_parts"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 447 B |
Reference in New Issue
Block a user