mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-02 05:22:40 +00:00
Mostly efficiency changes to human icons, little bit of code deduplication in head icons. The human overlay list has been changed to accept /list so that multiple items can be added to a layer without having to resort to adding overlays to an intermediary object like an /image. changes: Human skin color (not tone) is now stored as a hex string instead of a 3-value list. Human body hair color (resomi only) is now stored as a hex string instead of a 3-value list. Body markings now play nice with the human icon cache (Fixes #3110) Hair properly uses its cache now in all cases. Merged head organs and human icon's implementations of hair icon gen into a proc on human. Replaced the individual hair and beard caches with a shared composited hair cache used by both head icon and mob icons. Lists in the human overlay list are now flattened out onto the human, allowing for multiple objects within a single human icon layer without using an intermediary image. Removed some unused caching lists. Damage overlays no longer utilize overlays on a blank image for drawing, instead using a list in the human overlay list. Shoe overlays no longer utilize overlays on the shoe image, instead using a list in the human overlay list. Surgery overlays no longer utilize overlays on a blank image, instead using a list in the human overlay list.
56 lines
2.0 KiB
Plaintext
56 lines
2.0 KiB
Plaintext
/var/datum/controller/subsystem/icon_cache/SSicon_cache
|
|
|
|
/datum/controller/subsystem/icon_cache
|
|
name = "Icon Cache"
|
|
flags = SS_NO_FIRE | SS_NO_INIT
|
|
|
|
// Cached bloody overlays, key is object type.
|
|
var/list/bloody_cache = list()
|
|
|
|
// Cached holo effect multiplier images.
|
|
var/list/holo_multiplier_cache = list() // 2-layer list: icon -> icon_state -> /image
|
|
// Cached holo effect adder images.
|
|
var/list/holo_adder_cache = list() // 2-layer list: icon -> icon_state -> /image
|
|
|
|
var/list/floor_decals = list()
|
|
var/list/flooring_cache = list()
|
|
|
|
var/list/mob_hat_cache = list()
|
|
|
|
var/list/magazine_icondata_keys = list()
|
|
var/list/magazine_icondata_states = list()
|
|
|
|
var/list/stool_cache = list()
|
|
var/list/floor_light_cache = list()
|
|
var/list/ashtray_cache = list()
|
|
|
|
/*
|
|
Global associative list for caching humanoid icons.
|
|
Index format m or f, followed by a string of 0 and 1 to represent bodyparts followed by husk fat hulk skeleton 1 or 0.
|
|
TODO: Proper documentation
|
|
icon_key is [species.race_key][g][husk][fat][hulk][skeleton][s_tone]
|
|
*/
|
|
var/list/human_icon_cache = list()
|
|
var/list/tail_icon_cache = list() //key is [species.race_key][r_skin][g_skin][b_skin]
|
|
var/list/light_overlay_cache = list()
|
|
// Cached body hair icons, used by resomi.
|
|
var/list/body_hair_cache = list()
|
|
// Cached human damage icons.
|
|
var/list/damage_icon_parts = list()
|
|
// Cached human body markings.
|
|
var/list/markings_cache = list() // [icon]-[icon_state]-[limb_name]-[color]
|
|
var/list/human_eye_cache = list()
|
|
var/list/human_lip_cache = list()
|
|
// Cached composited human hair (beard & hair).
|
|
// Key:
|
|
// hair+beard: [beard_style][r_facial][g_facial][b_facial]_[hair_style][r_hair][g_hair][b_hair]
|
|
// haironly: nobeard_[hair_style][r_hair][g_hair][b_hair]
|
|
// beardonly: [beard_style][r_facial][g_facial][b_facial]_nohair
|
|
var/list/human_hair_cache = list()
|
|
var/list/human_underwear_cache = list()
|
|
var/list/human_undershirt_cache = list()
|
|
var/list/human_socks_cache = list()
|
|
|
|
/datum/controller/subsystem/icon_cache/New()
|
|
NEW_SS_GLOBAL(SSicon_cache)
|