Files
kiwistation/code/game/objects/effects/overlays.dm
T
Rohesie eda7c6ca55 Overlay lighting component (#52413)
Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.

It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:


This is a BYOND limitation, very well worth it IMO.

🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑
2020-08-22 14:56:38 +12:00

78 lines
1.9 KiB
Plaintext

/obj/effect/overlay
name = "overlay"
/obj/effect/overlay/singularity_act()
return
/obj/effect/overlay/singularity_pull()
return
/obj/effect/overlay/beam//Not actually a projectile, just an effect.
name="beam"
icon='icons/effects/beam.dmi'
icon_state="b_beam"
var/atom/BeamSource
/obj/effect/overlay/beam/Initialize()
. = ..()
QDEL_IN(src, 10)
/obj/effect/overlay/palmtree_r
name = "palm tree"
icon = 'icons/misc/beach2.dmi'
icon_state = "palm1"
density = TRUE
layer = WALL_OBJ_LAYER
anchored = TRUE
/obj/effect/overlay/palmtree_l
name = "palm tree"
icon = 'icons/misc/beach2.dmi'
icon_state = "palm2"
density = TRUE
layer = WALL_OBJ_LAYER
anchored = TRUE
/obj/effect/overlay/coconut
gender = PLURAL
name = "coconuts"
icon = 'icons/misc/beach.dmi'
icon_state = "coconuts"
/obj/effect/overlay/sparkles
gender = PLURAL
name = "sparkles"
icon = 'icons/effects/effects.dmi'
icon_state = "shieldsparkles"
anchored = TRUE
/obj/effect/overlay/vis
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
anchored = TRUE
vis_flags = NONE
var/unused = 0 //When detected to be unused it gets set to world.time, after a while it gets removed
var/cache_expiration = 2 MINUTES // overlays which go unused for 2 minutes get cleaned up
/obj/effect/overlay/atmos_excited
name = "excited group"
icon = null
icon_state = null
anchored = TRUE // should only appear in vis_contents, but to be safe
appearance_flags = RESET_TRANSFORM | TILE_BOUND
invisibility = INVISIBILITY_ABSTRACT
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
layer = ATMOS_GROUP_LAYER
plane = ATMOS_GROUP_PLANE
/obj/effect/overlay/light_visible
name = ""
icon = 'icons/effects/light_overlays/light_32.dmi'
icon_state = "light"
layer = O_LIGHTING_VISUAL_LAYER
plane = O_LIGHTING_VISUAL_PLANE
appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
alpha = 0
vis_flags = NONE