From: deltanedas <@deltanedas:kde.org> Date: Thu, 22 Aug 2024 15:38:21 +0000 (+0100) Subject: Add Vox atmosphere marker, vents, and air alarms X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=608a179626aec4bbebe7d708e6d6305c32df22c0;p=space-station-14.git Add Vox atmosphere marker, vents, and air alarms --- diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs index 5a41a7567b..b790493c44 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs @@ -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)) diff --git a/Resources/Prototypes/Atmospherics/thresholds.yml b/Resources/Prototypes/Atmospherics/thresholds.yml index 5d8eebd522..260fadbe71 100644 --- a/Resources/Prototypes/Atmospherics/thresholds.yml +++ b/Resources/Prototypes/Atmospherics/thresholds.yml @@ -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% diff --git a/Resources/Prototypes/Entities/Markers/atmos_blocker.yml b/Resources/Prototypes/Entities/Markers/atmos_blocker.yml index a5e91e6e53..011e49696e 100644 --- a/Resources/Prototypes/Entities/Markers/atmos_blocker.yml +++ b/Resources/Prototypes/Entities/Markers/atmos_blocker.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Structures/Specific/Atmospherics/vox.yml b/Resources/Prototypes/Entities/Structures/Specific/Atmospherics/vox.yml new file mode 100644 index 0000000000..a13d376042 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Specific/Atmospherics/vox.yml @@ -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