diff --git a/code/game/objects/items/reagent_containers/food.dm b/code/game/objects/items/reagent_containers/food.dm index 13dfcac84ff8..ded1b90b106f 100644 --- a/code/game/objects/items/reagent_containers/food.dm +++ b/code/game/objects/items/reagent_containers/food.dm @@ -2,6 +2,10 @@ /// Food. //////////////////////////////////////////////////////////////////////////////// /obj/item/reagent_container/food + item_icons = list( + WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi', + WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi' + ) possible_transfer_amounts = null volume = 50 //Sets the default container amount for all food items. flags_atom = CAN_BE_SYRINGED diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 6e8b00fc48e8..290460da758f 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -3,6 +3,10 @@ desc = "Can hold various things." icon = 'icons/obj/items/clothing/belts.dmi' icon_state = "utilitybelt" + item_icons = list( + WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi', + WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi' + ) item_state = "utility" flags_equip_slot = SLOT_WAIST attack_verb = list("whipped", "lashed", "disciplined") diff --git a/code/modules/unit_tests/missing_icons.dm b/code/modules/unit_tests/missing_icons.dm index 53abbed70d6a..44f135ae34fb 100644 --- a/code/modules/unit_tests/missing_icons.dm +++ b/code/modules/unit_tests/missing_icons.dm @@ -19,6 +19,7 @@ /datum/unit_test/missing_icons/Run() generate_possible_icon_states_list() generate_possible_icon_states_list("icons/effects/") + generate_possible_icon_states_list("icons/mobs/") if(additional_icon_location) generate_possible_icon_states_list(additional_icon_location) diff --git a/icons/mob/hud/human_old.dmi b/icons/mob/hud/human_old.dmi index 194206d4de16..e8b682c7c831 100644 Binary files a/icons/mob/hud/human_old.dmi and b/icons/mob/hud/human_old.dmi differ diff --git a/icons/mob/humans/onmob/items_lefthand_0.dmi b/icons/mob/humans/onmob/items_lefthand_0.dmi index 676920e0bac0..1f154ef92396 100644 Binary files a/icons/mob/humans/onmob/items_lefthand_0.dmi and b/icons/mob/humans/onmob/items_lefthand_0.dmi differ diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi index b149c4ea872b..d65bcccc02af 100644 Binary files a/icons/mob/humans/onmob/items_lefthand_1.dmi and b/icons/mob/humans/onmob/items_lefthand_1.dmi differ diff --git a/icons/mob/humans/onmob/items_righthand_0.dmi b/icons/mob/humans/onmob/items_righthand_0.dmi index a380e5eb73f4..858da88c29ed 100644 Binary files a/icons/mob/humans/onmob/items_righthand_0.dmi and b/icons/mob/humans/onmob/items_righthand_0.dmi differ diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi index 70fa3a73fbc5..f9b5350d6a7b 100644 Binary files a/icons/mob/humans/onmob/items_righthand_1.dmi and b/icons/mob/humans/onmob/items_righthand_1.dmi differ diff --git a/icons/obj/structures/props/rocks.dmi b/icons/obj/structures/props/rocks.dmi index e494bdcba2f8..71ea709c771f 100644 Binary files a/icons/obj/structures/props/rocks.dmi and b/icons/obj/structures/props/rocks.dmi differ diff --git a/icons/rebase_icons.dmi b/icons/rebase_icons.dmi index 2d394cef793d..6b0a25a1f7e6 100644 Binary files a/icons/rebase_icons.dmi and b/icons/rebase_icons.dmi differ diff --git a/icons/turf/floors/desert_dirt.dmi b/icons/turf/floors/desert_dirt.dmi index e153917e708a..ed6c57cc1809 100644 Binary files a/icons/turf/floors/desert_dirt.dmi and b/icons/turf/floors/desert_dirt.dmi differ diff --git a/icons/turf/floors/desert_rock.dmi b/icons/turf/floors/desert_rock.dmi index 8cbd01e3cec1..79a33d83257f 100644 Binary files a/icons/turf/floors/desert_rock.dmi and b/icons/turf/floors/desert_rock.dmi differ diff --git a/tools/dmi/test.py b/tools/dmi/test.py index 09629927d88a..fcf73603f7d5 100644 --- a/tools/dmi/test.py +++ b/tools/dmi/test.py @@ -3,23 +3,54 @@ from dmi import * +def green(text): + return "\033[32m" + str(text) + "\033[0m" + + +def red(text): + return "\033[31m" + str(text) + "\033[0m" + + def _self_test(): # test: can we load every DMI in the tree count = 0 + failed = 0 for dirpath, dirnames, filenames in os.walk('.'): if '.git' in dirnames: dirnames.remove('.git') for filename in filenames: if filename.endswith('.dmi'): fullpath = os.path.join(dirpath, filename) + failures_this_file = 0 try: - Dmi.from_file(fullpath) + dmi = Dmi.from_file(fullpath) + dmi_states = dmi.states + number_of_icon_states = len(dmi.states) + if number_of_icon_states > 512: + print("{0} {1} has too many icon states: {2}/512.".format(red("FAIL"), fullpath, number_of_icon_states)) + failures_this_file += 1 + existing_states = [] + for state in dmi_states: + state_name = state.name + if state.movement: + state_name += "_MOVEMENT_STATE_TRUE" + if state_name in existing_states: + print("{0} {1} has a duplicate state '{2}'.".format(red("FAIL"), fullpath, state.name)) + failures_this_file += 1 + continue + existing_states.append(state_name) except Exception: - print('Failed on:', fullpath) + print("{0} {1} threw an exception.".format(red("FAIL"), fullpath)) + failures_this_file += 1 raise count += 1 + if failures_this_file > 0: + failed += 1 - print(f"{os.path.relpath(__file__)}: successfully parsed {count} .dmi files") + print(f"{os.path.relpath(__file__)}: {green(f'successfully parsed {count-failed} .dmi files')}") + if failed > 0: + print(f"{os.path.relpath(__file__)}: {red(f'failed to parse {failed} .dmi files')}") + exit(1) def _usage():