mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
48 lines
1.7 KiB
Plaintext
48 lines
1.7 KiB
Plaintext
/var/list/lighting_update_lights = list()
|
|
/var/list/lighting_update_overlays = list()
|
|
|
|
/area/var/lighting_use_dynamic = 1
|
|
|
|
// duplicates lots of code, but this proc needs to be as fast as possible.
|
|
/proc/create_lighting_overlays(zlevel = 0)
|
|
var/state = "light[LIGHTING_RESOLUTION]"
|
|
var/area/A
|
|
if(zlevel == 0) // populate all zlevels
|
|
for(var/turf/T in world)
|
|
if(T.dynamic_lighting)
|
|
A = T.loc
|
|
if(A.lighting_use_dynamic)
|
|
#if LIGHTING_RESOLUTION == 1
|
|
var/atom/movable/lighting_overlay/O = new(T)
|
|
O.icon_state = state
|
|
#else
|
|
for(var/i = 0; i < LIGHTING_RESOLUTION; i++)
|
|
for(var/j = 0; j < LIGHTING_RESOLUTION; j++)
|
|
var/atom/movable/lighting_overlay/O = new(T)
|
|
O.pixel_x = i * (32 / LIGHTING_RESOLUTION)
|
|
O.pixel_y = j * (32 / LIGHTING_RESOLUTION)
|
|
O.xoffset = (((2*i + 1) / (LIGHTING_RESOLUTION * 2)) - 0.5)
|
|
O.yoffset = (((2*j + 1) / (LIGHTING_RESOLUTION * 2)) - 0.5)
|
|
O.icon_state = state
|
|
#endif
|
|
else
|
|
for(var/x = 1; x <= world.maxx; x++)
|
|
for(var/y = 1; y <= world.maxy; y++)
|
|
var/turf/T = locate(x, y, zlevel)
|
|
if(T.dynamic_lighting)
|
|
A = T.loc
|
|
if(A.lighting_use_dynamic)
|
|
#if LIGHTING_RESOLUTION == 1
|
|
var/atom/movable/lighting_overlay/O = new(T)
|
|
O.icon_state = state
|
|
#else
|
|
for(var/i = 0; i < LIGHTING_RESOLUTION; i++)
|
|
for(var/j = 0; j < LIGHTING_RESOLUTION; j++)
|
|
var/atom/movable/lighting_overlay/O = new(T)
|
|
O.pixel_x = i * (32 / LIGHTING_RESOLUTION)
|
|
O.pixel_y = j * (32 / LIGHTING_RESOLUTION)
|
|
O.xoffset = (((2*i + 1) / (LIGHTING_RESOLUTION * 2)) - 0.5)
|
|
O.yoffset = (((2*j + 1) / (LIGHTING_RESOLUTION * 2)) - 0.5)
|
|
O.icon_state = state
|
|
#endif
|