Adds a unit test for icon states on GAGS items and fixes some inhand sprites (#59330)

This adds a unit test which goes through all items and makes sure all the icon states needed are in the greyscale configurations, if it has one.
This commit is contained in:
Emmett Gaines
2021-05-28 10:06:37 -04:00
committed by GitHub
parent caa2b1507d
commit 9e9327d128
10 changed files with 35 additions and 3 deletions
+1
View File
@@ -57,6 +57,7 @@
#include "egg_glands.dm"
#include "emoting.dm"
#include "food_edibility_check.dm"
#include "greyscale_config.dm"
#include "heretic_knowledge.dm"
#include "holidays.dm"
#include "hydroponics_harvest.dm"
@@ -0,0 +1,19 @@
/// Makes sure items using GAGS have all the icon states needed to work
/datum/unit_test/greyscale_item_icon_states
/datum/unit_test/greyscale_item_icon_states/Run()
for(var/obj/item/item_path as anything in subtypesof(/obj/item))
var/held_icon_state = initial(item_path.inhand_icon_state) || initial(item_path.icon_state)
var/datum/greyscale_config/lefthand = SSgreyscale.configurations["[initial(item_path.greyscale_config_inhand_left)]"]
if(lefthand && !lefthand.icon_states[held_icon_state])
Fail("[lefthand.DebugName()] is missing a sprite for the held lefthand for [item_path]. Expected icon state: '[held_icon_state]'")
var/datum/greyscale_config/righthand = SSgreyscale.configurations["[initial(item_path.greyscale_config_inhand_right)]"]
if(righthand && !righthand.icon_states[held_icon_state])
Fail("[righthand.DebugName()] is missing a sprite for the held righthand for [item_path]. Expected icon state: '[held_icon_state]'")
var/datum/greyscale_config/worn = SSgreyscale.configurations["[initial(item_path.greyscale_config_worn)]"]
var/worn_icon_state = initial(item_path.worn_icon_state) || initial(item_path.icon_state)
if(worn && !worn.icon_states[worn_icon_state])
Fail("[worn.DebugName()] is missing a sprite for the worn overlay for [item_path]. Expected icon state: '[worn_icon_state]'")