diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 4c386f44ec4..b0470df9330 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -18,6 +18,7 @@ var/scrub_CO2 = 1 var/scrub_Toxins = 0 var/scrub_N2O = 0 + var/scrub_O2 = 0 var/volume_rate = 120 var/panic = 0 //is this scrubber panicked? @@ -70,8 +71,9 @@ "scrubbing" = scrubbing, "panic" = panic, "filter_co2" = scrub_CO2, - "filter_toxins" = scrub_Toxins, + "filter_tox" = scrub_Toxins, "filter_n2o" = scrub_N2O, + "filter_o2" = scrub_O2, "sigtype" = "status" ) if(!initial_loc.air_scrub_names[id_tag]) @@ -121,6 +123,9 @@ if(scrub_CO2) filtered_out.carbon_dioxide = removed.carbon_dioxide removed.carbon_dioxide = 0 + if(scrub_O2) + filtered_out.oxygen = removed.oxygen + removed.oxygen = 0 if(removed.trace_gases.len>0) for(var/datum/gas/trace_gas in removed.trace_gases) @@ -217,6 +222,11 @@ if(signal.data["toggle_n2o_scrub"]) scrub_N2O = !scrub_N2O + if(signal.data["o2_scrub"] != null) + scrub_O2 = text2num(signal.data["o2_scrub"]) + if(signal.data["toggle_o2_scrub"]) + scrub_O2 = !scrub_O2 + if(signal.data["init"] != null) name = signal.data["init"] return diff --git a/code/WorkInProgress/Mini/atmos_control.dm b/code/WorkInProgress/Mini/atmos_control.dm index adf81eefb87..c2ad6330ed6 100644 --- a/code/WorkInProgress/Mini/atmos_control.dm +++ b/code/WorkInProgress/Mini/atmos_control.dm @@ -188,6 +188,11 @@ //copypasta from alarm code, changed to work with this without derping hard //---START COPYPASTA---- +/obj/machinery/computer/atmoscontrol/proc/fmtScrubberGasStatus(var/id_tag,var/code,var/list/data) + var/label=replacetext(uppertext(code),"2","2") + if(code=="tox") + label="Plasma" + return "[label]" /obj/machinery/computer/atmoscontrol/proc/return_controls() var/output = ""//"[alarm_zone] Air [name]
" @@ -279,12 +284,10 @@ siphoning if(data["scrubbing"]) sensor_data += {" Filtering: -Carbon Dioxide -[data["filter_co2"]?"on":"off"]; -Toxins -[data["filter_toxins"]?"on":"off"]; -Nitrous Oxide -[data["filter_n2o"]?"on":"off"] +[fmtScrubberGasStatus(id_tag,"co2",data)], +[fmtScrubberGasStatus(id_tag,"tox",data)], +[fmtScrubberGasStatus(id_tag,"n2o",data)], +[fmtScrubberGasStatus(id_tag,"o2",data)]
"} sensor_data += {" @@ -315,6 +318,17 @@ Nitrous Oxide if (AALARM_SCREEN_SENSORS) output += {" Main menu
+

Sensor presets:
(Note, this only sets sensors, air supplied to vents must still be changed.) Alarm thresholds:
Partial pressure for gases "} @@ -790,6 +829,12 @@ Toxins: [plasma_percent]%
return dat +/obj/machinery/alarm/proc/fmtScrubberGasStatus(var/id_tag,var/code,var/list/data) + var/label=replacetext(uppertext(code),"2","2") + if(code=="tox") + label="Plasma" + return "[label]" + /obj/machinery/alarm/proc/return_controls() var/output = ""//"[alarm_zone] Air [name]
" @@ -876,12 +921,10 @@ siphoning if(data["scrubbing"]) sensor_data += {" Filtering: -Carbon Dioxide -[data["filter_co2"]?"on":"off"]; -Toxins -[data["filter_toxins"]?"on":"off"]; -Nitrous Oxide -[data["filter_n2o"]?"on":"off"] +[fmtScrubberGasStatus(id_tag,"co2",data)], +[fmtScrubberGasStatus(id_tag,"tox",data)], +[fmtScrubberGasStatus(id_tag,"n2o",data)], +[fmtScrubberGasStatus(id_tag,"o2",data)]
"} sensor_data += {" @@ -895,7 +938,8 @@ Nitrous Oxide if (AALARM_SCREEN_MODE) output += "Main menu
Air machinery mode for the area: