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
@@ -35,26 +35,26 @@ field_generator power level display
/obj/machinery/field_generator/update_icon()
cut_overlays()
ClearOverlays()
if(!active)
if(warming_up)
add_overlay("+a[warming_up]")
AddOverlays("+a[warming_up]")
if(fields.len)
add_overlay("+on")
AddOverlays("+on")
// Power level indicator
// Scale % power to % num_power_levels and truncate value
var/level = round(num_power_levels * power / field_generator_max_power)
// Clamp between 0 and num_power_levels for out of range power values
level = between(0, level, num_power_levels)
if(level)
add_overlay("+p[level]")
AddOverlays("+p[level]")
if(anchored)
add_overlay("+bolts")
AddOverlays("+bolts")
if(state == 2)
add_overlay("+welding")
AddOverlays("+welding")
var/image/lights_image = image(icon, null, "+lights")
lights_image.plane = EFFECTS_ABOVE_LIGHTING_PLANE
add_overlay(lights_image)
AddOverlays(lights_image)
/obj/machinery/field_generator/process()
if(Varedit_start == 1)
+3 -3
View File
@@ -11,12 +11,12 @@
var/creation_type = /obj/singularity
/obj/machinery/the_singularitygen/update_icon()
cut_overlays()
ClearOverlays()
if(anchored)
add_overlay("[icon_state]+bolts")
AddOverlays("[icon_state]+bolts")
var/image/lights_image = image(icon, null, "[icon_state]+lights")
lights_image.plane = EFFECTS_ABOVE_LIGHTING_PLANE
add_overlay(lights_image)
AddOverlays(lights_image)
/obj/machinery/the_singularitygen/process()
var/turf/T = get_turf(src)
@@ -479,15 +479,15 @@
move_self = 0
switch (current_size)
if(1)
add_overlay(image('icons/obj/singularity.dmi',"chain_s1"))
AddOverlays(image('icons/obj/singularity.dmi',"chain_s1"))
if(3)
add_overlay(image('icons/effects/96x96.dmi',"chain_s3"))
AddOverlays(image('icons/effects/96x96.dmi',"chain_s3"))
if(5)
add_overlay(image('icons/effects/160x160.dmi',"chain_s5"))
AddOverlays(image('icons/effects/160x160.dmi',"chain_s5"))
if(7)
add_overlay(image('icons/effects/224x224.dmi',"chain_s7"))
AddOverlays(image('icons/effects/224x224.dmi',"chain_s7"))
if(9)
add_overlay(image('icons/effects/288x288.dmi',"chain_s9"))
AddOverlays(image('icons/effects/288x288.dmi',"chain_s9"))
/obj/singularity/proc/on_release()
chained = 0