mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
truly evil
This commit is contained in:
BIN
auxmos.dll
BIN
auxmos.dll
Binary file not shown.
BIN
auxmos.pdb
BIN
auxmos.pdb
Binary file not shown.
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user