Add Vox atmosphere marker, vents, and air alarms
This commit is contained in:
@@ -36,7 +36,7 @@ public sealed partial class AtmosphereSystem
|
||||
return;
|
||||
}
|
||||
|
||||
var mixtures = new GasMixture[7];
|
||||
var mixtures = new GasMixture[8];
|
||||
for (var i = 0; i < mixtures.Length; i++)
|
||||
mixtures[i] = new GasMixture(Atmospherics.CellVolume) { Temperature = Atmospherics.T20C };
|
||||
|
||||
@@ -65,6 +65,9 @@ public sealed partial class AtmosphereSystem
|
||||
mixtures[6].AdjustMoles(Gas.Nitrogen, Atmospherics.NitrogenMolesStandard);
|
||||
mixtures[6].Temperature = 235f; // Little colder than an actual freezer but gives a grace period to get e.g. themomachines set up, should keep warm for a few door openings
|
||||
|
||||
// 7: Nitrogen (101kpa) for vox rooms
|
||||
mixtures[7].AdjustMoles(Gas.Nitrogen, Atmospherics.MolesCellStandard);
|
||||
|
||||
foreach (var arg in args)
|
||||
{
|
||||
if (!NetEntity.TryParse(arg, out var netEntity) || !TryGetEntity(netEntity, out var euid))
|
||||
|
||||
@@ -89,3 +89,17 @@
|
||||
id: danger # just any gas you don't want at all
|
||||
upperBound: !type:AlarmThresholdSetting
|
||||
threshold: 0.0001
|
||||
|
||||
- type: alarmThreshold
|
||||
id: voxOxygen
|
||||
upperBound: !type:AlarmThresholdSetting
|
||||
threshold: 0.02 # 2%
|
||||
upperWarnAround: !type:AlarmThresholdSetting
|
||||
threshold: 0.5 # 1%
|
||||
|
||||
- type: alarmThreshold
|
||||
id: voxNitrogen
|
||||
lowerBound: !type:AlarmThresholdSetting
|
||||
threshold: 0.8 # danger below 80% nitrogen
|
||||
lowerWarnAround: !type:AlarmThresholdSetting
|
||||
threshold: 1.125 # warning below 90%
|
||||
|
||||
@@ -99,3 +99,12 @@
|
||||
state: freeze
|
||||
- type: AtmosFixMarker
|
||||
mode: 6
|
||||
|
||||
- type: entity
|
||||
parent: AtmosFixNitrogenMarker
|
||||
id: AtmosFixVoxMarker
|
||||
suffix: Vox Atmosphere
|
||||
description: "Nitrogen @ 101 kPa, 20C"
|
||||
components:
|
||||
- type: AtmosFixMarker
|
||||
mode: 7
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: AirSensorBase
|
||||
id: AirSensorVoxBase
|
||||
suffix: Vox Atmosphere
|
||||
components:
|
||||
- type: AtmosMonitor
|
||||
gasThresholdPrototypes:
|
||||
Oxygen: voxOxygen
|
||||
Nitrogen: voxNitrogen
|
||||
CarbonDioxide: stationCO2
|
||||
Plasma: stationPlasma
|
||||
Tritium: stationTritium
|
||||
WaterVapor: stationWaterVapor
|
||||
Ammonia: stationAmmonia
|
||||
NitrousOxide: stationNO
|
||||
Frezon: danger
|
||||
|
||||
- type: entity
|
||||
parent: [AirSensorVoxBase, AirSensor]
|
||||
id: AirSensorVox
|
||||
|
||||
- type: entity
|
||||
parent: [AirSensorVoxBase, GasVentPump]
|
||||
id: GasVentPumpVox
|
||||
|
||||
- type: entity
|
||||
parent: [AirSensorVoxBase, GasVentScrubber]
|
||||
id: GasVentScrubberVox
|
||||
components:
|
||||
- type: GasVentScrubber
|
||||
wideNet: true # Air alarm with auto mode overrides filters with hardcoded defaults so default to widenet
|
||||
filterGases:
|
||||
- Oxygen # filter out oxygen as well as regular harmful gases
|
||||
- CarbonDioxide
|
||||
- Plasma
|
||||
- Tritium
|
||||
- WaterVapor
|
||||
- Ammonia
|
||||
- NitrousOxide
|
||||
- Frezon
|
||||
|
||||
# use this to prevent overriding filters with hardcoded defaults
|
||||
- type: entity
|
||||
parent: AirAlarm
|
||||
id: AirAlarmVox
|
||||
suffix: Vox Atmosphere, auto mode disabled
|
||||
components:
|
||||
- type: AirAlarm
|
||||
autoMode: false
|
||||
Reference in New Issue
Block a user