diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm index 61d7a48d5f..d7d2408081 100644 --- a/code/ATMOSPHERICS/datum_pipeline.dm +++ b/code/ATMOSPHERICS/datum_pipeline.dm @@ -1,3 +1,5 @@ +#define STEFAN_BOLTZMANN_CONSTANT 0.0000000567 + datum/pipeline var/datum/gas_mixture/air @@ -39,7 +41,7 @@ datum/pipeline member.air_temporary.oxygen = air.oxygen*member.volume/air.volume member.air_temporary.nitrogen = air.nitrogen*member.volume/air.volume - member.air_temporary.phoron = air.phoron*member.volume/air.volume + member.air_temporary.toxins = air.toxins*member.volume/air.volume member.air_temporary.carbon_dioxide = air.carbon_dioxide*member.volume/air.volume member.air_temporary.temperature = air.temperature @@ -209,5 +211,12 @@ datum/pipeline (partial_heat_capacity*target.heat_capacity/(partial_heat_capacity+target.heat_capacity)) air.temperature -= heat/total_heat_capacity + if(network) + network.update = 1 + + proc/radiate_heat(surface, thermal_conductivity) + var/total_heat_capacity = air.heat_capacity() + var/heat = STEFAN_BOLTZMANN_CONSTANT * surface * air.temperature ** 4 * thermal_conductivity + air.temperature = max(0, air.temperature - heat / total_heat_capacity) if(network) network.update = 1 \ No newline at end of file diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm index 3fe69c855d..a8e7e06bad 100644 --- a/code/ATMOSPHERICS/he_pipes.dm +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -4,6 +4,7 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging icon_state = "intact" level = 2 var/initialize_directions_he + var/surface = 2 minimum_temperature_difference = 20 thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT @@ -49,12 +50,11 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging else var/datum/gas_mixture/environment = loc.return_air() environment_temperature = environment.temperature + var/datum/gas_mixture/pipe_air = return_air() + if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) + parent.temperature_interact(loc, volume, thermal_conductivity) else - environment_temperature = loc:temperature - var/datum/gas_mixture/pipe_air = return_air() - if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) - parent.temperature_interact(loc, volume, thermal_conductivity) - + parent.radiate_heat(surface, 1) obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction