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
|
||||
category: Engineering
|
||||
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:
|
||||
- name: DebugGenerator
|
||||
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.engineamejar
|
||||
- cargo.engineamecontrol
|
||||
- cargo.enginessolar
|
||||
- cargo.funplushies
|
||||
- cargo.funartsupplies
|
||||
- cargo.funinstruments
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
- type: entity
|
||||
id: BaseGenerator
|
||||
description: A high efficiency thermoelectric generator.
|
||||
description: "A high efficiency thermoelectric generator."
|
||||
name: Base Generator
|
||||
abstract: true
|
||||
placement:
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
- type: entity
|
||||
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
|
||||
abstract: true
|
||||
placement:
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
- type: entity
|
||||
id: BaseSubstation
|
||||
description: Reduces the voltage of electricity put into it.
|
||||
description: "Reduces the voltage of electricity put into it."
|
||||
name: Base Substation
|
||||
abstract: true
|
||||
placement:
|
||||
@@ -164,7 +164,7 @@
|
||||
|
||||
- type: entity
|
||||
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
|
||||
abstract: true
|
||||
placement:
|
||||
@@ -222,16 +222,14 @@
|
||||
|
||||
- type: entity
|
||||
id: SolarPanel
|
||||
name: solar panel
|
||||
description: Generates power from sunlight. Usually used to power replacements for sunlight. Fragile.
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
components:
|
||||
- type: Clickable
|
||||
- type: InteractionOutline
|
||||
- type: Physics
|
||||
mass: 25
|
||||
bodyType: Dynamic
|
||||
mass: 100
|
||||
bodyType: Static
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeAabb {}
|
||||
@@ -273,3 +271,90 @@
|
||||
- type: ClientEntitySpawner
|
||||
prototypes:
|
||||
- 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
|
||||
|
||||
- type: construction
|
||||
name: APC
|
||||
id: apc
|
||||
graph: apc
|
||||
name: Wooden Barricade
|
||||
id: Barricade
|
||||
graph: barricade
|
||||
startNode: start
|
||||
targetNode: apc
|
||||
targetNode: barricadewooden
|
||||
category: Structures
|
||||
description: Area Power Controller (APC). Controls power. In an area.
|
||||
description: An improvised barricade made out of wooden planks.
|
||||
icon:
|
||||
sprite: Constructible/Power/apc.rsi
|
||||
state: apc0
|
||||
sprite: Constructible/Structures/barricades.rsi
|
||||
state: barricadewooden
|
||||
objectType: Structure
|
||||
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