mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
/datum/controller/process/lighting/setup()
|
|
name = "lighting"
|
|
schedule_interval = LIGHTING_INTERVAL
|
|
|
|
create_lighting_overlays()
|
|
|
|
/datum/controller/process/lighting/doWork()
|
|
var/list/lighting_update_lights_old = lighting_update_lights //We use a different list so any additions to the update lists during a delay from scheck() don't cause things to be cut from the list without being updated.
|
|
lighting_update_lights = null //Nulling it first because of http://www.byond.com/forum/?post=1854520
|
|
lighting_update_lights = list()
|
|
|
|
for(var/datum/light_source/L in lighting_update_lights_old)
|
|
if(L.destroyed || L.check() || L.force_update)
|
|
L.remove_lum()
|
|
if(!L.destroyed)
|
|
L.apply_lum()
|
|
|
|
else if(L.vis_update) //We smartly update only tiles that became (in) visible to use.
|
|
L.smart_vis_update()
|
|
|
|
L.vis_update = 0
|
|
L.force_update = 0
|
|
L.needs_update = 0
|
|
|
|
scheck()
|
|
|
|
var/list/lighting_update_overlays_old = lighting_update_overlays //Same as above.
|
|
lighting_update_overlays = null //Same as above
|
|
lighting_update_overlays = list()
|
|
|
|
for(var/atom/movable/lighting_overlay/O in lighting_update_overlays_old)
|
|
O.update_overlay()
|
|
O.needs_update = 0
|
|
|
|
scheck()
|