Space transitions now automatically set up as turfs change

This commit is contained in:
Crazylemon64
2016-08-06 18:56:58 -07:00
parent bd0028aff1
commit f307ad7d30
3 changed files with 55 additions and 22 deletions
+39 -20
View File
@@ -28,28 +28,47 @@
var/timer = start_watch()
log_debug("Starting to build space destination arrays for z level '[zpos]'...")
for(var/turf/space/S in get_turfs())
// Bottom border
if(S.y <= TRANSITIONEDGE)
transit_south |= S
continue
// Top border
if(S.y >= (world.maxy - TRANSITIONEDGE - 1))
transit_north |= S
continue
// Left border
if(S.x <= TRANSITIONEDGE)
transit_west |= S
continue
// Right border
if(S.x >= (world.maxx - TRANSITIONEDGE - 1))
transit_east |= S
continue
add_to_transit(S)
log_debug("Building space destination arrays complete, took [stop_watch(timer)]s.")
/datum/space_level/proc/add_to_transit(turf/space/S)
if(S.y <= TRANSITIONEDGE)
transit_south |= S
return
// Top border
if(S.y >= (world.maxy - TRANSITIONEDGE - 1))
transit_north |= S
return
// Left border
if(S.x <= TRANSITIONEDGE)
transit_west |= S
return
// Right border
if(S.x >= (world.maxx - TRANSITIONEDGE - 1))
transit_east |= S
/datum/space_level/proc/remove_from_transit(turf/space/S)
if(S.y <= TRANSITIONEDGE)
transit_south -= S
return
// Top border
if(S.y >= (world.maxy - TRANSITIONEDGE - 1))
transit_north -= S
return
// Left border
if(S.x <= TRANSITIONEDGE)
transit_west -= S
return
// Right border
if(S.x >= (world.maxx - TRANSITIONEDGE - 1))
transit_east -= S
/datum/space_level/proc/get_turfs()
return block(locate(1, 1, zpos), locate(world.maxx, world.maxy, zpos))