Make atmos Turing-complete (#10520)

* Add pneumatic valves

Pneumatic valves permit bidirectional flow between the inlet and outlet
if the pressure at the control port is high enough.

* Add construction recipe
This commit is contained in:
Kevin Zheng
2022-08-11 14:19:31 -07:00
committed by GitHub
parent 3d511900e9
commit 9cb7e0f6c4
8 changed files with 242 additions and 1 deletions

View File

@@ -198,3 +198,58 @@
!type:PipeNode
nodeGroupID: Pipe
pipeDirection: North
- type: entity
parent: GasPipeBase
id: PressureControlledValve
name: pneumatic valve
description: Valve controlled by pressure.
placement:
mode: SnapgridCenter
components:
- type: AtmosDevice
- type: SubFloorHide
blockInteractions: false
blockAmbience: false
- type: NodeContainer
nodes:
inlet:
!type:PipeNode
nodeGroupID: Pipe
pipeDirection: North
control:
!type:PipeNode
nodeGroupID: Pipe
pipeDirection: West
outlet:
!type:PipeNode
nodeGroupID: Pipe
pipeDirection: South
- type: Sprite
netsync: false
sprite: Structures/Piping/Atmospherics/pneumaticvalve.rsi
layers:
- sprite: Structures/Piping/Atmospherics/pipe.rsi
state: pipeTJunction
rotation: -90
map: [ "enum.PipeVisualLayers.Pipe" ]
- state: off
map: [ "enum.SubfloorLayers.FirstLayer", "enabled" ]
- type: Appearance
- type: GenericVisualizer
visuals:
enum.FilterVisuals.Enabled:
enabled:
True: { state: on }
False: { state: off }
- type: PipeColorVisuals
- type: PressureControlledValve
- type: AmbientSound
enabled: false
volume: -9
range: 5
sound:
path: /Audio/Ambience/Objects/gas_hiss.ogg
- type: Construction
graph: GasTrinary
node: pneumaticvalve

View File

@@ -16,6 +16,12 @@
amount: 2
doAfter: 1
- to: pneumaticvalve
steps:
- material: Steel
amount: 2
doAfter: 1
- node: filter
entity: GasFilter
edges:
@@ -47,3 +53,19 @@
steps:
- tool: Welding
doAfter: 1
- node: pneumaticvalve
entity: PressureControlledValve
edges:
- to: start
conditions:
- !type:EntityAnchored
anchored: false
completed:
- !type:SpawnPrototype
prototype: SheetSteel1
amount: 2
- !type:DeleteEntity
steps:
- tool: Welding
doAfter: 1

View File

@@ -12,7 +12,7 @@
state: camera
objectType: Structure
placementMode: SnapgridCenter
- type: construction
name: telescreen
id: WallmountTelescreen
@@ -511,3 +511,17 @@
conditions:
- !type:TileNotBlocked {}
- type: construction
id: PressureControlledValve
name: pneumatic valve
graph: GasTrinary
startNode: start
targetNode: pneumaticvalve
category: Utilities
placementMode: SnapgridCenter
canBuildInImpassable: false
icon:
sprite: Structures/Piping/Atmospherics/pneumaticvalve.rsi
state: off
conditions:
- !type:TileNotBlocked {}

View File

@@ -0,0 +1,19 @@
{
"version": 1,
"license": "CC-BY-SA-4.0",
"copyright": "Kevin Zheng 2022",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "off",
"directions": 4
},
{
"name": "on",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB