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.
|
// Whether equalization should be enabled at all.
|
||||||
var/equalize_enabled = TRUE
|
var/equalize_enabled = TRUE
|
||||||
// Whether turf-to-turf heat exchanging should be enabled.
|
// 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.
|
// Max number of times process_turfs will share in a tick.
|
||||||
var/share_max_steps = 3
|
var/share_max_steps = 3
|
||||||
// Excited group processing will try to equalize groups with total pressure difference less than this amount.
|
// 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)
|
GLOB.cameranet.updateVisibility(src, 0)
|
||||||
|
|
||||||
/obj/machinery/door/BlockThermalConductivity() // All non-glass airlocks block heat, this is intended.
|
/obj/machinery/door/BlockThermalConductivity() // All non-glass airlocks block heat, this is intended.
|
||||||
if(opacity || heat_proof)
|
if(heat_proof && density)
|
||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
|
|||||||
@@ -402,6 +402,12 @@
|
|||||||
else
|
else
|
||||||
return TRUE
|
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
|
/obj/machinery/door/firedoor/heavy
|
||||||
name = "heavy firelock"
|
name = "heavy firelock"
|
||||||
icon = 'icons/obj/doors/doorfire.dmi'
|
icon = 'icons/obj/doors/doorfire.dmi'
|
||||||
|
|||||||
@@ -511,6 +511,11 @@
|
|||||||
if (fulltile)
|
if (fulltile)
|
||||||
. += new /obj/item/shard/plasma(location)
|
. += 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
|
/obj/structure/window/plasma/spawner/east
|
||||||
dir = EAST
|
dir = EAST
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
if(T.active_hotspot)
|
if(T.active_hotspot)
|
||||||
burning = TRUE
|
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())
|
for(var/id in env.get_gases())
|
||||||
var/moles = env.get_moles(id)
|
var/moles = env.get_moles(id)
|
||||||
if (abs(moles) >= 0.00001)
|
if (abs(moles) >= 0.00001)
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
/turf/open/CanAtmosPass(turf/T, vertical = FALSE)
|
/turf/open/CanAtmosPass(turf/T, vertical = FALSE)
|
||||||
var/dir = vertical? get_dir_multiz(src, T) : get_dir(src, T)
|
var/dir = vertical? get_dir_multiz(src, T) : get_dir(src, T)
|
||||||
var/opp = REVERSE_DIR(dir)
|
|
||||||
. = TRUE
|
. = TRUE
|
||||||
if(vertical && !(zAirOut(dir, T) && T.zAirIn(dir, src)))
|
if(vertical && !(zAirOut(dir, T) && T.zAirIn(dir, src)))
|
||||||
. = FALSE
|
. = FALSE
|
||||||
@@ -30,13 +29,23 @@
|
|||||||
var/turf/other = (O.loc == src ? T : src)
|
var/turf/other = (O.loc == src ? T : src)
|
||||||
if(!(vertical? (CANVERTICALATMOSPASS(O, other)) : (CANATMOSPASS(O, other))))
|
if(!(vertical? (CANVERTICALATMOSPASS(O, other)) : (CANATMOSPASS(O, other))))
|
||||||
. = FALSE
|
. = 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
|
conductivity_blocked_directions |= dir
|
||||||
T.conductivity_blocked_directions |= opp
|
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
|
return FALSE
|
||||||
|
|
||||||
/turf/proc/ImmediateCalculateAdjacentTurfs()
|
/turf/proc/ImmediateCalculateAdjacentTurfs()
|
||||||
@@ -55,6 +64,8 @@
|
|||||||
if(locate(/obj/machinery/door/firedoor) in T)
|
if(locate(/obj/machinery/door/firedoor) in T)
|
||||||
other_contains_firelock |= 2
|
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))) )
|
if(isopenturf(T) && !(blocks_air || T.blocks_air) && ((direction & (UP|DOWN))? (canvpass && CANVERTICALATMOSPASS(T, src)) : (canpass && CANATMOSPASS(T, src))) )
|
||||||
LAZYINITLIST(atmos_adjacent_turfs)
|
LAZYINITLIST(atmos_adjacent_turfs)
|
||||||
LAZYINITLIST(T.atmos_adjacent_turfs)
|
LAZYINITLIST(T.atmos_adjacent_turfs)
|
||||||
@@ -66,6 +77,7 @@
|
|||||||
if (T.atmos_adjacent_turfs)
|
if (T.atmos_adjacent_turfs)
|
||||||
T.atmos_adjacent_turfs -= src
|
T.atmos_adjacent_turfs -= src
|
||||||
UNSETEMPTY(T.atmos_adjacent_turfs)
|
UNSETEMPTY(T.atmos_adjacent_turfs)
|
||||||
|
|
||||||
T.__update_auxtools_turf_adjacency_info(isspaceturf(T.get_z_base_turf()))
|
T.__update_auxtools_turf_adjacency_info(isspaceturf(T.get_z_base_turf()))
|
||||||
UNSETEMPTY(atmos_adjacent_turfs)
|
UNSETEMPTY(atmos_adjacent_turfs)
|
||||||
src.atmos_adjacent_turfs = 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
|
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()
|
/turf/open/Initialize()
|
||||||
if(!blocks_air)
|
if(!blocks_air)
|
||||||
air = new(2500,src)
|
air = new(2500,src)
|
||||||
|
|||||||
Reference in New Issue
Block a user