Loadout DB Storage Refactor (#16453)

* `display_name` -> Typepaths V1

* Loadout display name capitalisation

#15857

* Review 1, plus json fixes

* (Hopefully) final tweaks

* Styling nitpicks

* Extra tweaks because why not

It never caused a runtime, but the `?.` is just in case.

* Deconflicting

* Warning comment

* Whoops

Typing faster than my brain
This commit is contained in:
SabreML
2021-10-09 19:35:15 +01:00
committed by GitHub
parent ab4aeec128
commit bc739c353d
20 changed files with 926 additions and 360 deletions
@@ -1,136 +1,149 @@
/*
######################################################################################
## ##
## IMPORTANT README ##
## ##
## Changing any /datum/gear typepaths --WILL-- break people's loadouts. ##
## The typepaths are stored directly in the `characters.gear` column of the DB. ##
## Please inform the server host if you wish to modify any of these. ##
## ##
######################################################################################
*/
/datum/gear/dice
display_name = "a d20"
display_name = "D20"
path = /obj/item/dice/d20
/datum/gear/uplift
display_name = "a pack of Uplifts"
display_name = "Pack of Uplifts"
path = /obj/item/storage/fancy/cigarettes/cigpack_uplift
/datum/gear/robust
display_name = "a pack of Robusts"
display_name = "Pack of Robusts"
path = /obj/item/storage/fancy/cigarettes/cigpack_robust
/datum/gear/carp
display_name = "a pack of Carps"
display_name = "Pack of Carps"
path = /obj/item/storage/fancy/cigarettes/cigpack_carp
/datum/gear/midori
display_name = "a pack of Midoris"
display_name = "Pack of Midoris"
path = /obj/item/storage/fancy/cigarettes/cigpack_midori
/datum/gear/smokingpipe
display_name = "smoking pipe"
display_name = "Smoking pipe"
path = /obj/item/clothing/mask/cigarette/pipe
cost = 2
/datum/gear/lighter
display_name = "a cheap lighter"
display_name = "Cheap lighter"
path = /obj/item/lighter
/datum/gear/matches
display_name = "a box of matches"
display_name = "Box of matches"
path = /obj/item/storage/box/matches
/datum/gear/candlebox
display_name = "a box candles"
display_name = "Box of candles"
description = "For setting the mood or for occult rituals."
path = /obj/item/storage/fancy/candle_box/full
/datum/gear/rock
display_name = "a pet rock"
display_name = "Pet rock"
path = /obj/item/toy/pet_rock
/datum/gear/camera
display_name = "a camera"
display_name = "Camera"
path = /obj/item/camera
/datum/gear/redfoxplushie
display_name = "a red fox plushie"
display_name = "Red fox plushie"
path = /obj/item/toy/plushie/red_fox
/datum/gear/blackcatplushie
display_name = "a black cat plushie"
display_name = "Black cat plushie"
path = /obj/item/toy/plushie/black_cat
/datum/gear/voxplushie
display_name = "a vox plushie"
display_name = "Vox plushie"
path = /obj/item/toy/plushie/voxplushie
/datum/gear/lizardplushie
display_name = "a lizard plushie"
display_name = "Lizard plushie"
path = /obj/item/toy/plushie/lizardplushie
/datum/gear/deerplushie
display_name = "a deer plushie"
display_name = "Deer plushie"
path = /obj/item/toy/plushie/deer
/datum/gear/carpplushie
display_name = "a carp plushie"
display_name = "Carp plushie"
path = /obj/item/toy/carpplushie
/datum/gear/sechud
display_name = "a classic security HUD"
display_name = "Classic security HUD"
path = /obj/item/clothing/glasses/hud/security
allowed_roles = list("Head of Security", "Warden", "Security Officer", "Internal Affairs Agent","Magistrate")
/datum/gear/cryaonbox
display_name = "a box of crayons"
display_name = "Box of crayons"
path = /obj/item/storage/fancy/crayons
/datum/gear/cane
display_name = "a walking cane"
display_name = "Walking cane"
path = /obj/item/cane
/datum/gear/cards
display_name = "a deck of standard cards"
display_name = "Deck of standard cards"
path = /obj/item/deck/cards
/datum/gear/doublecards
display_name = "a double deck of standard cards"
display_name = "Double deck of standard cards"
path = /obj/item/deck/doublecards
/datum/gear/tarot
display_name = "a deck of tarot cards"
display_name = "Deck of tarot cards"
path = /obj/item/deck/tarot
/datum/gear/headphones
display_name = "a pair of headphones"
display_name = "Headphones"
path = /obj/item/clothing/ears/headphones
/datum/gear/fannypack
display_name = "a fannypack"
display_name = "Fannypack"
path = /obj/item/storage/belt/fannypack
/datum/gear/blackbandana
display_name = "bandana, black"
display_name = "Bandana, black"
path = /obj/item/clothing/mask/bandana/black
/datum/gear/purplebandana
display_name = "bandana, purple"
display_name = "Bandana, purple"
path = /obj/item/clothing/mask/bandana/purple
/datum/gear/orangebandana
display_name = "bandana, orange"
display_name = "Bandana, orange"
path = /obj/item/clothing/mask/bandana/orange
/datum/gear/greenbandana
display_name = "bandana, green"
display_name = "Bandana, green"
path = /obj/item/clothing/mask/bandana/green
/datum/gear/bluebandana
display_name = "bandana, blue"
display_name = "Bandana, blue"
path = /obj/item/clothing/mask/bandana/blue
/datum/gear/redbandana
display_name = "bandana, red"
display_name = "Bandana, red"
path = /obj/item/clothing/mask/bandana/red
/datum/gear/goldbandana
display_name = "bandana, gold"
display_name = "Bandana, gold"
path = /obj/item/clothing/mask/bandana/gold
/datum/gear/skullbandana
display_name = "bandana, skull"
display_name = "Bandana, skull"
path = /obj/item/clothing/mask/bandana/skull
/datum/gear/mob_hunt_game
@@ -143,54 +156,54 @@
//////////////////////
/datum/gear/mug
display_name = "random coffee mug"
display_name = "Coffee mug, random"
description = "A randomly colored coffee mug. You'll need to supply your own beverage though."
path = /obj/item/reagent_containers/food/drinks/mug
sort_category = "Mugs"
/datum/gear/novelty_mug
display_name = "novelty coffee mug"
display_name = "Coffee mug, novelty"
description = "A random novelty coffee mug. You'll need to supply your own beverage though."
path = /obj/item/reagent_containers/food/drinks/mug/novelty
cost = 2
sort_category = "Mugs"
/datum/gear/mug/flask
display_name = "flask"
display_name = "Flask"
description = "A flask for drink transportation. You'll need to supply your own beverage though."
path = /obj/item/reagent_containers/food/drinks/flask/barflask
/datum/gear/mug/department
subtype_path = /datum/gear/mug/department
main_typepath = /datum/gear/mug/department
sort_category = "Mugs"
subtype_cost_overlap = FALSE
subtype_selection_cost = FALSE
/datum/gear/mug/department/eng
display_name = "engineer coffee mug"
display_name = "Coffee mug, engineering"
description = "An engineer's coffee mug, emblazoned in the colors of the Engineering department."
allowed_roles = list("Chief Engineer", "Station Engineer", "Life Support Specialist")
path = /obj/item/reagent_containers/food/drinks/mug/eng
/datum/gear/mug/department/med
display_name = "doctor coffee mug"
display_name = "Coffee mug, medical"
description = "A doctor's coffee mug, emblazoned in the colors of the Medical department."
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Psychiatrist", "Paramedic", "Virologist", "Coroner")
path = /obj/item/reagent_containers/food/drinks/mug/med
/datum/gear/mug/department/sci
display_name = "scientist coffee mug"
display_name = "Coffee mug, science"
description = "A scientist's coffee mug, emblazoned in the colors of the Science department."
allowed_roles = list("Research Director", "Scientist", "Roboticist")
path = /obj/item/reagent_containers/food/drinks/mug/sci
/datum/gear/mug/department/sec
display_name = "officer coffee mug"
display_name = "Coffee mug, security"
description = "An officer's coffee mug, emblazoned in the colors of the Security department."
allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer", "Brig Physician", "Internal Affairs Agent")
path = /obj/item/reagent_containers/food/drinks/mug/sec
/datum/gear/mug/department/serv
display_name = "crewmember coffee mug"
display_name = "Coffee mug, service"
description = "A crewmember's coffee mug, emblazoned in the colors of the Service department."
path = /obj/item/reagent_containers/food/drinks/mug/serv