Update SSOverlays (ported from Baystation) (#19051)

Our SSOverlays system is outdated, and is likely the cause of many of
the issues seen in #18895. It has also been linked to a massive server
performance decrease.

This brings an updated system from Baystation, hopefully with speed
increases.

Should be testmerged, ideally with #18895.

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
This commit is contained in:
Cody Brittain
2024-05-01 07:46:27 +00:00
committed by GitHub
co-authored by Cody Brittain
parent 405a05b819
commit 9983fca311
350 changed files with 1626 additions and 1498 deletions
+2 -2
View File
@@ -153,7 +153,7 @@
/obj/screen/new_player/selection/MouseEntered(location, control, params)
if(hud_arrow)
add_overlay(hud_arrow, force_compile = TRUE)
AddOverlays(hud_arrow)
else
var/matrix/M = matrix()
M.Scale(1.1, 1)
@@ -162,7 +162,7 @@
/obj/screen/new_player/selection/MouseExited(location,control,params)
if(hud_arrow)
cut_overlays(force_compile = TRUE)
ClearOverlays()
else
animate(src, color = null, transform = null, time = 3, easing = CUBIC_EASING)
return ..()
@@ -227,7 +227,7 @@ Works together with spawning an observer, noted above.
/mob/proc/ghostize(var/can_reenter_corpse = TRUE, var/should_set_timer = TRUE)
if(ckey)
cut_overlay(image('icons/effects/effects.dmi', "zzz_glow")) // not very efficient but ghostize isn't called /too/ often.
CutOverlays(image('icons/effects/effects.dmi', "zzz_glow")) // not very efficient but ghostize isn't called /too/ often.
var/mob/abstract/observer/ghost = new(src) //Transfer safety to observer spawning proc.
ghost.can_reenter_corpse = can_reenter_corpse
ghost.timeofdeath = src.stat == DEAD ? src.timeofdeath : world.time