Adds a Pants slot (#19999)

Does what it says on the tin. Purely cosmetic for now. This is step
zero.

Basically, clothing is starting to get real bloated with a lot of
variants.
More pressingly, accessories as well, and we're probably going to get
accessories of accessories.
After seeing what's going on with arm guards, leg guards, plate carriers
and the like,
it's heading towards a really messy level of abstraction.

Hopefully this will nip it in the bud, so to speak.

I've also added the layering feature used in watches, so you can tuck in
your uniform in your pants, or your coat in your pants if you're so
inclined to.

This also means that in the near future, we'll finally have the ROLL
PANTS feature that has escaped us for so long.

For reviewers : 
This PR is majority legwork of simply adding the new pants slot in. Very
similar to my previous Wrist slot PR.
The rest is just changing the existing pants/skirts over to a new
loadout slot and changing paths.

---------

Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
This commit is contained in:
Wowzewow (Wezzy)
2024-11-15 19:41:09 +00:00
committed by GitHub
co-authored by Fluffy
parent d458941a1a
commit de81867784
78 changed files with 641 additions and 467 deletions
@@ -0,0 +1,110 @@
ABSTRACT_TYPE(/datum/gear/pants)
sort_category = "Skirts and Trousers" //wikipedia definition puts shorts under trousers category, so.
/datum/gear/pants/trousers
display_name = "pants and shorts selection"
description = "A selection of pants and shorts."
path = /obj/item/clothing/pants
/datum/gear/pants/trousers/New()
..()
var/list/pants = list()
// Pants
pants["jeans"] = /obj/item/clothing/pants/jeans
pants["classic jeans"] = /obj/item/clothing/pants/classic
pants["mustang jeans"] = /obj/item/clothing/pants/mustang
pants["black jeans"] = /obj/item/clothing/pants/jeansblack
pants["white pants"] = /obj/item/clothing/pants/white
pants["black pants"] = /obj/item/clothing/pants/black
pants["red pants"] = /obj/item/clothing/pants/red
pants["tan pants"] = /obj/item/clothing/pants/tan
pants["khaki pants"] = /obj/item/clothing/pants/khaki
pants["high visibility pants"] = /obj/item/clothing/pants/highvis
pants["high visibility pants, alt"] = /obj/item/clothing/pants/highvis_alt
pants["track pants"] = /obj/item/clothing/pants/track
pants["blue track pants"] = /obj/item/clothing/pants/track/blue
pants["green track pants"] = /obj/item/clothing/pants/track/green
pants["white track pants"] = /obj/item/clothing/pants/track/white
pants["red track pants"] = /obj/item/clothing/pants/track/red
pants["camo pants"] = /obj/item/clothing/pants/camo
pants["tacticool pants"] = /obj/item/clothing/pants/tacticool
pants["designer jeans"] = /obj/item/clothing/pants/designer
pants["ripped jeans"] = /obj/item/clothing/pants/ripped
pants["black ripped jeans"] = /obj/item/clothing/pants/blackripped
// Shorts
pants["black shorts"] = /obj/item/clothing/pants/shorts/black
pants["black short shorts"] = /obj/item/clothing/pants/shorts/black/short
pants["khaki shorts"] = /obj/item/clothing/pants/shorts/khaki
pants["khaki short shorts"] = /obj/item/clothing/pants/shorts/khaki/short
// Jeans Shorts
pants["jeans shorts"] = /obj/item/clothing/pants/shorts/jeans
pants["jeans short shorts"] = /obj/item/clothing/pants/shorts/jeans/short
pants["classic jeans shorts"] = /obj/item/clothing/pants/shorts/jeans/classic
pants["classic jeans short shorts"] = /obj/item/clothing/pants/shorts/jeans/classic/short
pants["mustang jeans shorts"] = /obj/item/clothing/pants/shorts/jeans/mustang
pants["mustang jeans short shorts"] = /obj/item/clothing/pants/shorts/jeans/mustang/short
pants["black jeans shorts"] = /obj/item/clothing/pants/shorts/jeans/black
pants["black jeans short shorts"] = /obj/item/clothing/pants/shorts/jeans/black/short
pants["grey jeans shorts"] = /obj/item/clothing/pants/shorts/jeans/grey
pants["grey jeans short shorts"] = /obj/item/clothing/pants/shorts/jeans/grey/short
// Athletic Shorts
pants["black athletic shorts"] = /obj/item/clothing/pants/shorts/athletic/black
pants["red athletic shorts"] = /obj/item/clothing/pants/shorts/athletic/red
pants["green athletic shorts"] = /obj/item/clothing/pants/shorts/athletic/green
pants["grey athletic shorts"] = /obj/item/clothing/pants/shorts/athletic/grey
pants["SCC-branded athletic shorts"] = /obj/item/clothing/pants/shorts/athletic/scc
gear_tweaks += new /datum/gear_tweak/path(pants)
/datum/gear/pants/colorpants
display_name = "pants and shorts selection (colourable)"
description = "A selection of colourable pants and shorts."
path = /obj/item/clothing/pants/dress
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
/datum/gear/pants/colorpants/New()
..()
var/list/colorpants = list()
// Pants
colorpants["dress pants"] = /obj/item/clothing/pants/dress
colorpants["dress pants, with belt"] = /obj/item/clothing/pants/dress/belt
colorpants["striped pants"] = /obj/item/clothing/pants/striped
colorpants["flared pants"] = /obj/item/clothing/pants/flared
colorpants["mustang jeans"] = /obj/item/clothing/pants/mustang/colourable
colorpants["tailored jeans"] = /obj/item/clothing/pants/tailoredjeans
// Shorts
colorpants["shorts"] = /obj/item/clothing/pants/shorts/colourable
colorpants["short shorts"] = /obj/item/clothing/pants/shorts/colourable/short
colorpants["athletic shorts"] = /obj/item/clothing/pants/shorts/athletic/colourable
gear_tweaks += new /datum/gear_tweak/path(colorpants)
/datum/gear/pants/skirt
display_name = "skirt selection"
description = "A selection of skirts."
path = /obj/item/clothing/pants/skirt
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
/datum/gear/pants/skirt/New()
..()
var/list/skirts = list()
skirts["casual skirt"] = /obj/item/clothing/pants/skirt
skirts["puffy skirt"] = /obj/item/clothing/pants/skirt/puffy
skirts["long skirt"] = /obj/item/clothing/pants/skirt/long
skirts["pencil skirt"] = /obj/item/clothing/pants/skirt/pencil
skirts["swept skirt"] = /obj/item/clothing/pants/skirt/swept
skirts["plaid skirt"] = /obj/item/clothing/pants/skirt/plaid
skirts["pleated skirt"] = /obj/item/clothing/pants/skirt/pleated
skirts["high skirt"] = /obj/item/clothing/pants/skirt/high
skirts["skater skirt"] = /obj/item/clothing/pants/skirt/skater
skirts["tube skirt"] = /obj/item/clothing/pants/skirt/tube
skirts["jumper skirt"] = /obj/item/clothing/pants/skirt/jumper
skirts["jumper dress"] = /obj/item/clothing/pants/skirt/jumper_highcut
skirts["long straight skirt"] = /obj/item/clothing/pants/skirt/straightlong
gear_tweaks += new /datum/gear_tweak/path(skirts)
@@ -49,30 +49,6 @@
path = /obj/item/clothing/under/color/colorable
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
/datum/gear/uniform/skirt
display_name = "skirt selection"
description = "A selection of skirts."
path = /obj/item/clothing/under/skirt
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
/datum/gear/uniform/skirt/New()
..()
var/list/skirts = list()
skirts["casual skirt"] = /obj/item/clothing/under/skirt
skirts["puffy skirt"] = /obj/item/clothing/under/skirt/puffy
skirts["long skirt"] = /obj/item/clothing/under/skirt/long
skirts["pencil skirt"] = /obj/item/clothing/under/skirt/pencil
skirts["swept skirt"] = /obj/item/clothing/under/skirt/swept
skirts["plaid skirt"] = /obj/item/clothing/under/skirt/plaid
skirts["pleated skirt"] = /obj/item/clothing/under/skirt/pleated
skirts["high skirt"] = /obj/item/clothing/under/skirt/high
skirts["skater skirt"] = /obj/item/clothing/under/skirt/skater
skirts["tube skirt"] = /obj/item/clothing/under/skirt/tube
skirts["jumper skirt"] = /obj/item/clothing/under/skirt/jumper
skirts["jumper dress"] = /obj/item/clothing/under/skirt/jumper_highcut
skirts["long straight skirt"] = /obj/item/clothing/under/skirt/straightlong
gear_tweaks += new /datum/gear_tweak/path(skirts)
/datum/gear/uniform/suit
display_name = "suit selection"
description = "A selection of formal suits."
@@ -165,90 +141,6 @@
bridgecrew["bridge crew uniform, san colettish, blue"] = /obj/item/clothing/under/rank/bridge_crew/sancolette/alt
gear_tweaks += new /datum/gear_tweak/path(bridgecrew)
/datum/gear/uniform/pants
display_name = "pants and shorts selection"
description = "A selection of pants and shorts."
path = /obj/item/clothing/under/pants
/datum/gear/uniform/pants/New()
..()
var/list/pants = list()
// Pants
pants["jeans"] = /obj/item/clothing/under/pants/jeans
pants["classic jeans"] = /obj/item/clothing/under/pants/classic
pants["mustang jeans"] = /obj/item/clothing/under/pants/mustang
pants["black jeans"] = /obj/item/clothing/under/pants/jeansblack
pants["white pants"] = /obj/item/clothing/under/pants/white
pants["black pants"] = /obj/item/clothing/under/pants/black
pants["red pants"] = /obj/item/clothing/under/pants/red
pants["tan pants"] = /obj/item/clothing/under/pants/tan
pants["khaki pants"] = /obj/item/clothing/under/pants/khaki
pants["high visibility pants"] = /obj/item/clothing/under/pants/highvis
pants["high visibility pants, alt"] = /obj/item/clothing/under/pants/highvis_alt
pants["track pants"] = /obj/item/clothing/under/pants/track
pants["blue track pants"] = /obj/item/clothing/under/pants/track/blue
pants["green track pants"] = /obj/item/clothing/under/pants/track/green
pants["white track pants"] = /obj/item/clothing/under/pants/track/white
pants["red track pants"] = /obj/item/clothing/under/pants/track/red
pants["camo pants"] = /obj/item/clothing/under/pants/camo
pants["tacticool pants"] = /obj/item/clothing/under/pants/tacticool
pants["designer jeans"] = /obj/item/clothing/under/pants/designer
pants["ripped jeans"] = /obj/item/clothing/under/pants/ripped
pants["black ripped jeans"] = /obj/item/clothing/under/pants/blackripped
// Shorts
pants["black shorts"] = /obj/item/clothing/under/shorts/black
pants["black short shorts"] = /obj/item/clothing/under/shorts/black/short
pants["khaki shorts"] = /obj/item/clothing/under/shorts/khaki
pants["khaki short shorts"] = /obj/item/clothing/under/shorts/khaki/short
// Jeans Shorts
pants["jeans shorts"] = /obj/item/clothing/under/shorts/jeans
pants["jeans short shorts"] = /obj/item/clothing/under/shorts/jeans/short
pants["classic jeans shorts"] = /obj/item/clothing/under/shorts/jeans/classic
pants["classic jeans short shorts"] = /obj/item/clothing/under/shorts/jeans/classic/short
pants["mustang jeans shorts"] = /obj/item/clothing/under/shorts/jeans/mustang
pants["mustang jeans short shorts"] = /obj/item/clothing/under/shorts/jeans/mustang/short
pants["black jeans shorts"] = /obj/item/clothing/under/shorts/jeans/black
pants["black jeans short shorts"] = /obj/item/clothing/under/shorts/jeans/black/short
pants["grey jeans shorts"] = /obj/item/clothing/under/shorts/jeans/grey
pants["grey jeans short shorts"] = /obj/item/clothing/under/shorts/jeans/grey/short
// Athletic Shorts
pants["black athletic shorts"] = /obj/item/clothing/under/shorts/athletic/black
pants["red athletic shorts"] = /obj/item/clothing/under/shorts/athletic/red
pants["green athletic shorts"] = /obj/item/clothing/under/shorts/athletic/green
pants["grey athletic shorts"] = /obj/item/clothing/under/shorts/athletic/grey
pants["SCC-branded athletic shorts"] = /obj/item/clothing/under/shorts/athletic/scc
gear_tweaks += new /datum/gear_tweak/path(pants)
/datum/gear/uniform/colorpants
display_name = "pants and shorts selection (colourable)"
description = "A selection of colourable pants and shorts."
path = /obj/item/clothing/under/pants/dress
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
/datum/gear/uniform/colorpants/New()
..()
var/list/colorpants = list()
// Pants
colorpants["dress pants"] = /obj/item/clothing/under/pants/dress
colorpants["dress pants, with belt"] = /obj/item/clothing/under/pants/dress/belt
colorpants["striped pants"] = /obj/item/clothing/under/pants/striped
colorpants["flared pants"] = /obj/item/clothing/under/pants/flared
colorpants["mustang jeans"] = /obj/item/clothing/under/pants/mustang/colourable
colorpants["tailored jeans"] = /obj/item/clothing/under/pants/tailoredjeans
// Shorts
colorpants["shorts"] = /obj/item/clothing/under/shorts/colourable
colorpants["short shorts"] = /obj/item/clothing/under/shorts/colourable/short
colorpants["athletic shorts"] = /obj/item/clothing/under/shorts/athletic/colourable
gear_tweaks += new /datum/gear_tweak/path(colorpants)
/datum/gear/uniform/turtleneck
display_name = "tacticool turtleneck"
path = /obj/item/clothing/under/syndicate/tacticool
@@ -47,7 +47,7 @@
GLOBAL_DATUM_INIT(gear_tweak_wrist_layer, /datum/gear_tweak/wrist_layer, new())
/datum/gear_tweak/wrist_layer
var/list/options = list(WRISTS_UNDER = WRISTS_LAYER_UNDER, WRISTS_OVER_UNIFORM = WRISTS_LAYER_UNIFORM, WRISTS_OVER_SUIT = WRISTS_LAYER_OVER)
var/list/options = list(WRISTS_UNDER = UNDER_UNIFORM_LAYER_WR, WRISTS_OVER_UNIFORM = ABOVE_UNIFORM_LAYER_WR, WRISTS_OVER_SUIT = ABOVE_SUIT_LAYER_WR)
/datum/gear_tweak/wrist_layer/get_contents(var/metadata)
return "Wrist Layer: [metadata]"
@@ -11,7 +11,7 @@
/datum/gear/uniform/offworlder/skirt
display_name = "CR skirt"
path = /obj/item/clothing/under/skirt/offworlder
path = /obj/item/clothing/pants/skirt/offworlder
/datum/gear/eyes/starshades
display_name = "starshades"
@@ -163,7 +163,7 @@ ABSTRACT_TYPE(/datum/gear/shoes/tajara)
uniform["nanotrasen overalls"] = /obj/item/clothing/under/tajaran/nt
uniform["matake priest garments"] = /obj/item/clothing/under/tajaran/matake
uniform["adhomian summerwear"] = /obj/item/clothing/under/tajaran/summer
uniform["adhomian summer pants"] = /obj/item/clothing/under/pants/tajaran
uniform["adhomian summer pants"] = /obj/item/clothing/pants/tajaran
uniform["machinist uniform"] = /obj/item/clothing/under/tajaran/mechanic
uniform["raakti shariim uniform"] = /obj/item/clothing/under/tajaran/raakti_shariim
uniform["a'lmariist laborer clothes"] = /obj/item/clothing/under/tajaran/dpra