Files
Bloop 655b66bdd0 Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.

What this PR does:

- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

![FOuGL6ofxC](https://github.com/user-attachments/assets/e5414971-7f13-4883-9f7f-a8a212b46fe8)

<details><summary>Mappers rejoice!</summary>

![StrongDMM_1oeMSoRHXT](https://github.com/user-attachments/assets/83dcfe4c-31be-4953-98f3-dff90268bbc4)

![StrongDMM_uyqu3CggPn](https://github.com/user-attachments/assets/7896f99e-2656-40e1-a9da-3a513882365a)

</details>

<details><summary>Uses iconforge so it does not take up much time during
init</summary>

![dreamdaemon_u4Md3Dqwge](https://github.com/user-attachments/assets/17baaff8-5d5e-4a4d-ba8f-9dd548024155)

</details>

---

this still applies:

Note for Spriters:

After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.

Note for Server Operators:

In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt

No more error icons in SDMM and loadout.

🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-05-29 16:14:43 -04:00

102 lines
3.7 KiB
Plaintext

//Just some alt-uniforms themed around Star Trek - Pls don't sue, Mr Roddenberry ;_;
/obj/item/clothing/under/trek
can_adjust = FALSE
icon = 'icons/obj/clothing/under/trek.dmi'
worn_icon = 'icons/mob/clothing/under/trek.dmi'
/*
* The Original Series (Technically not THE original because these have a black undershirt while the very-original didn't but IDC)
*/
/obj/item/clothing/under/trek/command
name = "command uniform"
desc = "An outdated uniform worn by command officers."
inhand_icon_state = "y_suit"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/trek/command"
post_init_icon_state = "trek_tos_com"
greyscale_config = /datum/greyscale_config/trek
greyscale_config_worn = /datum/greyscale_config/trek/worn
greyscale_config_worn_digi = /datum/greyscale_config/trek/worn/digi //SKYRAT EDIT ADDITION - DigiGreyscale
greyscale_colors = "#fab342"
/obj/item/clothing/under/trek/engsec
name = "engsec uniform"
desc = "An outdated uniform worn by engineering/security officers."
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/trek/engsec"
post_init_icon_state = "trek_tos_sec"
inhand_icon_state = "r_suit"
greyscale_config = /datum/greyscale_config/trek
greyscale_config_worn = /datum/greyscale_config/trek/worn
greyscale_config_worn_digi = /datum/greyscale_config/trek/worn/digi //SKYRAT EDIT ADDITION - DigiGreyscale
greyscale_colors = "#B72B2F"
/obj/item/clothing/under/trek/medsci
name = "medsci uniform"
desc = "An outdated worn by medical/science officers."
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/trek/medsci"
post_init_icon_state = "trek_tos"
inhand_icon_state = "b_suit"
greyscale_config = /datum/greyscale_config/trek
greyscale_config_worn = /datum/greyscale_config/trek/worn
greyscale_config_worn_digi = /datum/greyscale_config/trek/worn/digi //SKYRAT EDIT ADDITION - DigiGreyscale
greyscale_colors = "#5FA4CC"
/*
* The Next Generation
*/
/obj/item/clothing/under/trek/command/next
icon_state = "/obj/item/clothing/under/trek/command/next"
post_init_icon_state = "trek_next" //Technically TNG had Command wearing red, but bc gold is closer to command roles for SS13 we're taking some liberties
/obj/item/clothing/under/trek/engsec/next
icon_state = "/obj/item/clothing/under/trek/engsec/next"
post_init_icon_state = "trek_next"
/obj/item/clothing/under/trek/medsci/next
icon_state = "/obj/item/clothing/under/trek/medsci/next"
post_init_icon_state = "trek_next"
/*
* Voyager
*/
/obj/item/clothing/under/trek/command/voy
icon_state = "/obj/item/clothing/under/trek/command/voy"
post_init_icon_state = "trek_voy" //Same point applies as TNG
/obj/item/clothing/under/trek/engsec/voy
icon_state = "/obj/item/clothing/under/trek/engsec/voy"
post_init_icon_state = "trek_voy"
/obj/item/clothing/under/trek/medsci/voy
icon_state = "/obj/item/clothing/under/trek/medsci/voy"
post_init_icon_state = "trek_voy"
/*
* Enterprise
*/
/obj/item/clothing/under/trek/command/ent
icon_state = "/obj/item/clothing/under/trek/command/ent"
post_init_icon_state = "trek_ent"
//Greyscale sprite note, the base of it can't be greyscaled lest I make a whole new .json, but the color bands are greyscale at least.
inhand_icon_state = "bl_suit"
/obj/item/clothing/under/trek/engsec/ent
icon_state = "/obj/item/clothing/under/trek/engsec/ent"
post_init_icon_state = "trek_ent"
inhand_icon_state = "bl_suit"
/obj/item/clothing/under/trek/medsci/ent
icon_state = "/obj/item/clothing/under/trek/medsci/ent"
post_init_icon_state = "trek_ent"
inhand_icon_state = "bl_suit"
//Q
/obj/item/clothing/under/trek/q
name = "french marshall's uniform"
desc = "Something about this uniform feels off..."
icon_state = "trek_Q"
inhand_icon_state = "r_suit"