[NO GBP] Lazy Template Cordoning | Double Runtime Fix (#72709)

## About The Pull Request

Adds automatic cordoning to block reservations.
Also fixes an issue where ChangeTurf would cause SSicon_smoothing to
throw runtimes by calling QUEUE_SMOOTH regardless of initialization
completion

## Why It's Good For The Game

## Changelog

---------

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
This commit is contained in:
Zephyr
2023-01-29 18:48:38 -08:00
committed by GitHub
co-authored by LemonInTheDark
parent 5cb89104da
commit 5dbaa25f91
26 changed files with 150 additions and 75 deletions
+2 -4
View File
@@ -157,11 +157,8 @@
if((T.y+height) - 1 > world.maxy)
return
var/list/border = block(locate(max(T.x-1, 1), max(T.y-1, 1), T.z),
locate(min(T.x+width+1, world.maxx), min(T.y+height+1, world.maxy), T.z))
// iterate over turfs in the border and clear them from active atmos processing
for(var/turf/border_turf as anything in border)
for(var/turf/border_turf as anything in CORNER_BLOCK_OFFSET(T, width + 2, height + 2, -1, -1))
SSair.remove_from_active(border_turf)
for(var/turf/sub_turf as anything in border_turf.atmos_adjacent_turfs)
sub_turf.atmos_adjacent_turfs?.Remove(border_turf)
@@ -179,6 +176,7 @@
parsed.turf_blacklist = turf_blacklist
if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=should_place_on_top))
return
var/list/bounds = parsed.bounds
if(!bounds)
return