[MIRROR] Builds logic that manages turfs contained inside an area [MDB IGNORE] (#17379)

* Builds logic that manages turfs contained inside an area

* Mirror Conflict

* Modular!

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
This commit is contained in:
SkyratBot
2022-11-16 20:42:22 +01:00
committed by GitHub
parent bd4e73411d
commit 24eb8217c0
45 changed files with 299 additions and 143 deletions
+2 -2
View File
@@ -49,7 +49,7 @@
/area/proc/remove_base_lighting()
var/list/z_offsets = SSmapping.z_level_to_plane_offset
for(var/turf/T in src)
for(var/turf/T as anything in get_contained_turfs())
if(z_offsets[T.z])
T.cut_overlay(lighting_effects[z_offsets[T.z] + 1])
cut_overlay(lighting_effects[1])
@@ -69,7 +69,7 @@
lighting_effects += lighting_effect
add_overlay(lighting_effects[1])
var/list/z_offsets = SSmapping.z_level_to_plane_offset
for(var/turf/T in src)
for(var/turf/T as anything in get_contained_turfs())
T.luminosity = 1
// This outside loop is EXTREMELY hot because it's run by space tiles. Don't want no part in that
// We will only add overlays to turfs not on the first z layer, because that's a significantly lesser portion
+2 -3
View File
@@ -1,11 +1,10 @@
/proc/create_all_lighting_objects()
for(var/area/A in world)
for(var/area/A as anything in GLOB.areas)
if(!A.static_lighting)
continue
// I hate this so much dude. why do areas not track their turfs lummyyyyyyy
for(var/turf/T in A)
for(var/turf/T as anything in A.get_contained_turfs())
if(T.always_lit)
continue
new/datum/lighting_object(T)