diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm index b53d722458..64b5490472 100644 --- a/code/ATMOSPHERICS/datum_pipeline.dm +++ b/code/ATMOSPHERICS/datum_pipeline.dm @@ -161,7 +161,16 @@ if(istype(target, /turf/simulated)) var/turf/simulated/modeled_location = target + + if(modeled_location.special_temperature)//First do special interactions then the usuall stuff + var/delta_temp = modeled_location.special_temperature - air.temperature//2200C - 20C = 2180K + //assuming aluminium with thermal conductivity 235 W * K / m, Copper (400), Silver (430), steel (50), gold (320) + var/heat_gain = 23500 * 100 * delta_temp + air.add_thermal_energy(heat_gain) + if(network) + network.update = 1 + if(modeled_location.blocks_air) if((modeled_location.heat_capacity>0) && (partial_heat_capacity>0)) diff --git a/code/ATMOSPHERICS/pipes/he_pipes.dm b/code/ATMOSPHERICS/pipes/he_pipes.dm index 89ecf1e2bb..11f826ae05 100644 --- a/code/ATMOSPHERICS/pipes/he_pipes.dm +++ b/code/ATMOSPHERICS/pipes/he_pipes.dm @@ -98,7 +98,8 @@ else var/datum/gas_mixture/environment = loc.return_air() environment_temperature = environment.temperature - if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) + var/turf/simulated/loc_as_turf = loc + if((abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) || (loc_as_turf.special_temperature)) parent.temperature_interact(loc, volume, thermal_conductivity) else if(istype(loc, /turf/space/)) parent.radiate_heat_to_space(surface, 1) diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 4b9ffbfed8..a220d5a7a4 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -16,6 +16,7 @@ var/can_start_dirty = TRUE // If false, cannot start dirty roundstart var/dirty_prob = 2 // Chance of being dirty roundstart var/dirt = 0 + var/special_temperature //Used for turf HE-Pipe interaction // This is not great. /turf/simulated/proc/wet_floor(var/wet_val = 1) diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index e986e085a5..34b5a6443d 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -102,6 +102,7 @@ edge_blending_priority = -2 movement_cost = 8 depth = 2 + special_temperature = T0C - 5.5 //as cool as the atmosphere outside, if someone asks, its the phoron solved in the water that stops the freezing /turf/simulated/floor/water/pool name = "pool"