truly evil

This commit is contained in:
Katherine Kiefer
2022-07-16 18:57:48 +10:00
parent 18b40d4e4b
commit 136900c342
9 changed files with 34 additions and 8 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -56,7 +56,7 @@ SUBSYSTEM_DEF(air)
// Whether equalization should be enabled at all.
var/equalize_enabled = TRUE
// Whether turf-to-turf heat exchanging should be enabled.
var/heat_enabled = FALSE
var/heat_enabled = TRUE
// Max number of times process_turfs will share in a tick.
var/share_max_steps = 3
// Excited group processing will try to equalize groups with total pressure difference less than this amount.

View File

@@ -412,7 +412,7 @@
GLOB.cameranet.updateVisibility(src, 0)
/obj/machinery/door/BlockThermalConductivity() // All non-glass airlocks block heat, this is intended.
if(opacity || heat_proof)
if(heat_proof && density)
return TRUE
return FALSE

View File

@@ -402,6 +402,12 @@
else
return TRUE
/obj/machinery/door/firedoor/border_only/BlockThermalConductivity(opp_dir)
if(opp_dir == dir)
return density
else
return FALSE
/obj/machinery/door/firedoor/heavy
name = "heavy firelock"
icon = 'icons/obj/doors/doorfire.dmi'

View File

@@ -511,6 +511,11 @@
if (fulltile)
. += new /obj/item/shard/plasma(location)
/obj/structure/window/plasma/BlockThermalConductivity(opp_dir)
if(!anchored || !density)
return FALSE
return FULLTILE_WINDOW_DIR == dir || dir == opp_dir
/obj/structure/window/plasma/spawner/east
dir = EAST

View File

@@ -6,7 +6,7 @@
if(T.active_hotspot)
burning = TRUE
var/list/lines = list(span_adminnotice("[AREACOORD(target)]: [env.return_temperature()] K ([env.return_temperature() - T0C] C), [env.return_pressure()] kPa[(burning)?(", <font color='red'>burning</font>"):(null)]"))
var/list/lines = list(span_adminnotice("[AREACOORD(target)] A: [env.return_temperature()] K ([env.return_temperature() - T0C] C),T: [target.return_temperature()] K, [env.return_pressure()] kPa[(burning)?(", <font color='red'>burning</font>"):(null)]"))
for(var/id in env.get_gases())
var/moles = env.get_moles(id)
if (abs(moles) >= 0.00001)

View File

@@ -18,7 +18,6 @@
/turf/open/CanAtmosPass(turf/T, vertical = FALSE)
var/dir = vertical? get_dir_multiz(src, T) : get_dir(src, T)
var/opp = REVERSE_DIR(dir)
. = TRUE
if(vertical && !(zAirOut(dir, T) && T.zAirIn(dir, src)))
. = FALSE
@@ -30,13 +29,23 @@
var/turf/other = (O.loc == src ? T : src)
if(!(vertical? (CANVERTICALATMOSPASS(O, other)) : (CANATMOSPASS(O, other))))
. = FALSE
if(O.BlockThermalConductivity()) //the direction and open/closed are already checked on CanAtmosPass() so there are no arguments
/turf/proc/update_conductivity(turf/T)
var/dir = get_dir_multiz(src, T)
var/opp = REVERSE_DIR(dir)
//all these must be above zero for auxmos to even consider them
if(!thermal_conductivity || !heat_capacity || !T.thermal_conductivity || !T.heat_capacity)
return
for(var/obj/O in contents+T.contents)
conductivity_blocked_directions &= ~dir
T.conductivity_blocked_directions &= ~opp
if(O.BlockThermalConductivity(opp)) //the direction and open/closed are already checked on CanAtmosPass() so there are no arguments
conductivity_blocked_directions |= dir
T.conductivity_blocked_directions |= opp
if(!.)
return .
return
/atom/movable/proc/BlockThermalConductivity() // Objects that don't let heat through.
//dir of this obj to the other turf
/atom/movable/proc/BlockThermalConductivity(dir) // Objects that don't let heat through.
return FALSE
/turf/proc/ImmediateCalculateAdjacentTurfs()
@@ -54,6 +63,8 @@
var/other_contains_firelock = 1
if(locate(/obj/machinery/door/firedoor) in T)
other_contains_firelock |= 2
update_conductivity(T)
if(isopenturf(T) && !(blocks_air || T.blocks_air) && ((direction & (UP|DOWN))? (canvpass && CANVERTICALATMOSPASS(T, src)) : (canpass && CANATMOSPASS(T, src))) )
LAZYINITLIST(atmos_adjacent_turfs)
@@ -66,6 +77,7 @@
if (T.atmos_adjacent_turfs)
T.atmos_adjacent_turfs -= src
UNSETEMPTY(T.atmos_adjacent_turfs)
T.__update_auxtools_turf_adjacency_info(isspaceturf(T.get_z_base_turf()))
UNSETEMPTY(atmos_adjacent_turfs)
src.atmos_adjacent_turfs = atmos_adjacent_turfs

View File

@@ -27,6 +27,9 @@
var/list/atmos_overlay_types //gas IDs of current active gas overlays
/turf/proc/should_conduct_to_space()
return get_z_base_turf() == /turf/open/space
/turf/open/Initialize()
if(!blocks_air)
air = new(2500,src)