Merge branch 'master' into replace-sounds-with-sound-specifier

This commit is contained in:
ShadowCommander
2021-08-10 15:05:49 -07:00
183 changed files with 5472 additions and 2022 deletions

View File

@@ -23,7 +23,7 @@
- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatBeretEngineering
name: engineering beret
name: engineering beret
description: A beret with the engineering insignia emblazoned on it. For engineers that are more inclined towards style than safety.
components:
- type: Sprite
@@ -360,3 +360,14 @@
sprite: Clothing/Head/Hats/xmascrown.rsi
- type: Clothing
sprite: Clothing/Head/Hats/xmascrown.rsi
- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatTrucker
name: truckers hat
description: Formerly Chucks, this hat is yours now.
components:
- type: Sprite
sprite: Clothing/Head/Hats/truckershat.rsi
- type: Clothing
sprite: Clothing/Head/Hats/truckershat.rsi

View File

@@ -571,3 +571,14 @@
sprite: Clothing/Uniforms/Jumpsuit/rainbow.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/rainbow.rsi
- type: entity
parent: ClothingUniformBase
id: ClothingUniformOveralls
name: overalls
description: Great for working outdoors.
components:
- type: Sprite
sprite: Clothing/Uniforms/Jumpsuit/overalls.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/overalls.rsi

View File

@@ -4,5 +4,4 @@
abstract: true
components:
- type: Sprite
- type: Physics
- type: AnimationPlayer

View File

@@ -68,7 +68,7 @@
currentTemperature: 310.15
specificHeat: 42
tempDamageCoefficient: 0.1
- type: Metabolism
- type: Respirator
metabolismHeat: 5000
radiatedHeat: 400
implicitHeatRegulation: 5000

View File

@@ -38,7 +38,7 @@
0: !type:NormalMobState {}
150: !type:CriticalMobState {}
200: !type:DeadMobState {}
- type: Metabolism
- type: Respirator
- type: UnarmedCombat
range: 1.5
arcwidth: 0

View File

@@ -168,7 +168,7 @@
preset: HumanPreset
- type: Damageable
damageContainer: biologicalDamageContainer
- type: Metabolism
- type: Respirator
metabolismHeat: 5000
radiatedHeat: 400
implicitHeatRegulation: 5000

View File

@@ -84,7 +84,7 @@
- type: Body
template: HumanoidTemplate
preset: VoxPreset
- type: Metabolism
- type: Respirator
needsGases:
Nitrogen: 0.00060763888
producesGases:

View File

@@ -11,7 +11,6 @@
reagents:
- ReagentId: Nutriment
Quantity: 20
trash: BowlBigTrash
- type: Sprite
sprite: Objects/Consumable/Food/bowl.rsi
netsync: false

View File

@@ -28,3 +28,32 @@
Amount: 2
DefaultPrototype: Beaker
ExamineName: Glass Beaker
- type: entity
id: CloningPodMachineCircuitboard
parent: BaseMachineCircuitboard
name: Cloning Pod (Machine Board)
components:
- type: MachineBoard
prototype: CloningPod
requirements:
ScanningModule: 2
Manipulator: 2
materialRequirements:
Glass: 1
Cable: 1
- type: entity
id: MedicalScannerMachineCircuitboard
parent: BaseMachineCircuitboard
name: Medical Scanner (Machine Board)
components:
- type: MachineBoard
prototype: MedicalScanner
requirements:
ScanningModule: 1
Manipulator: 1
Laser: 1
materialRequirements:
Glass: 1
Cable: 1

View File

@@ -92,6 +92,16 @@
- plasma
- plasma_2
- plasma_3
- type: SolutionContainer
caps: 1
contents:
reagents:
- ReagentId: Plasma
Quantity: 10
- type: Tag
tags:
- Grindable
- Sheet
- type: entity
parent: SheetPlasma

View File

@@ -38,16 +38,16 @@
- SmallImpassable
- type: Door
board: DoorElectronics
openSound:
path: /Audio/Machines/airlock_open.ogg
closeSound:
path: /Audio/Machines/airlock_close.ogg
denySound:
path: /Audio/Machines/airlock_deny.ogg
- type: Airlock
- type: Appearance
visuals:
- type: AirlockVisualizer
open_sound:
path: /Audio/Machines/airlock_open.ogg
close_sound:
path: /Audio/Machines/airlock_close.ogg
deny_sound:
path: /Audio/Machines/airlock_deny.ogg
- type: WiresVisualizer
- type: ApcPowerReceiver
- type: Wires

View File

@@ -2,19 +2,19 @@
parent: Airlock
id: AirlockExternal
suffix: External
description: "It opens, it closes, it might crush you, and there might be only space behind it.\nHas to be manually activated."
description: It opens, it closes, it might crush you, and there might be only space behind it. Has to be manually activated.
components:
- type: Door
bumpOpen: false
openSound:
path: /Audio/Machines/airlock_ext_open.ogg
closeSound:
path: /Audio/Machines/airlock_ext_close.ogg
denySound:
path: /Audio/Machines/airlock_deny.ogg
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/external.rsi
- type: Appearance
visuals:
- type: AirlockVisualizer
open_sound:
path: /Audio/Machines/airlock_ext_open.ogg
close_sound:
path: /Audio/Machines/airlock_ext_close.ogg
deny_sound:
path: /Audio/Machines/airlock_deny.ogg
- type: WiresVisualizer

View File

@@ -54,17 +54,17 @@
startOpen: true
bumpOpen: false
inhibitCrush: false
openSound:
path: /Audio/Machines/airlock_open.ogg
closeSound:
path: /Audio/Machines/airlock_close.ogg
denySound:
path: /Audio/Machines/airlock_deny.ogg
- type: Firelock
- type: Appearance
visuals:
- type: AirlockVisualizer
open_sound:
path: /Audio/Machines/airlock_open.ogg
close_sound:
path: /Audio/Machines/airlock_close.ogg
deny_sound:
path: /Audio/Machines/airlock_deny.ogg
animation_time: 0.6
animationTime: 0.6
- type: WiresVisualizer
- type: Wires
BoardName: "Firelock Control"
@@ -113,7 +113,7 @@
fixtures:
- shape:
!type:PhysShapeRect
bounds: "0.49,-0.49,-0.49,-0.2" # don't want this colliding with walls or they won't close
bounds: "-0.2,-0.49,-0.49,0.49" # don't want this colliding with walls or they won't close
mask:
- MobImpassable
layer:

View File

@@ -0,0 +1,76 @@
- type: entity
id: WindoorAssembly
name: windoor assembly
description: It opens, it closes, and you can see through it!
parent: BaseStructure
components:
- type: InteractionOutline
- type: Sprite
netsync: false
drawdepth: FloorObjects
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: assembly
- type: Physics
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.2,-0.49,-0.49,0.49"
mass: 30
mask:
- Impassable
- VaultImpassable
- type: Anchorable
- type: Pullable
- type: Rotatable
- type: Damageable
resistances: metallicResistances
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 1
max: 3
- type: Construction
graph: windoor
node: assembly
placement:
mode: SnapgridCenter
- type: entity
id: WindoorAssemblySecure
name: secure windoor assembly
description: It opens, it closes, and you can see through it! This one looks tough.
parent: WindoorAssembly
components:
- type: Sprite
netsync: false
drawdepth: Mobs
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: secure_underlay
- state: assembly
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 600
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel1:
min: 1
max: 2
- type: Construction
graph: windoor
node: assemblySecure

View File

@@ -0,0 +1,135 @@
- type: entity
id: BaseWindoor
parent: BaseStructure
abstract: true
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: Physics
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.2,-0.49,-0.49,0.49"
mass: 50
layer:
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable
mask:
- VaultImpassable
- type: Sprite
netsync: false
drawdepth: FloorObjects
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: closed
map: ["enum.DoorVisualLayers.Base"]
- state: closed_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
map: ["enum.DoorVisualLayers.BaseWelded"]
- state: bolted_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseBolted"]
- state: panel_open
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: ApcPowerReceiver
- type: Damageable
resistances: glassResistances
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 2
SheetSteel1:
min: 2
max: 4
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: AccessReader
- type: Airlock
openPanelVisible: true
- type: Door
weldable: false
openSound:
path: /Audio/Machines/windoor_open.ogg
closeSound:
path: /Audio/Machines/windoor_open.ogg
denySound:
path: /Audio/Machines/airlock_deny.ogg
- type: Wires
BoardName: "Windoor Control"
LayoutId: Airlock
- type: UserInterface
interfaces:
- key: enum.WiresUiKey.Key
type: WiresBoundUserInterface
- type: Appearance
visuals:
- type: AirlockVisualizer
animationTime: 0.9
denyAnimationTime: 0.4
animatedPanel: false
openUnlitVisible: true
- type: WiresVisualizer
- type: Construction
graph: windoor
node: windoor
- type: entity
id: BaseSecureWindoor
parent: BaseWindoor
abstract: true
components:
- type: Airtight
fixVacuum: true
noAirWhenFullyAirBlocked: false
airBlockedDirection:
- South
- type: Sprite
netsync: false
drawdepth: FloorObjects
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: secure_underlay
- state: closed
map: [ "enum.DoorVisualLayers.Base" ]
- state: closed_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseUnlit" ]
- state: welded
map: [ "enum.DoorVisualLayers.BaseWelded" ]
- state: bolted_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseBolted" ]
- state: panel_open
map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
visible: false
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 400
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 2
SheetPlasteel1:
min: 1
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Construction
graph: windoor
node: windoorSecure

View File

@@ -0,0 +1,66 @@
- type: entity
id: Windoor
parent: BaseWindoor
name: windoor
description: It's a window and a sliding door. Wow!
- type: entity
id: WindoorSecure
parent: BaseSecureWindoor
name: secure windoor
description: It's a sturdy window and a sliding door. Wow!
# TODO remove these with parameterized prototypes/whatever we end up doing
# Bar windoor
- type: entity
parent: Windoor
id: WindoorBarLocked
suffix: Bar, Locked
components:
- type: AccessReader
access: [["Bar"]]
# Chemistry windoor
- type: entity
parent: WindoorSecure
id: WindoorMedicalLocked
suffix: Medical, Locked
components:
- type: AccessReader
access: [["Medical"]]
# Science windoor
- type: entity
parent: WindoorSecure
id: WindoorScienceLocked
suffix: Science, Locked
components:
- type: AccessReader
access: [["Research"]]
# HOP's office windoor
- type: entity
parent: WindoorSecure
id: WindoorCommandLocked
suffix: Command, Locked
components:
- type: AccessReader
access: [["Command"]]
# Cargo windoor
- type: entity
parent: Windoor
id: WindoorCargoLocked
suffix: Cargo, Locked
components:
- type: AccessReader
access: [["Cargo"]]
# Security windoor
- type: entity
parent: WindoorSecure
id: WindoorSecurityLocked
suffix: Security, Locked
components:
- type: AccessReader
access: [["Security"]]

View File

@@ -23,6 +23,25 @@
- Opaque
mask:
- MobMask
- type: Construction
graph: machine
node: machine
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Machine
board: CloningPodMachineCircuitboard
- type: MaterialStorage
- type: Wires
BoardName: "CloningPod"
LayoutId: CloningPod
- type: Appearance
visuals:
- type: CloningPodVisualizer

View File

@@ -25,6 +25,9 @@
- shape:
!type:PhysShapeAabb
bounds: "-1.5,-1.5,1.5,1.5"
mass: 500
mask:
- Impassable
layer:
- Opaque
- Impassable

View File

@@ -166,6 +166,8 @@
- FirelockElectronics
- DoorElectronics
- APCElectronics
- CloningPodMachineCircuitboard
- MedicalScannerMachineCircuitboard
- Bucket
- MopItem
- SprayBottle

View File

@@ -14,6 +14,25 @@
map: ["enum.MedicalScannerVisualLayers.Machine"]
- state: idle_unlit
map: ["enum.MedicalScannerVisualLayers.Terminal"]
- type: Construction
graph: machine
node: machine
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Machine
board: MedicalScannerMachineCircuitboard
- type: MaterialStorage
- type: Wires
BoardName: "MedicalScanner"
LayoutId: MedicalScanner
- type: Appearance
visuals:
- type: MedicalScannerVisualizer

View File

@@ -33,11 +33,14 @@
state: pipeStraight
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: pumpPressure
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer", "enum.PressurePumpVisualizer+Layers.Enabled" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: PressurePumpVisualizer
disabledState: pumpPressure
enabledState: pumpPressureOn
- type: GasPressurePump
@@ -57,6 +60,12 @@
state: pipeStraight
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: pumpVolume
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasVolumePump
- type: entity
@@ -75,6 +84,12 @@
state: pipeStraight
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: pumpPassiveGate
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasPassiveGate
- type: entity
@@ -94,6 +109,12 @@
state: pipeStraight
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: pumpPassiveGate
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasValve
- type: NodeContainer
nodes:
@@ -118,6 +139,12 @@
state: pipeHalf
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: gasCanisterPort
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasPort
- type: NodeContainer
nodes:
@@ -142,9 +169,10 @@
state: pipeStraight
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: vent_off
map: ["enum.VentVisualLayers.Vent"]
map: [ "enum.VentVisualLayers.Vent", "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: VentPumpVisualizer

View File

@@ -33,6 +33,7 @@
- type: NodeContainer
- type: AtmosUnsafeUnanchor
- type: AtmosPipeColor
- type: SubFloorHide
#Note: The PipeDirection of the PipeNode should be the south-facing version, because the entity starts at an angle of 0 (south)

View File

@@ -38,6 +38,15 @@
state: pipeTJunction
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: gasFilter
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer", "enum.GasFilterVisualizer+Layers.Enabled" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasFilterVisualizer
disabledState: gasFilter
enabledState: gasFilterOn
- type: GasFilter
- type: entity
@@ -57,6 +66,12 @@
state: pipeTJunction
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: gasFilter
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasMixer
inletOne: inlet
inletTwo: filter

View File

@@ -29,9 +29,10 @@
state: pipeHalf
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: vent_off
map: ["enum.VentVisualLayers.Vent"]
map: [ "enum.VentVisualLayers.Vent", "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: VentPumpVisualizer
@@ -54,8 +55,10 @@
state: pipeHalf
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: vent_off
map: [ "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasPassiveVent
@@ -76,9 +79,10 @@
state: pipeHalf
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- state: scrub_off
map: ["enum.ScrubberVisualLayers.Scrubber"]
map: [ "enum.ScrubberVisualLayers.Scrubber", "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: ScrubberVisualizer
@@ -93,18 +97,24 @@
placement:
mode: SnapgridCenter
components:
- type: GasOutletInjector
# TODO ATMOS: Actual sprite for this.
- type: Sprite
netsync: false
layers:
- state: pipeHalf
sprite: Structures/Piping/Atmospherics/pipe.rsi
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
map: [ "enum.PipeColorVisualizer+Layers.Pipe", "enum.SubFloorShowLayerVisualizer+Layers.FirstLayer" ]
- type: Appearance
visuals:
- type: SubFloorShowLayerVisualizer
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasOutletInjector
- type: entity
parent: GasUnaryBase
id: GasThermoMachineBase
parent: BaseMachinePowered
id: BaseGasThermoMachine
name: thermomachine
description: Heats or cools gas in connected pipes.
abstract: true
@@ -117,10 +127,19 @@
- type: Appearance
visuals:
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: GasThermoMachine
- type: AtmosPipeColor
- type: AtmosDevice
- type: NodeContainer
nodes:
pipe:
!type:PipeNode
nodeGroupID: Pipe
pipeDirection: South
- type: entity
parent: GasThermoMachineBase
parent: BaseGasThermoMachine
id: GasThermoMachineFreezer
name: freezer
placement:
@@ -129,18 +148,22 @@
- type: Sprite
layers:
- state: freezer_off
map: [ "enum.ThermoMachineVisualizer+Layers.Enabled" ]
- state: pipe
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- type: Appearance
visuals:
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: ThermoMachineVisualizer
disabledState: freezer_off
enabledState: freezer_on
- type: GasThermoMachine
mode: Freezer
minTemperature: 73.15
- type: entity
parent: GasThermoMachineBase
parent: BaseGasThermoMachine
id: GasThermoMachineHeater
name: heater
placement:
@@ -149,11 +172,15 @@
- type: Sprite
layers:
- state: heater_off
map: [ "enum.ThermoMachineVisualizer+Layers.Enabled" ]
- state: pipe
map: [ "enum.PipeColorVisualizer+Layers.Pipe" ]
- type: Appearance
visuals:
- type: PipeConnectorVisualizer
- type: PipeColorVisualizer
- type: ThermoMachineVisualizer
disabledState: heater_off
enabledState: heater_on
- type: GasThermoMachine
mode: Heater

View File

@@ -1,7 +1,7 @@
- type: entity
id: ContainmentFieldGenerator
name: containment field generator
description: A machine that generates a containment field when powered by an emitter.\nKeeps the Singularity docile.
description: A machine that generates a containment field when powered by an emitter. Keeps the Singularity docile.
placement:
mode: SnapgridCenter
components:

View File

@@ -1,7 +1,7 @@
- type: entity
id: Singularity
name: gravitational singularity
description: A mesmerizing swirl of darkness that sucks in everything.\nIf it's moving towards you, run.
description: A mesmerizing swirl of darkness that sucks in everything. If it's moving towards you, run.
components:
- type: Clickable
- type: Physics

View File

@@ -1,73 +0,0 @@
- type: entity
abstract: true
id: GasCanister
name: gas canister
description: A canister that can contain any type of gas. It can be attached to connector ports using a wrench.
parent: BaseStructureDynamic
components:
- type: InteractionOutline
- type: Sprite
netsync: false
sprite: Structures/Storage/canister.rsi
state: grey
- type: Appearance
visuals:
- type: GasPortableVisualizer
stateConnected: can-connector
- type: GasCanisterVisualizer
insertedTankState: can-open
pressureStates:
- can-o0
- can-o1
- can-o2
- can-o3
- type: UserInterface
interfaces:
- key: enum.GasCanisterUiKey.Key
type: GasCanisterBoundUserInterface
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
- !type:SpawnEntitiesBehavior
spawn:
GasCanisterBrokenBase:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Damageable
resistances: metallicResistances
- type: Physics
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
mass: 25
mask:
- MobImpassable
layer:
- Opaque
- MobImpassable
- SmallImpassable
- VaultImpassable
- type: AtmosDevice
requireAnchored: false
- type: ContainerContainer
containers:
GasCanisterTankHolder: !type:ContainerSlot {}
- type: NodeContainer
nodes:
port:
!type:PortablePipeNode
nodeGroupID: Pipe
rotationsEnabled: false
volume: 1
- type: GasPortable
- type: GasCanister

View File

@@ -1,3 +1,77 @@
- type: entity
abstract: true
id: GasCanister
name: gas canister
description: A canister that can contain any type of gas. It can be attached to connector ports using a wrench.
parent: BaseStructureDynamic
components:
- type: InteractionOutline
- type: Sprite
netsync: false
sprite: Structures/Storage/canister.rsi
state: grey
- type: Appearance
visuals:
- type: GasPortableVisualizer
stateConnected: can-connector
- type: GasCanisterVisualizer
insertedTankState: can-open
pressureStates:
- can-o0
- can-o1
- can-o2
- can-o3
- type: UserInterface
interfaces:
- key: enum.GasCanisterUiKey.Key
type: GasCanisterBoundUserInterface
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:PlaySoundBehavior
sound: /Audio/Effects/metalbreak.ogg
- !type:SpawnEntitiesBehavior
spawn:
GasCanisterBrokenBase:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Damageable
resistances: metallicResistances
- type: Physics
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
mass: 25
mask:
- MobImpassable
layer:
- Opaque
- MobImpassable
- SmallImpassable
- VaultImpassable
- type: AtmosDevice
requireAnchored: false
joinSystem: true
- type: ContainerContainer
containers:
GasCanisterTankHolder: !type:ContainerSlot {}
- type: NodeContainer
nodes:
port:
!type:PortablePipeNode
nodeGroupID: Pipe
rotationsEnabled: false
volume: 1
- type: GasPortable
- type: GasCanister
- type: entity
parent: GasCanister
id: StorageCanister

View File

@@ -103,3 +103,16 @@
visuals:
- type: StorageVisualizer
state: bio_jan
# Maintenance closet
- type: entity
id: ClosetMaintenance
name: maintenance closet
parent: ClosetBase
description: It's a storage unit.
components:
- type: Appearance
visuals:
- type: StorageVisualizer
state_open: generic_open
state_closed: generic_door

View File

@@ -56,6 +56,18 @@
name: morgue tray
description: If you lay down to have a rest on this, you'll soon have a problem.
components:
- type: Physics
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 25
mask:
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable
- type: Sprite
netsync: false
sprite: Structures/Storage/morgue.rsi