Adds Character Loadout Tab to preferences (with just a small handful of items to start) (#83521)

## About The Pull Request

Adds a Character Loadout Tab to the preference menu

This tab lets you pick items to start the round with


![image](https://private-user-images.githubusercontent.com/51863163/336254447-c5f7eefa-c44c-418d-b48e-0409bb5bb982.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTgwNDAxMjMsIm5iZiI6MTcxODAzOTgyMywicGF0aCI6Ii81MTg2MzE2My8zMzYyNTQ0NDctYzVmN2VlZmEtYzQ0Yy00MThkLWI0OGUtMDQwOWJiNWJiOTgyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjEwVDE3MTcwM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxYWFmYjI2NDU0YjUyODg3NjBmM2VjZDg4YWQ1YjlhMThmODU3MDYyMzYwOGVmYTcxYmY2MDhjZWVmYjQ5ZTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Y0_19Gisfp4yyUmLgW2atfKyneL7POWFRKNVgNWTbEs)

This also has some additional mechanics, such as being able to recolor
colorable items, rename certain items (such as plushies), set item skins
(such as the pride pin)


![image](https://github.com/tgstation/tgstation/assets/51863163/8a085d6c-a294-4538-95d2-ada902ab69b4)

## Why It's Good For The Game

This has been headcoder sanctioned for some time, just no one did it. So
here we are.

Allows players to add some additional customization to their characters.
Keeps us from cluttering the quirks list with quirks that do nothing but
grants items.

## Changelog

🆑 Melbert
add: Character Loadouts
del: Pride Pin quirk (it's in the Loadout menu now)
/🆑
This commit is contained in:
MrMelbert
2024-06-11 19:50:12 -05:00
committed by GitHub
parent 1a13b3a95a
commit d244c86ce6
44 changed files with 2192 additions and 99 deletions

View File

@@ -225,8 +225,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
return TRUE
if ("rotate")
character_preview_view.dir = turn(character_preview_view.dir, -90)
character_preview_view.setDir(turn(character_preview_view.dir, -90))
return TRUE
if ("set_preference")
var/requested_preference_key = params["preference"]
@@ -351,6 +350,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/mob/living/carbon/human/dummy/body
/// The preferences this refers to
var/datum/preferences/preferences
/// Whether we show current job clothes or nude/loadout only
var/show_job_clothes = TRUE
/atom/movable/screen/map_view/char_preview/Initialize(mapload, datum/preferences/preferences)
. = ..()
@@ -368,16 +369,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
create_body()
else
body.wipe_state()
appearance = preferences.render_new_preview_appearance(body)
appearance = preferences.render_new_preview_appearance(body, show_job_clothes)
/atom/movable/screen/map_view/char_preview/proc/create_body()
QDEL_NULL(body)
body = new
// Without this, it doesn't show up in the menu
body.appearance_flags &= ~KEEP_TOGETHER
/datum/preferences/proc/create_character_profiles()
var/list/profiles = list()