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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user