diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a294c4b493c..c02f49ef71f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,6 +37,7 @@ jobs: python tools/ci/unticked_files.py ${GITHUB_WORKSPACE} python tools/ci/illegal_dme_files.py ${GITHUB_WORKSPACE} python -m tools.ci.check_icon_conflicts + python -m tools.ci.check_icon_dupenames python -m tools.maplint.source --github DREAMCHECKER_EXIT_CODE=0 ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 || DREAMCHECKER_EXIT_CODE=$? diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 3331ee4d8fd..afa07900913 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -929,6 +929,7 @@ desc = "A black coat with gold trim and an old US Chevron printed on the back. Edgy." icon = 'icons/obj/custom_items.dmi' icon_state = "shodancoat" + item_state = "shodancoat_item" /obj/item/clothing/suit/storage/fluff/k3_webbing name = "vox tactical webbing" diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index f890b05a742..5692365bace 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/mob/screen_bot.dmi b/icons/mob/screen_bot.dmi index 7522623f327..9079dfba15e 100644 Binary files a/icons/mob/screen_bot.dmi and b/icons/mob/screen_bot.dmi differ diff --git a/icons/mob/screen_robot.dmi b/icons/mob/screen_robot.dmi index d14ac2967ac..2fb11de46ab 100644 Binary files a/icons/mob/screen_robot.dmi and b/icons/mob/screen_robot.dmi differ diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi index 882d60d35a1..8f2ec75eec3 100644 Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ diff --git a/icons/obj/flora/snowflora.dmi b/icons/obj/flora/snowflora.dmi index 4a010012fe2..b86a88cc3b5 100644 Binary files a/icons/obj/flora/snowflora.dmi and b/icons/obj/flora/snowflora.dmi differ diff --git a/icons/obj/wizard.dmi b/icons/obj/wizard.dmi index 636e9f6ca2e..c9722eeed29 100644 Binary files a/icons/obj/wizard.dmi and b/icons/obj/wizard.dmi differ diff --git a/tools/ci/check_icon_dupenames.py b/tools/ci/check_icon_dupenames.py new file mode 100644 index 00000000000..da4f988810c --- /dev/null +++ b/tools/ci/check_icon_dupenames.py @@ -0,0 +1,40 @@ +from collections import defaultdict +import glob +import sys +import time + +from ..dmi import Dmi + + +if __name__ == "__main__": + print("check_icon_dupenames started") + + count = 0 + exit_code = 0 + start = time.time() + + findings = defaultdict(list) + + for dmi_path in glob.glob("**/*.dmi", recursive=True): + dmi = Dmi.from_file(dmi_path) + states = set() + for state in dmi.states: + # Movement states have the same name as their non-movement counterparts + if (state.name, state.movement) in states: + findings[dmi_path].append(state.name) + states.add((state.name, state.movement)) + count += 1 + + if findings: + exit_code = 1 + + for filename in sorted(findings.keys()): + states = findings[filename] + for state in sorted(states): + print(f"{filename}: duplicate state name `{state}`") + + + end = time.time() + print(f"\ncheck_icon_dupenames checked {count} files in {end - start:.2f}s\n") + + sys.exit(exit_code)