mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 03:57:48 +01:00
Methane Atmogas (#18363)
* initial port * atmolast * tank icons * defines for gas names * oop * icons * methane condensing * tank_vr merge * old icons too * tank and safe toxin levels stuff * doop * gas condensing toxins * choking methane * tank sprites for worn on mob * atmos tank sign * SM monitor * cleanup * copypasta cleanup * fixed gas sensor data * proper sensor * biome issue * standardize these * Update life.dm * Update life.dm --------- Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user