Files
KanoandGitHub 9ee3663962 Adds various clothing shortcuts (#22507)
Changes:

- Added various clothing shortcuts. You can now Alt-Click to adjust
layers, Alt-Shift-Click to remove accessories, etc. on most clothings.
- Tweaked inventory HUD icon frames to process shortcut clicks
(Alt-Click and Shift-Alt-Click for now). This means you no longer have
to click specifically on item icons to use shortcuts.
  - Moved a block of code to where it belongs, minor code improvements.

There might cases where the new shortcuts collide with already present
snowflake shortcut interactions on certain items, i tweaked the ones i
stumbled into but there might be more
2026-05-27 15:39:40 +00:00

208 lines
6.3 KiB
Plaintext

//
// Pants
//
// Pants Parent Item
ABSTRACT_TYPE(/obj/item/clothing/pants)
name = "pants parent item"
desc = DESC_PARENT
icon = 'icons/obj/item/clothing/pants/pants.dmi'
species_sprite_adaption_type = WORN_PANTS
slot_flags = SLOT_PANTS
contained_sprite = TRUE
body_parts_covered = LOWER_TORSO | LEGS
var/mob_wear_layer = ABOVE_UNIFORM_LAYER_PA
gender = PLURAL // some pants vs. a skirt
valid_accessory_slots = list(ACCESSORY_SLOT_PANTS)
center_of_mass = list("x" = 16,"y" = 8)
sprite_sheets = list(
BODYTYPE_VAURCA_BULWARK = 'icons/mob/species/bulwark/pants.dmi' // depreceated, only because bulwarks are 64x64
)
/obj/item/clothing/pants/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot)
var/image/I = ..()
if(slot == slot_l_hand_str || slot == slot_r_hand_str)
for(var/obj/item/clothing/accessory/A in accessories)
A.accessory_mob_overlay.ClearOverlays()
else
for(var/obj/item/clothing/accessory/A in accessories)
var/image/accessory_image = A.get_accessory_mob_overlay(H, FALSE, src)
I.AddOverlays(accessory_image)
if(blood_DNA && slot != slot_l_hand_str && slot != slot_r_hand_str)
var/image/bloodsies = image(icon = H.species.blood_mask, icon_state = "pantsblood")
bloodsies.color = blood_color
I.AddOverlays(bloodsies)
return I
/obj/item/clothing/pants/update_clothing_icon()
if (ismob(src.loc))
var/mob/M = src.loc
M.update_inv_pants()
/obj/item/clothing/pants/AltClick(mob/user)
if(use_check_and_message(user))
return
handle_change_layer(user)
/obj/item/clothing/pants/verb/change_layer()
set category = "Object.Equipped"
set name = "Change Pants Layer"
set src in usr
handle_change_layer(usr)
/obj/item/clothing/pants/proc/handle_change_layer(mob/user)
var/list/options = list("Under Uniform" = UNDER_UNIFORM_LAYER_PA, "Over Uniform" = ABOVE_UNIFORM_LAYER_PA, "Over Suit" = ABOVE_SUIT_LAYER_PA)
var/new_layer = tgui_input_list(user, "Position Pants", "Pants Layer", options)
if(new_layer)
mob_wear_layer = options[new_layer]
to_chat(user, SPAN_NOTICE("\The [src] will now layer [new_layer]."))
update_clothing_icon()
/********** Pants Start **********/
// Pants
/obj/item/clothing/pants/black
name = "black pants"
desc = "A pair of plain black pants."
icon_state = "blackpants"
item_state = "blackpants"
/obj/item/clothing/pants/camo
name = "camouflage pants"
desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station."
icon_state = "camopants"
item_state = "camopants"
/obj/item/clothing/pants/dress
name = "dress pants"
desc = "A pair of suit trousers. The rest of the outfit can't have gone far."
icon_state = "dresspants"
item_state = "dresspants"
/obj/item/clothing/pants/dress/belt
name = "dress pants"
desc = "A pair of suit trousers. Comes with a belt, to secure your burdens."
build_from_parts = TRUE
worn_overlay = "belt"
/obj/item/clothing/pants/cargo
name = "cargo pants"
desc = "A pair of pants with large pockets."
icon_state = "cargopants"
item_state = "cargopants"
/obj/item/clothing/pants/striped
name = "striped pants"
desc = "A pair of striped pants. Typically seen among privateers."
icon_state = "stripedpants"
item_state = "stripedpants"
/obj/item/clothing/pants/tacticool
name = "tacticool pants"
desc = "A pair of rugged camo pants. Pairs well with canned rations and an SKS."
icon_state = "tacticoolpants"
item_state = "tacticoolpants"
/obj/item/clothing/pants/flared
name = "flared pants"
desc = "The peak of Biesellite fashion, these pants are flared at the ankle."
icon_state = "flaredpants"
item_state = "flaredpants"
contained_sprite = TRUE
/********** Pants End **********/
/********** Jeans Start **********/
// Jeans
/obj/item/clothing/pants/jeans
name = "jeans"
desc = "A nondescript pair of tough blue jeans."
icon_state = "jeans"
item_state = "jeans"
/obj/item/clothing/pants/classic
name = "classic jeans"
desc = "A pair of classic jeans."
icon_state = "jeansclassic"
item_state = "jeansclassic"
/obj/item/clothing/pants/mustang
name = "mustang jeans"
desc = "Made in the finest space jeans factory this side of Tau Ceti."
icon_state = "jeansmustang"
item_state = "jeansmustang"
/obj/item/clothing/pants/mustang/colourable
name = "mustang jeans"
desc = "Made in the finest space jeans factory this side of Tau Ceti."
icon_state = "mustangcolour"
item_state = "mustangcolour"
build_from_parts = TRUE
worn_overlay = "belt"
/obj/item/clothing/pants/jeansblack
name = "black jeans"
desc = "A pair of black jeans."
icon_state = "jeansblack"
item_state = "jeansblack"
/obj/item/clothing/pants/designer
name = "designer jeans"
desc = "Dark denim jeans carefully distressed to perfection. They're not as rugged as they look."
icon_state = "designer_jeans"
item_state = "designer_jeans"
/obj/item/clothing/pants/tailoredjeans
name = "tailored jeans"
desc = "Close fitting denim jeans carefully distressed to perfection. They're not as rugged as they look."
icon_state = "tailored_jeans"
item_state = "tailored_jeans"
build_from_parts = TRUE
worn_overlay = "belt"
/obj/item/clothing/pants/ripped
name = "ripped jeans"
desc = "A pair of ripped denim jeans. Probably sold for more than they're worth."
icon_state = "jeansripped"
item_state = "jeansripped"
body_parts_covered = LOWER_TORSO
/obj/item/clothing/pants/blackripped
name = "black ripped jeans"
desc = "A pair of ripped black jeans. The brown belt is an interesting touch."
icon_state = "jeansblackripped"
item_state = "jeansblackripped"
body_parts_covered = LOWER_TORSO
/********** Jeans End **********/
/********** Track Pants Start **********/
// Track Pants
/obj/item/clothing/pants/track
name = "track pants"
desc = "Track pants, perfect for squatting."
icon = 'icons/obj/tracksuit.dmi'
icon_state = "trackpants"
item_state = "trackpants"
/obj/item/clothing/pants/track/blue
name = "blue track pants"
icon_state = "trackpantsblue"
item_state = "trackpantsblue"
/obj/item/clothing/pants/track/green
name = "green track pants"
icon_state = "trackpantsgreen"
item_state = "trackpantsgreen"
/obj/item/clothing/pants/track/white
name = "white track pants"
icon_state = "trackpantswhite"
item_state = "trackpantswhite"
/obj/item/clothing/pants/track/red
name = "red track pants"
icon_state = "trackpantsred"
item_state = "trackpantsred"
/********** Track Pants End **********/