mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2026-08-25 05:36:47 +01:00
Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13
This commit is contained in:
@@ -115,10 +115,10 @@
|
||||
source_air = air_contents
|
||||
|
||||
// Move gas from one place to another
|
||||
move_gas(source_air, target_air)
|
||||
move_gas(source_air, target_air, (istype(target, /obj/item/tank) ? target : null))
|
||||
air_update_turf()
|
||||
|
||||
/obj/item/integrated_circuit/atmospherics/pump/proc/move_gas(datum/gas_mixture/source_air, datum/gas_mixture/target_air)
|
||||
/obj/item/integrated_circuit/atmospherics/pump/proc/move_gas(datum/gas_mixture/source_air, datum/gas_mixture/target_air, obj/item/tank/snowflake)
|
||||
|
||||
// No moles = nothing to pump
|
||||
if(source_air.total_moles() <= 0 || target_air.return_pressure() >= PUMP_MAX_PRESSURE)
|
||||
@@ -132,7 +132,10 @@
|
||||
if(pressure_delta > 0.1)
|
||||
var/transfer_moles = (pressure_delta*target_air.return_volume()/(source_air.return_temperature() * R_IDEAL_GAS_EQUATION))*PUMP_EFFICIENCY
|
||||
var/datum/gas_mixture/removed = source_air.remove(transfer_moles)
|
||||
target_air.merge(removed)
|
||||
if(istype(snowflake)) //Snowflake check for tanks specifically, because tank ruptures are handled in a very snowflakey way that expects all tank interactions to be handled via the tank's procs
|
||||
snowflake.assume_air(removed)
|
||||
else
|
||||
target_air.merge(removed)
|
||||
|
||||
|
||||
// - volume pump - // **Works**
|
||||
@@ -165,7 +168,7 @@
|
||||
direction = SOURCE_TO_TARGET
|
||||
target_pressure = min(PUMP_MAX_VOLUME,abs(new_amount))
|
||||
|
||||
/obj/item/integrated_circuit/atmospherics/pump/volume/move_gas(datum/gas_mixture/source_air, datum/gas_mixture/target_air)
|
||||
/obj/item/integrated_circuit/atmospherics/pump/volume/move_gas(datum/gas_mixture/source_air, datum/gas_mixture/target_air, obj/item/tank/snowflake)
|
||||
// No moles = nothing to pump
|
||||
if(source_air.total_moles() <= 0)
|
||||
return
|
||||
@@ -182,7 +185,10 @@
|
||||
|
||||
var/datum/gas_mixture/removed = source_air.remove_ratio(transfer_ratio * PUMP_EFFICIENCY)
|
||||
|
||||
target_air.merge(removed)
|
||||
if(istype(snowflake))
|
||||
snowflake.assume_air(removed)
|
||||
else
|
||||
target_air.merge(removed)
|
||||
|
||||
|
||||
// - gas vent - // **works**
|
||||
@@ -379,9 +385,20 @@ obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir()
|
||||
removed.set_moles(filtered_gas, 0)
|
||||
|
||||
//Check if the pressure is high enough to put stuff in filtered, or else just put it back in the source
|
||||
var/datum/gas_mixture/target = (filtered_air.return_pressure() < target_pressure ? filtered_air : source_air)
|
||||
target.merge(filtered_out)
|
||||
contaminated_air.merge(removed)
|
||||
if(filtered_air.return_pressure() < target_pressure)
|
||||
if(istype(filtered, /obj/item/tank))
|
||||
filtered.assume_air(filtered_out)
|
||||
else
|
||||
filtered_air.merge(filtered_out)
|
||||
else
|
||||
if(istype(source, /obj/item/tank))
|
||||
source.assume_air(filtered_out)
|
||||
else
|
||||
source_air.merge(filtered_out)
|
||||
if(istype(contaminants, /obj/item/tank))
|
||||
contaminants.assume_air(removed)
|
||||
else
|
||||
contaminated_air.merge(removed)
|
||||
|
||||
|
||||
/obj/item/integrated_circuit/atmospherics/pump/filter/Initialize()
|
||||
@@ -449,10 +466,18 @@ obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir()
|
||||
if(transfer_moles <= 0)
|
||||
return
|
||||
|
||||
var/snowflakecheck = istype(gas_output, /obj/item/tank)
|
||||
|
||||
var/datum/gas_mixture/mix = source_1_gases.remove(transfer_moles * gas_percentage)
|
||||
output_gases.merge(mix)
|
||||
if(snowflakecheck)
|
||||
gas_output.assume_air(mix)
|
||||
else
|
||||
output_gases.merge(mix)
|
||||
mix = source_2_gases.remove(transfer_moles * (1-gas_percentage))
|
||||
output_gases.merge(mix)
|
||||
if(snowflakecheck)
|
||||
gas_output.assume_air(mix)
|
||||
else
|
||||
output_gases.merge(mix)
|
||||
|
||||
|
||||
// - integrated tank - // **works**
|
||||
|
||||
Reference in New Issue
Block a user