[MIRROR] Methane Atmogas (#11574)

Co-authored-by: Will <7099514+Willburd@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-09-06 13:38:10 -04:00
committed by GitHub
co-authored by Will Cameron Lennox
parent e441a92a07
commit 9a5ca42e91
55 changed files with 428 additions and 197 deletions
@@ -810,13 +810,14 @@
complexity = 9
inputs = list()
outputs = list(
"pressure" = IC_PINTYPE_NUMBER,
"temperature" = IC_PINTYPE_NUMBER,
GAS_O2 = IC_PINTYPE_NUMBER,
GAS_N2 = IC_PINTYPE_NUMBER,
GAS_CO2 = IC_PINTYPE_NUMBER,
GAS_PHORON = IC_PINTYPE_NUMBER,
"other" = IC_PINTYPE_NUMBER
"pressure" = IC_PINTYPE_NUMBER,
"temperature" = IC_PINTYPE_NUMBER,
GAS_O2 = IC_PINTYPE_NUMBER,
GAS_N2 = IC_PINTYPE_NUMBER,
GAS_CO2 = IC_PINTYPE_NUMBER,
GAS_CH4 = IC_PINTYPE_NUMBER,
GAS_PHORON = IC_PINTYPE_NUMBER,
"other" = IC_PINTYPE_NUMBER
)
activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_RESEARCH
@@ -836,15 +837,17 @@
var/o2_level = environment.gas[GAS_O2]/total_moles
var/n2_level = environment.gas[GAS_N2]/total_moles
var/co2_level = environment.gas[GAS_CO2]/total_moles
var/methane_level = environment.gas[GAS_CH4]/total_moles
var/phoron_level = environment.gas[GAS_PHORON]/total_moles
var/unknown_level = 1-(o2_level+n2_level+co2_level+phoron_level)
var/unknown_level = 1-(o2_level+n2_level+co2_level+phoron_level+methane_level)
set_pin_data(IC_OUTPUT, 1, pressure)
set_pin_data(IC_OUTPUT, 2, round(environment.temperature-T0C,0.1))
set_pin_data(IC_OUTPUT, 3, round(o2_level*100,0.1))
set_pin_data(IC_OUTPUT, 4, round(n2_level*100,0.1))
set_pin_data(IC_OUTPUT, 5, round(co2_level*100,0.1))
set_pin_data(IC_OUTPUT, 6, round(phoron_level*100,0.01))
set_pin_data(IC_OUTPUT, 7, round(unknown_level, 0.01))
set_pin_data(IC_OUTPUT, 7, round(methane_level*100,0.01))
set_pin_data(IC_OUTPUT, 8, round(unknown_level, 0.01))
else
set_pin_data(IC_OUTPUT, 1, 0)
set_pin_data(IC_OUTPUT, 2, -273.15)
@@ -853,6 +856,7 @@
set_pin_data(IC_OUTPUT, 5, 0)
set_pin_data(IC_OUTPUT, 6, 0)
set_pin_data(IC_OUTPUT, 7, 0)
set_pin_data(IC_OUTPUT, 8, 0)
push_data()
activate_pin(2)
@@ -1034,3 +1038,33 @@
set_pin_data(IC_OUTPUT, 1, 0)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/input/methane_sensor
name = "integrated methane sensor"
desc = "A tiny methane gas sensor module similar to that found in a PDA atmosphere analyser."
icon_state = "medscan_adv"
complexity = 3
inputs = list()
outputs = list(
GAS_CH4 = IC_PINTYPE_NUMBER
)
activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3)
power_draw_per_use = 20
/obj/item/integrated_circuit/input/methane_sensor/do_work()
var/turf/T = get_turf(src)
if(!istype(T)) //Invalid input
return
var/datum/gas_mixture/environment = T.return_air()
var/total_moles = environment.total_moles
if (total_moles)
var/methane_level = environment.gas[GAS_CH4]/total_moles
set_pin_data(IC_OUTPUT, 1, round(methane_level*100, 0.1))
else
set_pin_data(IC_OUTPUT, 1, 0)
push_data()
activate_pin(2)