mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 06:22:26 +01:00
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:
co-authored by
Cody Brittain
parent
405a05b819
commit
9983fca311
@@ -7,11 +7,11 @@
|
||||
|
||||
/obj/item/bee_pack/Initialize()
|
||||
. = ..()
|
||||
add_overlay("bee_pack-full")
|
||||
AddOverlays("bee_pack-full")
|
||||
|
||||
/obj/item/bee_pack/update_icon()
|
||||
cut_overlays()
|
||||
add_overlay("bee_pack-[full ? "full" : "empty"]")
|
||||
ClearOverlays()
|
||||
AddOverlays("bee_pack-[full ? "full" : "empty"]")
|
||||
|
||||
/obj/item/bee_pack/proc/empty()
|
||||
name = "empty bee pack"
|
||||
|
||||
@@ -29,22 +29,22 @@
|
||||
var/list/owned_bee_swarms = list()
|
||||
|
||||
/obj/machinery/beehive/update_icon()
|
||||
cut_overlays()
|
||||
ClearOverlays()
|
||||
icon_state = "beehive"
|
||||
if(closed)
|
||||
add_overlay("lid")
|
||||
AddOverlays("lid")
|
||||
if(frames)
|
||||
add_overlay("empty[frames]")
|
||||
AddOverlays("empty[frames]")
|
||||
if(honeycombs >= 100)
|
||||
add_overlay("full[round(honeycombs / 100)]")
|
||||
AddOverlays("full[round(honeycombs / 100)]")
|
||||
if(!smoked)
|
||||
switch(bee_count)
|
||||
if(1 to 40)
|
||||
add_overlay("bees1")
|
||||
AddOverlays("bees1")
|
||||
if(41 to 80)
|
||||
add_overlay("bees2")
|
||||
AddOverlays("bees2")
|
||||
if(81 to 100)
|
||||
add_overlay("bees3")
|
||||
AddOverlays("bees3")
|
||||
|
||||
/obj/machinery/beehive/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
@@ -13,4 +13,4 @@
|
||||
|
||||
/obj/item/honey_frame/filled/Initialize()
|
||||
. = ..()
|
||||
add_overlay("honeycomb")
|
||||
AddOverlays("honeycomb")
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/grown/update_icon()
|
||||
if(!seed || !SSplants || !SSplants.plant_icon_cache)
|
||||
return
|
||||
cut_overlays()
|
||||
ClearOverlays()
|
||||
var/image/plant_icon
|
||||
var/icon_key = "fruit-[seed.get_trait(TRAIT_PRODUCT_ICON)]-[seed.get_trait(TRAIT_PRODUCT_COLOUR)]-[seed.get_trait(TRAIT_PLANT_COLOUR)]"
|
||||
if(SSplants.plant_icon_cache[icon_key])
|
||||
@@ -144,7 +144,7 @@
|
||||
fruit_leaves.color = "[seed.get_trait(TRAIT_PLANT_COLOUR)]"
|
||||
plant_icon.overlays |= fruit_leaves
|
||||
SSplants.plant_icon_cache[icon_key] = plant_icon
|
||||
add_overlay(plant_icon)
|
||||
AddOverlays(plant_icon)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/Crossed(var/mob/living/M)
|
||||
if(seed && seed.get_trait(TRAIT_JUICY) == 2)
|
||||
@@ -377,12 +377,12 @@ var/list/fruit_icon_cache = list()
|
||||
var/image/I = image(icon,"fruit_rind")
|
||||
I.color = rind_colour
|
||||
fruit_icon_cache["rind-[rind_colour]"] = I
|
||||
add_overlay(fruit_icon_cache["rind-[rind_colour]"])
|
||||
AddOverlays(fruit_icon_cache["rind-[rind_colour]"])
|
||||
if(!fruit_icon_cache["slice-[rind_colour]"])
|
||||
var/image/I = image(icon,"fruit_slice")
|
||||
I.color = flesh_colour
|
||||
fruit_icon_cache["slice-[rind_colour]"] = I
|
||||
add_overlay(fruit_icon_cache["slice-[rind_colour]"])
|
||||
AddOverlays(fruit_icon_cache["slice-[rind_colour]"])
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/konyang_tea
|
||||
name = "sencha leaves"
|
||||
|
||||
@@ -908,7 +908,7 @@ GLOBAL_LIST_INIT(seed_icon_cache, list())
|
||||
leaves_image.color = leaves_color
|
||||
leaves_image.appearance_flags = RESET_COLOR
|
||||
//Add ourself as overlays to the generated image
|
||||
generated_image.add_overlay(leaves_image)
|
||||
generated_image.AddOverlays(leaves_image)
|
||||
|
||||
//Store the image in the cache, so we won't have to keep generating it
|
||||
GLOB.seed_icon_cache[SEED_ICON_CACHE_KEY(icon_file_to_request, icon_state_to_request, color_to_request, leaves_overlay_to_request)] = generated_image
|
||||
|
||||
@@ -27,7 +27,7 @@ GLOBAL_LIST_EMPTY(plant_seed_sprites)
|
||||
return
|
||||
|
||||
// Update icon.
|
||||
cut_overlays()
|
||||
ClearOverlays()
|
||||
var/is_seeds = ((seed.seed_noun in list(SEED_NOUN_SEEDS, SEED_NOUN_PITS, SEED_NOUN_NODES)) ? 1 : 0)
|
||||
var/image/seed_mask
|
||||
var/seed_base_key = "base-[is_seeds ? seed.get_trait(TRAIT_PLANT_COLOUR) : SEED_NOUN_SPORES]"
|
||||
@@ -48,8 +48,8 @@ GLOBAL_LIST_EMPTY(plant_seed_sprites)
|
||||
seed_overlay.color = seed.get_trait(TRAIT_PRODUCT_COLOUR)
|
||||
GLOB.plant_seed_sprites[seed_overlay_key] = seed_overlay
|
||||
|
||||
add_overlay(seed_mask)
|
||||
add_overlay(seed_overlay)
|
||||
AddOverlays(seed_mask)
|
||||
AddOverlays(seed_overlay)
|
||||
|
||||
if(is_seeds)
|
||||
src.name = "packet of [seed.seed_name] [seed.seed_noun]"
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
if(!istype(our_icon))
|
||||
crash_with("The plant didn't return an icon!")
|
||||
|
||||
add_overlay(our_icon)
|
||||
AddOverlays(our_icon)
|
||||
|
||||
if(growth>2 && growth == max_growth)
|
||||
layer = (seed && seed.force_layer) ? seed.force_layer : 5
|
||||
|
||||
@@ -70,10 +70,10 @@
|
||||
drop_sound = 'sound/weapons/jug_empty_impact.ogg'
|
||||
|
||||
/obj/item/reagent_containers/glass/fertilizer/update_icon()
|
||||
cut_overlays()
|
||||
ClearOverlays()
|
||||
|
||||
if(!is_open_container())
|
||||
add_overlay("lid_jug")
|
||||
AddOverlays("lid_jug")
|
||||
|
||||
/obj/item/reagent_containers/glass/fertilizer/ez
|
||||
name = "jug of E-Z-Nutrient"
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
if(labelled)
|
||||
name += " ([labelled])"
|
||||
|
||||
cut_overlays()
|
||||
ClearOverlays()
|
||||
// Updates the plant overlay.
|
||||
if(!isnull(seed))
|
||||
|
||||
if(mechanical && health <= (seed.get_trait(TRAIT_ENDURANCE) / 2))
|
||||
add_overlay("over_lowhealth3")
|
||||
AddOverlays("over_lowhealth3")
|
||||
|
||||
if(dead)
|
||||
var/ikey = "[seed.get_trait(TRAIT_PLANT_ICON)]-dead"
|
||||
@@ -25,7 +25,7 @@
|
||||
if(!dead_overlay)
|
||||
dead_overlay = image('icons/obj/hydroponics_growing.dmi', "[ikey]")
|
||||
dead_overlay.color = DEAD_PLANT_COLOUR
|
||||
add_overlay(dead_overlay)
|
||||
AddOverlays(dead_overlay)
|
||||
else
|
||||
if(!seed.growth_stages)
|
||||
seed.update_growth_stages()
|
||||
@@ -41,7 +41,7 @@
|
||||
maturation = 1
|
||||
overlay_stage = maturation ? max(1,round(age/maturation)) : 1
|
||||
var/image/plant_overlay = seed.get_icon(overlay_stage)
|
||||
add_overlay(plant_overlay)
|
||||
AddOverlays(plant_overlay)
|
||||
|
||||
if(harvest && overlay_stage == seed.growth_stages)
|
||||
var/ikey = "[seed.get_trait(TRAIT_PRODUCT_ICON)]"
|
||||
@@ -50,22 +50,22 @@
|
||||
harvest_overlay = image('icons/obj/hydroponics_products.dmi', "[ikey]")
|
||||
harvest_overlay.color = seed.get_trait(TRAIT_PRODUCT_COLOUR)
|
||||
SSplants.plant_icon_cache["product-[ikey]-[seed.get_trait(TRAIT_PRODUCT_COLOUR)]"] = harvest_overlay
|
||||
add_overlay(harvest_overlay)
|
||||
AddOverlays(harvest_overlay)
|
||||
|
||||
//Draw the cover.
|
||||
if(closed_system)
|
||||
add_overlay("hydrocover")
|
||||
AddOverlays("hydrocover")
|
||||
|
||||
//Updated the various alert icons.
|
||||
if(mechanical)
|
||||
if(waterlevel <= 10)
|
||||
add_overlay("over_lowwater3")
|
||||
AddOverlays("over_lowwater3")
|
||||
if(nutrilevel <= 2)
|
||||
add_overlay("over_lownutri3")
|
||||
AddOverlays("over_lownutri3")
|
||||
if(pestlevel >= 5 || toxins >= 40) // Hydroponics trays no longer face issues with weeds. GET OUTTA HERE.
|
||||
add_overlay("over_alert3")
|
||||
AddOverlays("over_alert3")
|
||||
if(harvest)
|
||||
add_overlay("over_harvest3")
|
||||
AddOverlays("over_harvest3")
|
||||
|
||||
if(seed && seed.get_trait(TRAIT_LARGE))
|
||||
density = TRUE
|
||||
|
||||
Reference in New Issue
Block a user