Allows atmos helpers to be used with portable_atmos

This commit is contained in:
mwerezak
2014-08-04 16:53:13 -04:00
parent c9f16ec665
commit b7c13bc4b6
11 changed files with 62 additions and 26 deletions
@@ -118,7 +118,7 @@
var/air_temperature = environment.temperature? environment.temperature : air1.temperature
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
power_draw = pump_gas(air1, environment, transfer_moles, active_power_usage)
power_draw = pump_gas(src, air1, environment, transfer_moles, active_power_usage)
if(power_draw >= 0 && network1)
network1.update = 1
@@ -131,7 +131,7 @@
//limit flow rate from turfs
transfer_moles = min(transfer_moles, environment.total_moles*MAX_SIPHON_FLOWRATE/environment.volume) //group_multiplier gets divided out here
power_draw = pump_gas(environment, air2, transfer_moles, active_power_usage)
power_draw = pump_gas(src, environment, air2, transfer_moles, active_power_usage)
if(power_draw >= 0 && network2)
network2.update = 1
@@ -82,7 +82,7 @@
transfer_moles = min(transfer_moles, pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION))
//pump_gas() will return a negative number if no flow occurred
var/flow = pump_gas(air1, air2, transfer_moles, available_power=0) //available_power=0 means we only move gas if it would flow naturally
var/flow = pump_gas(src, air1, air2, transfer_moles, available_power=0) //available_power=0 means we only move gas if it would flow naturally
if (flow >= 0)
if(network1)
@@ -82,7 +82,7 @@ Thus, the two variables affect pump operation are set in New():
//get the number of moles that would have to be transfered to bring sink to the target pressure
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
power_draw = pump_gas(air1, air2, transfer_moles, active_power_usage)
power_draw = pump_gas(src, air1, air2, transfer_moles, active_power_usage)
if (power_draw < 0)
//update_use_power(0)
@@ -75,7 +75,7 @@
var/power_draw = -1
if (transfer_moles > MINUMUM_MOLES_TO_FILTER)
power_draw = filter_gas_multi(filtering_outputs, input_air, output_air, transfer_moles, active_power_usage)
power_draw = filter_gas_multi(src, filtering_outputs, input_air, output_air, transfer_moles, active_power_usage)
if (power_draw < 0)
//update_use_power(0)
@@ -114,7 +114,7 @@
var/power_draw = -1
if (transfer_moles > MINUMUM_MOLES_TO_FILTER)
power_draw = mix_gas(mixing_inputs, output, transfer_moles, active_power_usage)
power_draw = mix_gas(src, mixing_inputs, output, transfer_moles, active_power_usage)
if (power_draw < 0)
//update_use_power(0)
@@ -96,7 +96,7 @@
var/power_draw = -1
if (transfer_moles > MINUMUM_MOLES_TO_FILTER)
power_draw = filter_gas(filtered_out, air1, air2, air3, transfer_moles, active_power_usage)
power_draw = filter_gas(src, filtered_out, air1, air2, air3, transfer_moles, active_power_usage)
if(network2)
network2.update = 1
@@ -86,7 +86,7 @@
var/power_draw = -1
if (transfer_moles > MINUMUM_MOLES_TO_FILTER)
power_draw = mix_gas(mixing_inputs, air3, transfer_moles, active_power_usage)
power_draw = mix_gas(src, mixing_inputs, air3, transfer_moles, active_power_usage)
if(network1 && mixing_inputs[air1])
network1.update = 1
@@ -87,7 +87,7 @@
injecting = 1
if(air_contents.temperature > 0)
var/power_used = pump_gas(air_contents, environment, air_contents.total_moles, inject_power)
var/power_used = pump_gas(src, air_contents, environment, air_contents.total_moles, inject_power)
use_power(power_used)
if(network)
@@ -153,14 +153,16 @@
//Figure out the target pressure difference
var/pressure_delta = get_pressure_delta(environment)
//src.visible_message("DEBUG >>> [src]: pressure_delta = [pressure_delta]")
if((environment.temperature || air_contents.temperature) && pressure_delta > 0.5)
if(pump_direction) //internal -> external
var/output_volume = environment.volume * environment.group_multiplier
var/air_temperature = environment.temperature? environment.temperature : air_contents.temperature
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
//src.visible_message("DEBUG >>> [src]: output_volume = [output_volume]L; air_temperature = [air_temperature]K; transfer_moles = [transfer_moles] mol")
power_draw = pump_gas(air_contents, environment, transfer_moles, active_power_usage)
power_draw = pump_gas(src, air_contents, environment, transfer_moles, active_power_usage)
else //external -> internal
var/output_volume = air_contents.volume + (network? network.volume : 0)
var/air_temperature = air_contents.temperature? air_contents.temperature : environment.temperature
@@ -169,7 +171,7 @@
//limit flow rate from turfs
transfer_moles = min(transfer_moles, environment.total_moles*MAX_SIPHON_FLOWRATE/environment.volume) //group_multiplier gets divided out here
power_draw = pump_gas(environment, air_contents, transfer_moles, active_power_usage)
power_draw = pump_gas(src, environment, air_contents, transfer_moles, active_power_usage)
if (power_draw < 0)
last_power_draw = 0
@@ -364,6 +366,8 @@
..()
if (get_dist(usr, src) <= 1)
usr << "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W"
else
usr << "You are too far away to read the gauge."
if(welded)
usr << "It seems welded shut."
@@ -131,12 +131,12 @@
//limit flow rate from turfs
var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SCRUBBER_FLOWRATE/environment.volume) //group_multiplier gets divided out here
power_draw = scrub_gas(scrubbing_gas, environment, air_contents, transfer_moles, active_power_usage)
power_draw = scrub_gas(src, scrubbing_gas, environment, air_contents, transfer_moles, active_power_usage)
else //Just siphon all air
//limit flow rate from turfs
var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SIPHON_FLOWRATE/environment.volume) //group_multiplier gets divided out here
power_draw = pump_gas(environment, air_contents, transfer_moles, active_power_usage)
power_draw = pump_gas(src, environment, air_contents, transfer_moles, active_power_usage)
if (power_draw < 0)
//update_use_power(0)