Adds superconductivity blocking to fulltile plasma windows. (#24901)

* Adds superconductivity blocking to fulltile plasma windows.

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

---------

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
Charlie Nolan
2024-04-03 13:58:54 +00:00
committed by GitHub
co-authored by Burzah
parent 9ed1785ddf
commit 629522d2c7
4 changed files with 14 additions and 8 deletions
+6
View File
@@ -680,6 +680,9 @@
edge_overlay_file = 'icons/obj/smooth_structures/windows/window_edges.dmi'
env_smash_level = ENVIRONMENT_SMASH_WALLS // these windows are a fair bit tougher
/obj/structure/window/full/plasmabasic/BlockSuperconductivity()
return TRUE
/obj/structure/window/full/plasmareinforced
name = "reinforced plasma window"
desc = "A plasma-glass alloy window, with rods supporting it. It looks hopelessly tough to break. It also looks completely fireproof, considering how basic plasma windows are insanely fireproof."
@@ -701,6 +704,9 @@
/obj/structure/window/full/plasmareinforced/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
return
/obj/structure/window/full/plasmareinforced/BlockSuperconductivity()
return TRUE
/obj/structure/window/full/reinforced
name = "reinforced window"
desc = "It looks rather strong. Might take a few good hits to shatter it."
+1 -1
View File
@@ -56,7 +56,7 @@
/// The neighbors of the turf.
var/list/atmos_adjacent_turfs = list()
/// makes turfs less picky about where they transfer gas. Largely just used in the SM
var/atmos_supeconductivity = 0
var/atmos_superconductivity = 0
/*
Lighting Vars
@@ -9,9 +9,9 @@
R = 1
if(O.BlockSuperconductivity()) //the direction and open/closed are already checked on CanAtmosPass() so there are no arguments
var/D = get_dir(src, T)
atmos_supeconductivity |= D
atmos_superconductivity |= D
D = get_dir(T, src)
T.atmos_supeconductivity |= D
T.atmos_superconductivity |= D
return 0 //no need to keep going, we got all we asked
for(var/obj/O in T.contents)
@@ -19,15 +19,15 @@
R = 1
if(O.BlockSuperconductivity())
var/D = get_dir(src, T)
atmos_supeconductivity |= D
atmos_superconductivity |= D
D = get_dir(T, src)
T.atmos_supeconductivity |= D
T.atmos_superconductivity |= D
return 0
var/D = get_dir(src, T)
atmos_supeconductivity &= ~D
atmos_superconductivity &= ~D
D = get_dir(T, src)
T.atmos_supeconductivity &= ~D
T.atmos_superconductivity &= ~D
if(!R)
return 1
@@ -404,7 +404,7 @@
//Does particate in air exchange so only consider directions not considered during process_cell()
for(var/direction in GLOB.cardinal)
var/turf/T = get_step(src, direction)
if(!(T in atmos_adjacent_turfs) && !(atmos_supeconductivity & direction))
if(!(T in atmos_adjacent_turfs) && !(atmos_superconductivity & direction))
conductivity_directions += direction
if(conductivity_directions > 0)