Skip to content
This repository has been archived by the owner on Nov 1, 2024. It is now read-only.

Commit

Permalink
Wall freezers (new-frontiers-14#2190)
Browse files Browse the repository at this point in the history
* wall freezers

* construction

* clean up yml, more sprites

* small fixes

* Update storage.yml

---------

Co-authored-by: Dvir <[email protected]>
Co-authored-by: Dvir <[email protected]>
  • Loading branch information
3 people authored Oct 18, 2024
1 parent f71965e commit d71b576
Show file tree
Hide file tree
Showing 27 changed files with 432 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,28 @@
suffix: Filled, Random
# endregion

# region Safety gear
- type: entity
parent: [ LockerWallColorL1Fire, StorageFillL1FireSuit ]
id: LockerWallColorL1FireFilled
suffix: Frontier, Filled

- type: entity
parent: [ LockerWallColorL2Radiation, StorageFillL2RadiationSuit ]
id: LockerWallColorL2RadiationFilled
suffix: Frontier, Filled

- type: entity
parent: [ LockerWallColorL3Biohazard, StorageFillL3BiohazardSuit ]
id: LockerWallColorL3BiohazardFilled
suffix: Frontier, Filled

- type: entity
parent: [ LockerWallColorL4Bomb, StorageFillL4BombSuit ]
id: LockerWallColorL4BombFilled
suffix: Frontier, Filled
# endregion

# region Medical
- type: entity
id: LockerWallColorMedicalDoctorFilled
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@

- type: entity
abstract: true
id: StorageFillL1FireSuit
components:
- type: StorageFill
contents:
- id: ClothingOuterSuitFire
- id: ClothingHeadHelmetFire
- id: FireExtinguisher
- id: ClothingMaskGas
- id: CrowbarRed
- id: DoubleEmergencyAirTankFilled

- type: entity
abstract: true
id: StorageFillL2RadiationSuit
components:
- type: StorageFill
contents:
- id: ClothingOuterSuitRad
- id: GeigerCounter

- type: entity
abstract: true
id: StorageFillL3BiohazardSuit
components:
- type: StorageFill
contents:
- id: ClothingOuterBioGeneral
- id: ClothingHeadHatHoodBioGeneral
- id: DoubleEmergencyAirTankFilled

- type: entity
abstract: true
id: StorageFillL4BombSuit
components:
- type: StorageFill
contents:
- id: ClothingOuterSuitBomb
- id: ClothingHeadHelmetBombSuit
- id: Multitool
- id: Screwdriver
- id: Wirecutter
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,96 @@
- state: locked
map: ["enum.LockVisualLayers.Lock"]

# Safety equipment: radiation protection, boihazard etc.
- type: entity
categories: [ HideSpawnMenu ] # debloat spawn menu
id: LockerWallColorL1Fire
parent: LockerWallColorBase
name: L1 fire suit wall locker
components:
- type: Sprite
layers:
- state: base
map: ["enum.StorageVisualLayers.Base"]
color: "#c82d2d"
- state: door
map: ["enum.StorageVisualLayers.Door"]
color: "#c82d2d"
- state: door-decal-l1-fire
map: [ decal1 ]
- state: welded
visible: false
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.LockVisualLayers.Lock"]

- type: entity
categories: [ HideSpawnMenu ] # debloat spawn menu
id: LockerWallColorL2Radiation
parent: LockerWallColorBase
name: L2 radiation suit wall locker
components:
- type: Sprite
layers:
- state: base
map: ["enum.StorageVisualLayers.Base"]
color: "#ead152"
- state: door
map: ["enum.StorageVisualLayers.Door"]
color: "#ead152"
- state: door-decal-l2-rad
map: [ decal1 ]
color: "#202020"
- state: welded
visible: false
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.LockVisualLayers.Lock"]

- type: entity
categories: [ HideSpawnMenu ] # debloat spawn menu
id: LockerWallColorL3Biohazard
parent: LockerWallColorBase
name: L3 biohazard suit wall locker
components:
- type: Sprite
layers:
- state: base
map: ["enum.StorageVisualLayers.Base"]
color: "#7c2900"
- state: door
map: ["enum.StorageVisualLayers.Door"]
color: "#7c2900"
- state: door-decal-l3-bio
map: [ decal1 ]
- state: welded
visible: false
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.LockVisualLayers.Lock"]

- type: entity
categories: [ HideSpawnMenu ] # debloat spawn menu
id: LockerWallColorL4Bomb
parent: LockerWallColorBase
name: L4 bomb suit wall locker
components:
- type: Sprite
layers:
- state: base
map: ["enum.StorageVisualLayers.Base"]
color: "#3a493e"
- state: door
map: ["enum.StorageVisualLayers.Door"]
color: "#3a493e"
- state: door-decal-l4-expl
map: [ decal1 ]
- state: welded
visible: false
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.LockVisualLayers.Lock"]

# Other: Chemistry wall locker
- type: entity
id: LockerWallChemistry
Expand Down Expand Up @@ -223,4 +313,4 @@
- type: EntityStorageVisuals
stateBaseClosed: o2n2
stateDoorOpen: o2n2_open
stateDoorClosed: o2n2_door
stateDoorClosed: o2n2_door
80 changes: 80 additions & 0 deletions Resources/Prototypes/_NF/Entities/Structures/Wallmounts/shelfs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Wall freezers
- type: entity
id: ShelfWallFreezerWhite
parent: ShelfBaseReinforced
name: wall freezer
description: A convenient place to store perishables.
suffix: Frontier, White
components:
- type: ExplosionResistance
damageCoefficient: 0.50
- type: AntiRottingContainer
- type: Sprite
sprite: _NF/Structures/Storage/Shelfs/Departments/Service/wall_fridge.rsi
layers:
- state: base
map: ["enum.StorageVisualLayers.Base"]
- state: food-0
map: ["enum.StorageFillLayers.Fill"]
- state: closed
map: ["enum.StorageVisualLayers.Door"]
- state: locked
map: ["enum.LockVisualLayers.Lock"]
shader: unshaded
- type: StorageFillVisualizer
maxFillLevels: 10
fillBaseName: food
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 330
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel1:
min: 0
max: 3
SheetPlastic1:
min: 0
max: 3
ShardGlass:
min: 0
max: 3
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Storage
grid:
- 0,0,5,1
- 0,3,5,4
- 0,6,5,6
maxItemSize: Normal
- type: Construction
graph: WallFreezer
node: ShelfWallFreezerWhite

- type: entity
id: ShelfWallFreezerDark
parent: ShelfWallFreezerWhite
name: wall freezer
suffix: Frontier, Dark
components:
- type: Sprite
layers:
- state: base
map: ["enum.StorageVisualLayers.Base"]
color: "#909090"
- state: food-0
map: ["enum.StorageFillLayers.Fill"]
- state: closed
map: ["enum.StorageVisualLayers.Door"]
color: "#909090"
- state: locked
map: ["enum.LockVisualLayers.Lock"]
shader: unshaded
- type: Construction
graph: WallFreezer
node: ShelfWallFreezerDark
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
- type: constructionGraph
id: WallFreezer
start: start
graph:
- node: start
actions:
- !type:DeleteEntity {}
edges:

# White wall freezer
- to: ShelfWallFreezerWhite
completed:
- !type:SnapToGrid
steps:
- material: Plasteel
amount: 5
doAfter: 3
- material: Glass
amount: 5
doAfter: 2
- material: Plastic
amount: 5
doAfter: 2
- material: Cable
amount: 3
doAfter: 1
# White wall freezer deconstructs
- node: ShelfWallFreezerWhite
entity: ShelfWallFreezerWhite
edges:
- to: start
completed:
- !type:EmptyAllContainers
- !type:SpawnPrototype
prototype: SheetPlasteel1
amount: 5
- !type:SpawnPrototype
prototype: SheetPlastic1
amount: 5
- !type:SpawnPrototype
prototype: SheetGlass1
amount: 5
- !type:SpawnPrototype
prototype: CableApcStack1
amount: 3
steps:
- tool: Screwing
doAfter: 2
- tool: Welding
doAfter: 5

# Dark wall freezer
- to: ShelfWallFreezerDark
completed:
- !type:SnapToGrid
steps:
- material: Plasteel
amount: 5
doAfter: 3
- material: Glass
amount: 5
doAfter: 2
- material: Plastic
amount: 5
doAfter: 2
- material: Cable
amount: 3
doAfter: 1
# Dark wall freezer deconstructs
- node: ShelfWallFreezerDark
entity: ShelfWallFreezerDark
edges:
- to: start
completed:
- !type:EmptyAllContainers
- !type:SpawnPrototype
prototype: SheetPlasteel1
amount: 5
- !type:SpawnPrototype
prototype: SheetPlastic1
amount: 5
- !type:SpawnPrototype
prototype: SheetGlass1
amount: 5
- !type:SpawnPrototype
prototype: CableApcStack1
amount: 3
steps:
- tool: Screwing
doAfter: 2
- tool: Welding
doAfter: 5
35 changes: 35 additions & 0 deletions Resources/Prototypes/_NF/Recipes/Construction/storage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Shelfs
## Wall freezers
- type: construction
id: ShelfWallFreezerWhite
name: wall freezer (white)
description: A convenient place to store perishables.
hide: true # TODO: Need freezer board added
graph: WallFreezer
startNode: start
targetNode: ShelfWallFreezerWhite
icon:
sprite: _NF/Structures/Storage/Shelfs/Departments/Service/wall_fridge.rsi
state: base
objectType: Structure
placementMode: SnapgridCenter
canBuildInImpassable: true
conditions:
- !type:WallmountCondition

- type: construction
id: ShelfWallFreezerDark
name: wall freezer (dark)
description: A convenient place to store perishables.
hide: true # TODO: Need freezer board added
graph: WallFreezer
startNode: start
targetNode: ShelfWallFreezerDark
icon:
sprite: _NF/Structures/Storage/Shelfs/Departments/Service/wall_fridge.rsi
state: base
objectType: Structure
placementMode: SnapgridCenter
canBuildInImpassable: true
conditions:
- !type:WallmountCondition
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

0 comments on commit d71b576

Please sign in to comment.