Clothing fallback (#18258)

* Clothing fallback

Makes clothing have a fallback in the event of a custom species file not having the appropriate icon state.

* some logging

* testing

* swap all unit tests to use icon_exists

* Update poster_tests.dm

* Update clothing_tests.dm

* Update cosmetic_tests.dm

* Update robot_tests.dm

* whoop

* upgrades people, upgrades

* port these

* Update _atom.dm

* adjust all these

* Update clothing.dm

* TRUEFALSE
This commit is contained in:
Cameron Lennox
2025-08-19 20:42:42 -04:00
committed by GitHub
parent e5f9c80628
commit 9856c64443
20 changed files with 119 additions and 74 deletions
@@ -345,7 +345,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
base_icon.MapColors(rgb(tone[1],0,0),rgb(0,tone[2],0),rgb(0,0,tone[3]))
//Handle husk overlay.
if(husk && ("overlay_husk" in cached_icon_states(species.icobase)))
if(husk && icon_exists(species.icobase, "overlay_husk"))
var/icon/mask = new(base_icon)
var/icon/husk_over = new(species.icobase,"overlay_husk")
mask.MapColors(0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,0)
@@ -83,12 +83,12 @@
// Unfortunately not all these states exist, ugh.
else if(vore_fullness && !resting)
if("[chassis]_full[fullness_extension]" in cached_icon_states(icon))
if(icon_exists(icon, "[chassis]_full[fullness_extension]"))
icon_state = "[chassis]_full[fullness_extension]"
else
icon_state = "[chassis]"
else if(vore_fullness && resting)
if("[chassis]_rest_full[fullness_extension]" in cached_icon_states(icon))
if(icon_exists(icon, "[chassis]_rest_full[fullness_extension]"))
icon_state = "[chassis]_rest_full[fullness_extension]"
else
icon_state = "[chassis]_rest"