Processor-driven effects system & Minor Lighting Performance Tweaks (#1697)

Adds a new process-based effects system with the goal of reducing insane lag from sparks.
Currently only supports sparks, but should be easily extendable to other types of effects.
Also fixes a bug with airlocks where the light from bolts wasn't updating.

Refactors bears slightly to reduce duplicated code & pointless spark object creation and destruction.
Lighting profiler will now log /turf locations & names correctly.
Doors will no longer trigger way more visibility checks than they need to.
This commit is contained in:
Lohikar
2017-02-03 19:34:13 -06:00
committed by skull132
parent 6a1fecbd2a
commit f544fe43b1
24 changed files with 393 additions and 170 deletions

View File

@@ -31,7 +31,7 @@
src.visible_message("<span class='warning'>\The [src] explodes in a bright flash!</span>")
new /obj/effect/decal/cleanable/ash(src.loc) //always use src.loc so that ash doesn't end up inside windows
new /obj/effect/sparks(T)
single_spark(T)
new /obj/effect/effect/smoke/illumination(T, brightness=max(flash_range*2, brightness), lifetime=light_duration)
//blinds people like the flash round, but can also be used for temporary illumination