Files
Bubberstation/code/datums/sprite_accessories.dm
ChungusGamer666 614fab11b2 SPECIES NUKING 2023: Head flags 2: Electric Boogaloo (#76298)
## About The Pull Request

Continues the work I started on
https://github.com/tgstation/tgstation/pull/76074
Fixes https://github.com/tgstation/tgstation/issues/73782

Implements a bunch of wrapper procs for hair style, facial hair style,
etc etc the whole nine yards.
Fixes many issues, especially with gradients because I did sloppy tired
code that didn't work there.
Makes head/get_limb_icon() not a disgusting mess (well, at least makes
it less of a disgusting mess).

## Why It's Good For The Game

Actually makes hair and lips depend entirely on the bodypart.

## Changelog

🆑
refactor: Head rendering code has been updated significantly... Again.
Please report any issues with hair, facial hair, lipstick and such.
/🆑
2023-06-29 13:53:31 +00:00

2367 lines
55 KiB
Plaintext

/*
Hello and welcome to sprite_accessories: For sprite accessories, such as hair,
facial hair, and possibly tattoos and stuff somewhere along the line. This file is
intended to be friendly for people with little to no actual coding experience.
The process of adding in new hairstyles has been made pain-free and easy to do.
Enjoy! - Doohl
Notice: This all gets automatically compiled in a list in dna.dm, so you do not
have to define any UI values for sprite accessories manually for hair and facial
hair. Just add in new hair types and the game will naturally adapt.
!!WARNING!!: changing existing hair information can be VERY hazardous to savefiles,
to the point where you may completely corrupt a server's savefiles. Please refrain
from doing this unless you absolutely know what you are doing, and have defined a
conversion in savefile.dm
*/
/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female, add_blank)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked
if(!istype(L))
L = list()
if(!istype(male))
male = list()
if(!istype(female))
female = list()
for(var/path in subtypesof(prototype))
var/datum/sprite_accessory/D = new path()
if(D.icon_state)
L[D.name] = D
else
L += D.name
switch(D.gender)
if(MALE)
male += D.name
if(FEMALE)
female += D.name
else
male += D.name
female += D.name
if(add_blank)
L[SPRITE_ACCESSORY_NONE] = new /datum/sprite_accessory/blank
return L
/datum/sprite_accessory
/// The icon file the accessory is located in.
var/icon
/// The icon_state of the accessory.
var/icon_state
/// The preview name of the accessory.
var/name
/// Determines if the accessory will be skipped or included in random hair generations.
var/gender = NEUTER
/// Something that can be worn by either gender, but looks different on each.
var/gender_specific
/// Determines if the accessory will be skipped by color preferences.
var/use_static
/**
* Currently only used by mutantparts so don't worry about hair and stuff.
* This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none.
*/
var/color_src = MUTANT_COLOR
/// Decides if this sprite has an "inner" part, such as the fleshy parts on ears.
var/hasinner = FALSE
/// Is this part locked from roundstart selection? Used for parts that apply effects.
var/locked = FALSE
/// Should we center the sprite?
var/center = FALSE
/// The width of the sprite in pixels. Used to center it if necessary.
var/dimension_x = 32
/// The height of the sprite in pixels. Used to center it if necessary.
var/dimension_y = 32
/// Should this sprite block emissives?
var/em_block = FALSE
/datum/sprite_accessory/blank
name = "None"
icon_state = "None"
//////////////////////
// Hair Definitions //
//////////////////////
/datum/sprite_accessory/hair
icon = 'icons/mob/species/human/human_face.dmi' // default icon for all hairs
// please make sure they're sorted alphabetically and, where needed, categorized
// try to capitalize the names please~
// try to spell
// you do not need to define _s or _l sub-states, game automatically does this for you
/datum/sprite_accessory/hair/afro
name = "Afro"
icon_state = "hair_afro"
/datum/sprite_accessory/hair/afro2
name = "Afro 2"
icon_state = "hair_afro2"
/datum/sprite_accessory/hair/afro_large
name = "Afro (Large)"
icon_state = "hair_bigafro"
/datum/sprite_accessory/hair/allthefuzz
name = "All The Fuzz"
icon_state = "hair_allthefuzz"
/datum/sprite_accessory/hair/antenna
name = "Ahoge"
icon_state = "hair_antenna"
/datum/sprite_accessory/hair/bald
name = "Bald"
icon_state = null
/datum/sprite_accessory/hair/balding
name = "Balding Hair"
icon_state = "hair_e"
/datum/sprite_accessory/hair/bedhead
name = "Bedhead"
icon_state = "hair_bedhead"
/datum/sprite_accessory/hair/bedhead2
name = "Bedhead 2"
icon_state = "hair_bedheadv2"
/datum/sprite_accessory/hair/bedhead3
name = "Bedhead 3"
icon_state = "hair_bedheadv3"
/datum/sprite_accessory/hair/bedheadv4
name = "Bedhead 4x"
icon_state = "hair_bedheadv4"
/datum/sprite_accessory/hair/bedheadlong
name = "Long Bedhead"
icon_state = "hair_long_bedhead"
/datum/sprite_accessory/hair/bedheadfloorlength
name = "Floorlength Bedhead"
icon_state = "hair_floorlength_bedhead"
/datum/sprite_accessory/hair/badlycut
name = "Shorter Long Bedhead"
icon_state = "hair_verybadlycut"
/datum/sprite_accessory/hair/beehive
name = "Beehive"
icon_state = "hair_beehive"
/datum/sprite_accessory/hair/beehive2
name = "Beehive 2"
icon_state = "hair_beehivev2"
/datum/sprite_accessory/hair/bob
name = "Bob Hair"
icon_state = "hair_bob"
/datum/sprite_accessory/hair/bob2
name = "Bob Hair 2"
icon_state = "hair_bob2"
/datum/sprite_accessory/hair/bob3
name = "Bob Hair 3"
icon_state = "hair_bobcut"
/datum/sprite_accessory/hair/bob4
name = "Bob Hair 4"
icon_state = "hair_bob4"
/datum/sprite_accessory/hair/bobcurl
name = "Bobcurl"
icon_state = "hair_bobcurl"
/datum/sprite_accessory/hair/boddicker
name = "Boddicker"
icon_state = "hair_boddicker"
/datum/sprite_accessory/hair/bowlcut
name = "Bowlcut"
icon_state = "hair_bowlcut"
/datum/sprite_accessory/hair/bowlcut2
name = "Bowlcut 2"
icon_state = "hair_bowlcut2"
/datum/sprite_accessory/hair/braid
name = "Braid (Floorlength)"
icon_state = "hair_braid"
/datum/sprite_accessory/hair/braided
name = "Braided"
icon_state = "hair_braided"
/datum/sprite_accessory/hair/front_braid
name = "Braided Front"
icon_state = "hair_braidfront"
/datum/sprite_accessory/hair/not_floorlength_braid
name = "Braid (High)"
icon_state = "hair_braid2"
/datum/sprite_accessory/hair/lowbraid
name = "Braid (Low)"
icon_state = "hair_hbraid"
/datum/sprite_accessory/hair/shortbraid
name = "Braid (Short)"
icon_state = "hair_shortbraid"
/datum/sprite_accessory/hair/braidtail
name = "Braided Tail"
icon_state = "hair_braidtail"
/datum/sprite_accessory/hair/bun
name = "Bun Head"
icon_state = "hair_bun"
/datum/sprite_accessory/hair/bun2
name = "Bun Head 2"
icon_state = "hair_bunhead2"
/datum/sprite_accessory/hair/bun3
name = "Bun Head 3"
icon_state = "hair_bun3"
/datum/sprite_accessory/hair/largebun
name = "Bun (Large)"
icon_state = "hair_largebun"
/datum/sprite_accessory/hair/manbun
name = "Bun (Manbun)"
icon_state = "hair_manbun"
/datum/sprite_accessory/hair/tightbun
name = "Bun (Tight)"
icon_state = "hair_tightbun"
/datum/sprite_accessory/hair/business
name = "Business Hair"
icon_state = "hair_business"
/datum/sprite_accessory/hair/business2
name = "Business Hair 2"
icon_state = "hair_business2"
/datum/sprite_accessory/hair/business3
name = "Business Hair 3"
icon_state = "hair_business3"
/datum/sprite_accessory/hair/business4
name = "Business Hair 4"
icon_state = "hair_business4"
/datum/sprite_accessory/hair/buzz
name = "Buzzcut"
icon_state = "hair_buzzcut"
/datum/sprite_accessory/hair/chinbob
name = "Chin-Length Bob Cut"
icon_state = "hair_chinbob"
/datum/sprite_accessory/hair/comet
name = "Comet"
icon_state = "hair_comet"
/datum/sprite_accessory/hair/cia
name = "CIA"
icon_state = "hair_cia"
/datum/sprite_accessory/hair/coffeehouse
name = "Coffee House"
icon_state = "hair_coffeehouse"
/datum/sprite_accessory/hair/combover
name = "Combover"
icon_state = "hair_combover"
/datum/sprite_accessory/hair/cornrows1
name = "Cornrows"
icon_state = "hair_cornrows"
/datum/sprite_accessory/hair/cornrows2
name = "Cornrows 2"
icon_state = "hair_cornrows2"
/datum/sprite_accessory/hair/cornrowbun
name = "Cornrow Bun"
icon_state = "hair_cornrowbun"
/datum/sprite_accessory/hair/cornrowbraid
name = "Cornrow Braid"
icon_state = "hair_cornrowbraid"
/datum/sprite_accessory/hair/cornrowdualtail
name = "Cornrow Tail"
icon_state = "hair_cornrowtail"
/datum/sprite_accessory/hair/crew
name = "Crewcut"
icon_state = "hair_crewcut"
/datum/sprite_accessory/hair/curls
name = "Curls"
icon_state = "hair_curls"
/datum/sprite_accessory/hair/cut
name = "Cut Hair"
icon_state = "hair_c"
/datum/sprite_accessory/hair/dandpompadour
name = "Dandy Pompadour"
icon_state = "hair_dandypompadour"
/datum/sprite_accessory/hair/devillock
name = "Devil Lock"
icon_state = "hair_devilock"
/datum/sprite_accessory/hair/doublebun
name = "Double Bun"
icon_state = "hair_doublebun"
/datum/sprite_accessory/hair/dreadlocks
name = "Dreadlocks"
icon_state = "hair_dreads"
/datum/sprite_accessory/hair/drillhair
name = "Drillruru"
icon_state = "hair_drillruru"
/datum/sprite_accessory/hair/drillhairextended
name = "Drill Hair (Extended)"
icon_state = "hair_drillhairextended"
/datum/sprite_accessory/hair/emo
name = "Emo"
icon_state = "hair_emo"
/datum/sprite_accessory/hair/emofrine
name = "Emo Fringe"
icon_state = "hair_emofringe"
/datum/sprite_accessory/hair/nofade
name = "Fade (None)"
icon_state = "hair_nofade"
/datum/sprite_accessory/hair/highfade
name = "Fade (High)"
icon_state = "hair_highfade"
/datum/sprite_accessory/hair/medfade
name = "Fade (Medium)"
icon_state = "hair_medfade"
/datum/sprite_accessory/hair/lowfade
name = "Fade (Low)"
icon_state = "hair_lowfade"
/datum/sprite_accessory/hair/baldfade
name = "Fade (Bald)"
icon_state = "hair_baldfade"
/datum/sprite_accessory/hair/feather
name = "Feather"
icon_state = "hair_feather"
/datum/sprite_accessory/hair/father
name = "Father"
icon_state = "hair_father"
/datum/sprite_accessory/hair/sargeant
name = "Flat Top"
icon_state = "hair_sargeant"
/datum/sprite_accessory/hair/flair
name = "Flair"
icon_state = "hair_flair"
/datum/sprite_accessory/hair/bigflattop
name = "Flat Top (Big)"
icon_state = "hair_bigflattop"
/datum/sprite_accessory/hair/flow_hair
name = "Flow Hair"
icon_state = "hair_f"
/datum/sprite_accessory/hair/gelled
name = "Gelled Back"
icon_state = "hair_gelled"
/datum/sprite_accessory/hair/gentle
name = "Gentle"
icon_state = "hair_gentle"
/datum/sprite_accessory/hair/halfbang
name = "Half-banged Hair"
icon_state = "hair_halfbang"
/datum/sprite_accessory/hair/halfbang2
name = "Half-banged Hair 2"
icon_state = "hair_halfbang2"
/datum/sprite_accessory/hair/halfshaved
name = "Half-shaved"
icon_state = "hair_halfshaved"
/datum/sprite_accessory/hair/hedgehog
name = "Hedgehog Hair"
icon_state = "hair_hedgehog"
/datum/sprite_accessory/hair/himecut
name = "Hime Cut"
icon_state = "hair_himecut"
/datum/sprite_accessory/hair/himecut2
name = "Hime Cut 2"
icon_state = "hair_himecut2"
/datum/sprite_accessory/hair/shorthime
name = "Hime Cut (Short)"
icon_state = "hair_shorthime"
/datum/sprite_accessory/hair/himeup
name = "Hime Updo"
icon_state = "hair_himeup"
/datum/sprite_accessory/hair/hitop
name = "Hitop"
icon_state = "hair_hitop"
/datum/sprite_accessory/hair/jade
name = "Jade"
icon_state = "hair_jade"
/datum/sprite_accessory/hair/jensen
name = "Jensen Hair"
icon_state = "hair_jensen"
/datum/sprite_accessory/hair/joestar
name = "Joestar"
icon_state = "hair_joestar"
/datum/sprite_accessory/hair/keanu
name = "Keanu Hair"
icon_state = "hair_keanu"
/datum/sprite_accessory/hair/kusangi
name = "Kusanagi Hair"
icon_state = "hair_kusanagi"
/datum/sprite_accessory/hair/long
name = "Long Hair 1"
icon_state = "hair_long"
/datum/sprite_accessory/hair/long2
name = "Long Hair 2"
icon_state = "hair_long2"
/datum/sprite_accessory/hair/long3
name = "Long Hair 3"
icon_state = "hair_long3"
/datum/sprite_accessory/hair/long_over_eye
name = "Long Over Eye"
icon_state = "hair_longovereye"
/datum/sprite_accessory/hair/longbangs
name = "Long Bangs"
icon_state = "hair_lbangs"
/datum/sprite_accessory/hair/longemo
name = "Long Emo"
icon_state = "hair_longemo"
/datum/sprite_accessory/hair/longfringe
name = "Long Fringe"
icon_state = "hair_longfringe"
/datum/sprite_accessory/hair/sidepartlongalt
name = "Long Side Part"
icon_state = "hair_longsidepart"
/datum/sprite_accessory/hair/megaeyebrows
name = "Mega Eyebrows"
icon_state = "hair_megaeyebrows"
/datum/sprite_accessory/hair/messy
name = "Messy"
icon_state = "hair_messy"
/datum/sprite_accessory/hair/modern
name = "Modern"
icon_state = "hair_modern"
/datum/sprite_accessory/hair/mohawk
name = "Mohawk"
icon_state = "hair_d"
/datum/sprite_accessory/hair/nitori
name = "Nitori"
icon_state = "hair_nitori"
/datum/sprite_accessory/hair/reversemohawk
name = "Mohawk (Reverse)"
icon_state = "hair_reversemohawk"
/datum/sprite_accessory/hair/shavedmohawk
name = "Mohawk (Shaved)"
icon_state = "hair_shavedmohawk"
/datum/sprite_accessory/hair/unshavenmohawk
name = "Mohawk (Unshaven)"
icon_state = "hair_unshaven_mohawk"
/datum/sprite_accessory/hair/mulder
name = "Mulder"
icon_state = "hair_mulder"
/datum/sprite_accessory/hair/odango
name = "Odango"
icon_state = "hair_odango"
/datum/sprite_accessory/hair/ombre
name = "Ombre"
icon_state = "hair_ombre"
/datum/sprite_accessory/hair/oneshoulder
name = "One Shoulder"
icon_state = "hair_oneshoulder"
/datum/sprite_accessory/hair/over_eye
name = "Over Eye"
icon_state = "hair_shortovereye"
/datum/sprite_accessory/hair/hair_overeyetwo
name = "Over Eye 2"
icon_state = "hair_overeyetwo"
/datum/sprite_accessory/hair/oxton
name = "Oxton"
icon_state = "hair_oxton"
/datum/sprite_accessory/hair/parted
name = "Parted"
icon_state = "hair_parted"
/datum/sprite_accessory/hair/partedside
name = "Parted (Side)"
icon_state = "hair_part"
/datum/sprite_accessory/hair/kagami
name = "Pigtails"
icon_state = "hair_kagami"
/datum/sprite_accessory/hair/pigtail
name = "Pigtails 2"
icon_state = "hair_pigtails"
/datum/sprite_accessory/hair/pigtail2
name = "Pigtails 3"
icon_state = "hair_pigtails2"
/datum/sprite_accessory/hair/pixie
name = "Pixie Cut"
icon_state = "hair_pixie"
/datum/sprite_accessory/hair/pompadour
name = "Pompadour"
icon_state = "hair_pompadour"
/datum/sprite_accessory/hair/bigpompadour
name = "Pompadour (Big)"
icon_state = "hair_bigpompadour"
/datum/sprite_accessory/hair/ponytail1
name = "Ponytail"
icon_state = "hair_ponytail"
/datum/sprite_accessory/hair/ponytail2
name = "Ponytail 2"
icon_state = "hair_ponytail2"
/datum/sprite_accessory/hair/ponytail3
name = "Ponytail 3"
icon_state = "hair_ponytail3"
/datum/sprite_accessory/hair/ponytail4
name = "Ponytail 4"
icon_state = "hair_ponytail4"
/datum/sprite_accessory/hair/ponytail5
name = "Ponytail 5"
icon_state = "hair_ponytail5"
/datum/sprite_accessory/hair/ponytail6
name = "Ponytail 6"
icon_state = "hair_ponytail6"
/datum/sprite_accessory/hair/ponytail7
name = "Ponytail 7"
icon_state = "hair_ponytail7"
/datum/sprite_accessory/hair/highponytail
name = "Ponytail (High)"
icon_state = "hair_highponytail"
/datum/sprite_accessory/hair/stail
name = "Ponytail (Short)"
icon_state = "hair_stail"
/datum/sprite_accessory/hair/longponytail
name = "Ponytail (Long)"
icon_state = "hair_longstraightponytail"
/datum/sprite_accessory/hair/countryponytail
name = "Ponytail (Country)"
icon_state = "hair_country"
/datum/sprite_accessory/hair/fringetail
name = "Ponytail (Fringe)"
icon_state = "hair_fringetail"
/datum/sprite_accessory/hair/sidetail
name = "Ponytail (Side)"
icon_state = "hair_sidetail"
/datum/sprite_accessory/hair/sidetail2
name = "Ponytail (Side) 2"
icon_state = "hair_sidetail2"
/datum/sprite_accessory/hair/sidetail3
name = "Ponytail (Side) 3"
icon_state = "hair_sidetail3"
/datum/sprite_accessory/hair/sidetail4
name = "Ponytail (Side) 4"
icon_state = "hair_sidetail4"
/datum/sprite_accessory/hair/spikyponytail
name = "Ponytail (Spiky)"
icon_state = "hair_spikyponytail"
/datum/sprite_accessory/hair/poofy
name = "Poofy"
icon_state = "hair_poofy"
/datum/sprite_accessory/hair/quiff
name = "Quiff"
icon_state = "hair_quiff"
/datum/sprite_accessory/hair/ronin
name = "Ronin"
icon_state = "hair_ronin"
/datum/sprite_accessory/hair/shaved
name = "Shaved"
icon_state = "hair_shaved"
/datum/sprite_accessory/hair/shavedpart
name = "Shaved Part"
icon_state = "hair_shavedpart"
/datum/sprite_accessory/hair/shortbangs
name = "Short Bangs"
icon_state = "hair_shortbangs"
/datum/sprite_accessory/hair/short
name = "Short Hair"
icon_state = "hair_a"
/datum/sprite_accessory/hair/shorthair2
name = "Short Hair 2"
icon_state = "hair_shorthair2"
/datum/sprite_accessory/hair/shorthair3
name = "Short Hair 3"
icon_state = "hair_shorthair3"
/datum/sprite_accessory/hair/shorthair4
name = "Short Hair 4"
icon_state = "hair_d"
/datum/sprite_accessory/hair/shorthair5
name = "Short Hair 5"
icon_state = "hair_e"
/datum/sprite_accessory/hair/shorthair6
name = "Short Hair 6"
icon_state = "hair_f"
/datum/sprite_accessory/hair/shorthair7
name = "Short Hair 7"
icon_state = "hair_shorthairg"
/datum/sprite_accessory/hair/shorthaireighties
name = "Short Hair 80s"
icon_state = "hair_80s"
/datum/sprite_accessory/hair/rosa
name = "Short Hair Rosa"
icon_state = "hair_rosa"
/datum/sprite_accessory/hair/shoulderlength
name = "Shoulder-length Hair"
icon_state = "hair_b"
/datum/sprite_accessory/hair/sidecut
name = "Sidecut"
icon_state = "hair_sidecut"
/datum/sprite_accessory/hair/skinhead
name = "Skinhead"
icon_state = "hair_skinhead"
/datum/sprite_accessory/hair/protagonist
name = "Slightly Long Hair"
icon_state = "hair_protagonist"
/datum/sprite_accessory/hair/spiky
name = "Spiky"
icon_state = "hair_spikey"
/datum/sprite_accessory/hair/spiky2
name = "Spiky 2"
icon_state = "hair_spiky"
/datum/sprite_accessory/hair/spiky3
name = "Spiky 3"
icon_state = "hair_spiky2"
/datum/sprite_accessory/hair/swept
name = "Swept Back Hair"
icon_state = "hair_swept"
/datum/sprite_accessory/hair/swept2
name = "Swept Back Hair 2"
icon_state = "hair_swept2"
/datum/sprite_accessory/hair/thinning
name = "Thinning"
icon_state = "hair_thinning"
/datum/sprite_accessory/hair/thinningfront
name = "Thinning (Front)"
icon_state = "hair_thinningfront"
/datum/sprite_accessory/hair/thinningrear
name = "Thinning (Rear)"
icon_state = "hair_thinningrear"
/datum/sprite_accessory/hair/topknot
name = "Topknot"
icon_state = "hair_topknot"
/datum/sprite_accessory/hair/tressshoulder
name = "Tress Shoulder"
icon_state = "hair_tressshoulder"
/datum/sprite_accessory/hair/trimmed
name = "Trimmed"
icon_state = "hair_trimmed"
/datum/sprite_accessory/hair/trimflat
name = "Trim Flat"
icon_state = "hair_trimflat"
/datum/sprite_accessory/hair/twintails
name = "Twintails"
icon_state = "hair_twintail"
/datum/sprite_accessory/hair/undercut
name = "Undercut"
icon_state = "hair_undercut"
/datum/sprite_accessory/hair/undercutleft
name = "Undercut Left"
icon_state = "hair_undercutleft"
/datum/sprite_accessory/hair/undercutright
name = "Undercut Right"
icon_state = "hair_undercutright"
/datum/sprite_accessory/hair/unkept
name = "Unkept"
icon_state = "hair_unkept"
/datum/sprite_accessory/hair/updo
name = "Updo"
icon_state = "hair_updo"
/datum/sprite_accessory/hair/longer
name = "Very Long Hair"
icon_state = "hair_vlong"
/datum/sprite_accessory/hair/longest
name = "Very Long Hair 2"
icon_state = "hair_longest"
/datum/sprite_accessory/hair/longest2
name = "Very Long Over Eye"
icon_state = "hair_longest2"
/datum/sprite_accessory/hair/veryshortovereye
name = "Very Short Over Eye"
icon_state = "hair_veryshortovereyealternate"
/datum/sprite_accessory/hair/longestalt
name = "Very Long with Fringe"
icon_state = "hair_vlongfringe"
/datum/sprite_accessory/hair/volaju
name = "Volaju"
icon_state = "hair_volaju"
/datum/sprite_accessory/hair/wisp
name = "Wisp"
icon_state = "hair_wisp"
/datum/sprite_accessory/hair/ziegler
name = "Ziegler"
icon_state = "hair_ziegler"
/*
/////////////////////////////////////
/ =---------------------------= /
/ == Gradient Hair Definitions == /
/ =---------------------------= /
/////////////////////////////////////
*/
/datum/sprite_accessory/gradient
icon = 'icons/mob/species/hair_gradients.dmi'
///whether this gradient applies to hair and/or beards. Some gradients do not work well on beards.
var/gradient_category = GRADIENT_APPLIES_TO_HAIR|GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/gradient/fadeup
name = "Fade Up"
icon_state = "fadeup"
/datum/sprite_accessory/gradient/fadedown
name = "Fade Down"
icon_state = "fadedown"
/datum/sprite_accessory/gradient/vertical_split
name = "Vertical Split"
icon_state = "vsplit"
/datum/sprite_accessory/gradient/horizontal_split
name = "Horizontal Split"
icon_state = "bottomflat"
/datum/sprite_accessory/gradient/reflected
name = "Reflected"
icon_state = "reflected_high"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/reflected/beard
icon_state = "reflected_high_beard"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/reflected_inverse
name = "Reflected Inverse"
icon_state = "reflected_inverse_high"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/reflected_inverse/beard
icon_state = "reflected_inverse_high_beard"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/wavy
name = "Wavy"
icon_state = "wavy"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/long_fade_up
name = "Long Fade Up"
icon_state = "long_fade_up"
/datum/sprite_accessory/gradient/long_fade_down
name = "Long Fade Down"
icon_state = "long_fade_down"
/datum/sprite_accessory/gradient/short_fade_up
name = "Short Fade Up"
icon_state = "short_fade_up"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/short_fade_up/beard
icon_state = "short_fade_down"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/short_fade_down
name = "Short Fade Down"
icon_state = "short_fade_down_beard"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/short_fade_down/beard
icon_state = "short_fade_down_beard"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/wavy_spike
name = "Spiked Wavy"
icon_state = "wavy_spiked"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/striped
name = "striped"
icon_state = "striped"
/datum/sprite_accessory/gradient/striped_vertical
name = "Striped Vertical"
icon_state = "striped_vertical"
/////////////////////////////
// Facial Hair Definitions //
/////////////////////////////
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/species/human/human_face.dmi'
gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P)
em_block = TRUE
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/facial_hair/abe
name = "Beard (Abraham Lincoln)"
icon_state = "facial_abe"
/datum/sprite_accessory/facial_hair/brokenman
name = "Beard (Broken Man)"
icon_state = "facial_brokenman"
/datum/sprite_accessory/facial_hair/chinstrap
name = "Beard (Chinstrap)"
icon_state = "facial_chin"
/datum/sprite_accessory/facial_hair/dwarf
name = "Beard (Dwarf)"
icon_state = "facial_dwarf"
/datum/sprite_accessory/facial_hair/fullbeard
name = "Beard (Full)"
icon_state = "facial_fullbeard"
/datum/sprite_accessory/facial_hair/croppedfullbeard
name = "Beard (Cropped Fullbeard)"
icon_state = "facial_croppedfullbeard"
/datum/sprite_accessory/facial_hair/gt
name = "Beard (Goatee)"
icon_state = "facial_gt"
/datum/sprite_accessory/facial_hair/hip
name = "Beard (Hipster)"
icon_state = "facial_hip"
/datum/sprite_accessory/facial_hair/jensen
name = "Beard (Jensen)"
icon_state = "facial_jensen"
/datum/sprite_accessory/facial_hair/neckbeard
name = "Beard (Neckbeard)"
icon_state = "facial_neckbeard"
/datum/sprite_accessory/facial_hair/vlongbeard
name = "Beard (Very Long)"
icon_state = "facial_wise"
/datum/sprite_accessory/facial_hair/muttonmus
name = "Beard (Muttonmus)"
icon_state = "facial_muttonmus"
/datum/sprite_accessory/facial_hair/martialartist
name = "Beard (Martial Artist)"
icon_state = "facial_martialartist"
/datum/sprite_accessory/facial_hair/chinlessbeard
name = "Beard (Chinless Beard)"
icon_state = "facial_chinlessbeard"
/datum/sprite_accessory/facial_hair/moonshiner
name = "Beard (Moonshiner)"
icon_state = "facial_moonshiner"
/datum/sprite_accessory/facial_hair/longbeard
name = "Beard (Long)"
icon_state = "facial_longbeard"
/datum/sprite_accessory/facial_hair/volaju
name = "Beard (Volaju)"
icon_state = "facial_volaju"
/datum/sprite_accessory/facial_hair/threeoclock
name = "Beard (Three o Clock Shadow)"
icon_state = "facial_3oclock"
/datum/sprite_accessory/facial_hair/fiveoclock
name = "Beard (Five o Clock Shadow)"
icon_state = "facial_fiveoclock"
/datum/sprite_accessory/facial_hair/fiveoclockm
name = "Beard (Five o Clock Moustache)"
icon_state = "facial_5oclockmoustache"
/datum/sprite_accessory/facial_hair/sevenoclock
name = "Beard (Seven o Clock Shadow)"
icon_state = "facial_7oclock"
/datum/sprite_accessory/facial_hair/sevenoclockm
name = "Beard (Seven o Clock Moustache)"
icon_state = "facial_7oclockmoustache"
/datum/sprite_accessory/facial_hair/moustache
name = "Moustache"
icon_state = "facial_moustache"
/datum/sprite_accessory/facial_hair/pencilstache
name = "Moustache (Pencilstache)"
icon_state = "facial_pencilstache"
/datum/sprite_accessory/facial_hair/smallstache
name = "Moustache (Smallstache)"
icon_state = "facial_smallstache"
/datum/sprite_accessory/facial_hair/walrus
name = "Moustache (Walrus)"
icon_state = "facial_walrus"
/datum/sprite_accessory/facial_hair/fu
name = "Moustache (Fu Manchu)"
icon_state = "facial_fumanchu"
/datum/sprite_accessory/facial_hair/hogan
name = "Moustache (Hulk Hogan)"
icon_state = "facial_hogan" //-Neek
/datum/sprite_accessory/facial_hair/selleck
name = "Moustache (Selleck)"
icon_state = "facial_selleck"
/datum/sprite_accessory/facial_hair/chaplin
name = "Moustache (Square)"
icon_state = "facial_chaplin"
/datum/sprite_accessory/facial_hair/vandyke
name = "Moustache (Van Dyke)"
icon_state = "facial_vandyke"
/datum/sprite_accessory/facial_hair/watson
name = "Moustache (Watson)"
icon_state = "facial_watson"
/datum/sprite_accessory/facial_hair/handlebar
name = "Moustache (Handlebar)"
icon_state = "facial_handlebar"
/datum/sprite_accessory/facial_hair/handlebar2
name = "Moustache (Handlebar 2)"
icon_state = "facial_handlebar2"
/datum/sprite_accessory/facial_hair/elvis
name = "Sideburns (Elvis)"
icon_state = "facial_elvis"
/datum/sprite_accessory/facial_hair/mutton
name = "Sideburns (Mutton Chops)"
icon_state = "facial_mutton"
/datum/sprite_accessory/facial_hair/sideburn
name = "Sideburns"
icon_state = "facial_sideburn"
/datum/sprite_accessory/facial_hair/shaved
name = "Shaved"
icon_state = null
gender = NEUTER
///////////////////////////
// Underwear Definitions //
///////////////////////////
/datum/sprite_accessory/underwear
icon = 'icons/mob/clothing/underwear.dmi'
use_static = FALSE
em_block = TRUE
//MALE UNDERWEAR
/datum/sprite_accessory/underwear/nude
name = "Nude"
icon_state = null
gender = NEUTER
/datum/sprite_accessory/underwear/male_briefs
name = "Briefs"
icon_state = "male_briefs"
gender = MALE
/datum/sprite_accessory/underwear/male_boxers
name = "Boxers"
icon_state = "male_boxers"
gender = MALE
/datum/sprite_accessory/underwear/male_stripe
name = "Striped Boxers"
icon_state = "male_stripe"
gender = MALE
/datum/sprite_accessory/underwear/male_midway
name = "Midway Boxers"
icon_state = "male_midway"
gender = MALE
/datum/sprite_accessory/underwear/male_longjohns
name = "Long Johns"
icon_state = "male_longjohns"
gender = MALE
/datum/sprite_accessory/underwear/male_kinky
name = "Jockstrap"
icon_state = "male_kinky"
gender = MALE
/datum/sprite_accessory/underwear/male_mankini
name = "Mankini"
icon_state = "male_mankini"
gender = MALE
/datum/sprite_accessory/underwear/male_hearts
name = "Hearts Boxers"
icon_state = "male_hearts"
gender = MALE
use_static = TRUE
/datum/sprite_accessory/underwear/male_commie
name = "Commie Boxers"
icon_state = "male_commie"
gender = MALE
use_static = TRUE
/datum/sprite_accessory/underwear/male_usastripe
name = "Freedom Boxers"
icon_state = "male_assblastusa"
gender = MALE
use_static = TRUE
/datum/sprite_accessory/underwear/male_uk
name = "UK Boxers"
icon_state = "male_uk"
gender = MALE
use_static = TRUE
//FEMALE UNDERWEAR
/datum/sprite_accessory/underwear/female_bikini
name = "Bikini"
icon_state = "female_bikini"
gender = FEMALE
/datum/sprite_accessory/underwear/female_lace
name = "Lace Bikini"
icon_state = "female_lace"
gender = FEMALE
/datum/sprite_accessory/underwear/female_bralette
name = "Bralette w/ Boyshorts"
icon_state = "female_bralette"
gender = FEMALE
/datum/sprite_accessory/underwear/female_sport
name = "Sports Bra w/ Boyshorts"
icon_state = "female_sport"
gender = FEMALE
/datum/sprite_accessory/underwear/female_thong
name = "Thong"
icon_state = "female_thong"
gender = FEMALE
/datum/sprite_accessory/underwear/female_strapless
name = "Strapless Bikini"
icon_state = "female_strapless"
gender = FEMALE
/datum/sprite_accessory/underwear/female_babydoll
name = "Babydoll"
icon_state = "female_babydoll"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_onepiece
name = "One-Piece Swimsuit"
icon_state = "swim_onepiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_strapless_onepiece
name = "Strapless One-Piece Swimsuit"
icon_state = "swim_strapless_onepiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_twopiece
name = "Two-Piece Swimsuit"
icon_state = "swim_twopiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_strapless_twopiece
name = "Strapless Two-Piece Swimsuit"
icon_state = "swim_strapless_twopiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_stripe
name = "Strapless Striped Swimsuit"
icon_state = "swim_stripe"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_halter
name = "Halter Swimsuit"
icon_state = "swim_halter"
gender = FEMALE
/datum/sprite_accessory/underwear/female_white_neko
name = "Neko Bikini (White)"
icon_state = "female_neko_white"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_black_neko
name = "Neko Bikini (Black)"
icon_state = "female_neko_black"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_commie
name = "Commie Bikini"
icon_state = "female_commie"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_usastripe
name = "Freedom Bikini"
icon_state = "female_assblastusa"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_uk
name = "UK Bikini"
icon_state = "female_uk"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_kinky
name = "Lingerie"
icon_state = "female_kinky"
gender = FEMALE
use_static = TRUE
////////////////////////////
// Undershirt Definitions //
////////////////////////////
/datum/sprite_accessory/undershirt
icon = 'icons/mob/clothing/underwear.dmi'
em_block = TRUE
/datum/sprite_accessory/undershirt/nude
name = "Nude"
icon_state = null
gender = NEUTER
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/undershirt/bluejersey
name = "Jersey (Blue)"
icon_state = "shirt_bluejersey"
gender = NEUTER
/datum/sprite_accessory/undershirt/redjersey
name = "Jersey (Red)"
icon_state = "shirt_redjersey"
gender = NEUTER
/datum/sprite_accessory/undershirt/bluepolo
name = "Polo Shirt (Blue)"
icon_state = "bluepolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/grayyellowpolo
name = "Polo Shirt (Gray-Yellow)"
icon_state = "grayyellowpolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/redpolo
name = "Polo Shirt (Red)"
icon_state = "redpolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/whitepolo
name = "Polo Shirt (White)"
icon_state = "whitepolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/alienshirt
name = "Shirt (Alien)"
icon_state = "shirt_alien"
gender = NEUTER
/datum/sprite_accessory/undershirt/mondmondjaja
name = "Shirt (Band)"
icon_state = "band"
gender = NEUTER
/datum/sprite_accessory/undershirt/shirt_black
name = "Shirt (Black)"
icon_state = "shirt_black"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshirt
name = "Shirt (Blue)"
icon_state = "shirt_blue"
gender = NEUTER
/datum/sprite_accessory/undershirt/clownshirt
name = "Shirt (Clown)"
icon_state = "shirt_clown"
gender = NEUTER
/datum/sprite_accessory/undershirt/commie
name = "Shirt (Commie)"
icon_state = "shirt_commie"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshirt
name = "Shirt (Green)"
icon_state = "shirt_green"
gender = NEUTER
/datum/sprite_accessory/undershirt/shirt_grey
name = "Shirt (Grey)"
icon_state = "shirt_grey"
gender = NEUTER
/datum/sprite_accessory/undershirt/ian
name = "Shirt (Ian)"
icon_state = "ian"
gender = NEUTER
/datum/sprite_accessory/undershirt/ilovent
name = "Shirt (I Love NT)"
icon_state = "ilovent"
gender = NEUTER
/datum/sprite_accessory/undershirt/lover
name = "Shirt (Lover)"
icon_state = "lover"
gender = NEUTER
/datum/sprite_accessory/undershirt/matroska
name = "Shirt (Matroska)"
icon_state = "matroska"
gender = NEUTER
/datum/sprite_accessory/undershirt/meat
name = "Shirt (Meat)"
icon_state = "shirt_meat"
gender = NEUTER
/datum/sprite_accessory/undershirt/nano
name = "Shirt (Nanotrasen)"
icon_state = "shirt_nano"
gender = NEUTER
/datum/sprite_accessory/undershirt/peace
name = "Shirt (Peace)"
icon_state = "peace"
gender = NEUTER
/datum/sprite_accessory/undershirt/pacman
name = "Shirt (Pogoman)"
icon_state = "pogoman"
gender = NEUTER
/datum/sprite_accessory/undershirt/question
name = "Shirt (Question)"
icon_state = "shirt_question"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirt
name = "Shirt (Red)"
icon_state = "shirt_red"
gender = NEUTER
/datum/sprite_accessory/undershirt/skull
name = "Shirt (Skull)"
icon_state = "shirt_skull"
gender = NEUTER
/datum/sprite_accessory/undershirt/ss13
name = "Shirt (SS13)"
icon_state = "shirt_ss13"
gender = NEUTER
/datum/sprite_accessory/undershirt/stripe
name = "Shirt (Striped)"
icon_state = "shirt_stripes"
gender = NEUTER
/datum/sprite_accessory/undershirt/tiedye
name = "Shirt (Tie-dye)"
icon_state = "shirt_tiedye"
gender = NEUTER
/datum/sprite_accessory/undershirt/uk
name = "Shirt (UK)"
icon_state = "uk"
gender = NEUTER
/datum/sprite_accessory/undershirt/usa
name = "Shirt (USA)"
icon_state = "shirt_assblastusa"
gender = NEUTER
/datum/sprite_accessory/undershirt/shirt_white
name = "Shirt (White)"
icon_state = "shirt_white"
gender = NEUTER
/datum/sprite_accessory/undershirt/blackshortsleeve
name = "Short-sleeved Shirt (Black)"
icon_state = "blackshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshortsleeve
name = "Short-sleeved Shirt (Blue)"
icon_state = "blueshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshortsleeve
name = "Short-sleeved Shirt (Green)"
icon_state = "greenshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/purpleshortsleeve
name = "Short-sleeved Shirt (Purple)"
icon_state = "purpleshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/whiteshortsleeve
name = "Short-sleeved Shirt (White)"
icon_state = "whiteshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/sports_bra
name = "Sports Bra"
icon_state = "sports_bra"
gender = NEUTER
/datum/sprite_accessory/undershirt/sports_bra2
name = "Sports Bra (Alt)"
icon_state = "sports_bra_alt"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshirtsport
name = "Sports Shirt (Blue)"
icon_state = "blueshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshirtsport
name = "Sports Shirt (Green)"
icon_state = "greenshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirtsport
name = "Sports Shirt (Red)"
icon_state = "redshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_black
name = "Tank Top (Black)"
icon_state = "tank_black"
gender = NEUTER
/datum/sprite_accessory/undershirt/tankfire
name = "Tank Top (Fire)"
icon_state = "tank_fire"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_grey
name = "Tank Top (Grey)"
icon_state = "tank_grey"
gender = NEUTER
/datum/sprite_accessory/undershirt/female_midriff
name = "Tank Top (Midriff)"
icon_state = "tank_midriff"
gender = FEMALE
/datum/sprite_accessory/undershirt/tank_red
name = "Tank Top (Red)"
icon_state = "tank_red"
gender = NEUTER
/datum/sprite_accessory/undershirt/tankstripe
name = "Tank Top (Striped)"
icon_state = "tank_stripes"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_white
name = "Tank Top (White)"
icon_state = "tank_white"
gender = NEUTER
/datum/sprite_accessory/undershirt/redtop
name = "Top (Red)"
icon_state = "redtop"
gender = FEMALE
/datum/sprite_accessory/undershirt/whitetop
name = "Top (White)"
icon_state = "whitetop"
gender = FEMALE
/datum/sprite_accessory/undershirt/tshirt_blue
name = "T-Shirt (Blue)"
icon_state = "blueshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/tshirt_green
name = "T-Shirt (Green)"
icon_state = "greenshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/tshirt_red
name = "T-Shirt (Red)"
icon_state = "redshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/yellowshirt
name = "T-Shirt (Yellow)"
icon_state = "yellowshirt"
gender = NEUTER
///////////////////////
// Socks Definitions //
///////////////////////
/datum/sprite_accessory/socks
icon = 'icons/mob/clothing/underwear.dmi'
em_block = TRUE
/datum/sprite_accessory/socks/nude
name = "Nude"
icon_state = null
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/socks/ace_knee
name = "Knee-high (Ace)"
icon_state = "ace_knee"
/datum/sprite_accessory/socks/bee_knee
name = "Knee-high (Bee)"
icon_state = "bee_knee"
/datum/sprite_accessory/socks/black_knee
name = "Knee-high (Black)"
icon_state = "black_knee"
/datum/sprite_accessory/socks/commie_knee
name = "Knee-High (Commie)"
icon_state = "commie_knee"
/datum/sprite_accessory/socks/usa_knee
name = "Knee-High (Freedom)"
icon_state = "assblastusa_knee"
/datum/sprite_accessory/socks/rainbow_knee
name = "Knee-high (Rainbow)"
icon_state = "rainbow_knee"
/datum/sprite_accessory/socks/striped_knee
name = "Knee-high (Striped)"
icon_state = "striped_knee"
/datum/sprite_accessory/socks/thin_knee
name = "Knee-high (Thin)"
icon_state = "thin_knee"
/datum/sprite_accessory/socks/trans_knee
name = "Knee-high (Trans)"
icon_state = "trans_knee"
/datum/sprite_accessory/socks/uk_knee
name = "Knee-High (UK)"
icon_state = "uk_knee"
/datum/sprite_accessory/socks/white_knee
name = "Knee-high (White)"
icon_state = "white_knee"
/datum/sprite_accessory/socks/fishnet_knee
name = "Knee-high (Fishnet)"
icon_state = "fishnet_knee"
/datum/sprite_accessory/socks/black_norm
name = "Normal (Black)"
icon_state = "black_norm"
/datum/sprite_accessory/socks/white_norm
name = "Normal (White)"
icon_state = "white_norm"
/datum/sprite_accessory/socks/pantyhose
name = "Pantyhose"
icon_state = "pantyhose"
/datum/sprite_accessory/socks/black_short
name = "Short (Black)"
icon_state = "black_short"
/datum/sprite_accessory/socks/white_short
name = "Short (White)"
icon_state = "white_short"
/datum/sprite_accessory/socks/stockings_blue
name = "Stockings (Blue)"
icon_state = "stockings_blue"
/datum/sprite_accessory/socks/stockings_cyan
name = "Stockings (Cyan)"
icon_state = "stockings_cyan"
/datum/sprite_accessory/socks/stockings_dpink
name = "Stockings (Dark Pink)"
icon_state = "stockings_dpink"
/datum/sprite_accessory/socks/stockings_green
name = "Stockings (Green)"
icon_state = "stockings_green"
/datum/sprite_accessory/socks/stockings_orange
name = "Stockings (Orange)"
icon_state = "stockings_orange"
/datum/sprite_accessory/socks/stockings_programmer
name = "Stockings (Programmer)"
icon_state = "stockings_lpink"
/datum/sprite_accessory/socks/stockings_purple
name = "Stockings (Purple)"
icon_state = "stockings_purple"
/datum/sprite_accessory/socks/stockings_yellow
name = "Stockings (Yellow)"
icon_state = "stockings_yellow"
/datum/sprite_accessory/socks/stockings_fishnet
name = "Stockings (Fishnet)"
icon_state = "fishnet_full"
/datum/sprite_accessory/socks/ace_thigh
name = "Thigh-high (Ace)"
icon_state = "ace_thigh"
/datum/sprite_accessory/socks/bee_thigh
name = "Thigh-high (Bee)"
icon_state = "bee_thigh"
/datum/sprite_accessory/socks/black_thigh
name = "Thigh-high (Black)"
icon_state = "black_thigh"
/datum/sprite_accessory/socks/commie_thigh
name = "Thigh-high (Commie)"
icon_state = "commie_thigh"
/datum/sprite_accessory/socks/usa_thigh
name = "Thigh-high (Freedom)"
icon_state = "assblastusa_thigh"
/datum/sprite_accessory/socks/rainbow_thigh
name = "Thigh-high (Rainbow)"
icon_state = "rainbow_thigh"
/datum/sprite_accessory/socks/striped_thigh
name = "Thigh-high (Striped)"
icon_state = "striped_thigh"
/datum/sprite_accessory/socks/thin_thigh
name = "Thigh-high (Thin)"
icon_state = "thin_thigh"
/datum/sprite_accessory/socks/trans_thigh
name = "Thigh-high (Trans)"
icon_state = "trans_thigh"
/datum/sprite_accessory/socks/uk_thigh
name = "Thigh-high (UK)"
icon_state = "uk_thigh"
/datum/sprite_accessory/socks/white_thigh
name = "Thigh-high (White)"
icon_state = "white_thigh"
/datum/sprite_accessory/socks/fishnet_thigh
name = "Thigh-high (Fishnet)"
icon_state = "fishnet_thigh"
/datum/sprite_accessory/socks/thocks
name = "Thocks"
icon_state = "thocks"
//////////.//////////////////
// MutantParts Definitions //
/////////////////////////////
/datum/sprite_accessory/body_markings
icon = 'icons/mob/species/lizard/lizard_misc.dmi'
/datum/sprite_accessory/body_markings/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/body_markings/dtiger
name = "Dark Tiger Body"
icon_state = "dtiger"
gender_specific = 1
/datum/sprite_accessory/body_markings/ltiger
name = "Light Tiger Body"
icon_state = "ltiger"
gender_specific = 1
/datum/sprite_accessory/body_markings/lbelly
name = "Light Belly"
icon_state = "lbelly"
gender_specific = 1
/datum/sprite_accessory/tails
em_block = TRUE
/datum/sprite_accessory/tails/lizard
icon = 'icons/mob/species/lizard/lizard_tails.dmi'
/datum/sprite_accessory/tails/lizard/smooth
name = "Smooth"
icon_state = "smooth"
/datum/sprite_accessory/tails/lizard/dtiger
name = "Dark Tiger"
icon_state = "dtiger"
/datum/sprite_accessory/tails/lizard/ltiger
name = "Light Tiger"
icon_state = "ltiger"
/datum/sprite_accessory/tails/lizard/spikes
name = "Spikes"
icon_state = "spikes"
/datum/sprite_accessory/tails/human/cat
name = "Cat"
icon = 'icons/mob/species/human/cat_features.dmi'
icon_state = "default"
color_src = HAIR_COLOR
/datum/sprite_accessory/tails/monkey
name = "Monkey"
icon = 'icons/mob/species/monkey/monkey_tail.dmi'
icon_state = "monkey"
color_src = FALSE
/datum/sprite_accessory/pod_hair
icon = 'icons/mob/species/podperson_hair.dmi'
em_block = TRUE
/datum/sprite_accessory/pod_hair/ivy
name = "Ivy"
icon_state = "ivy"
/datum/sprite_accessory/pod_hair/cabbage
name = "Cabbage"
icon_state = "cabbage"
/datum/sprite_accessory/pod_hair/spinach
name = "Spinach"
icon_state = "spinach"
/datum/sprite_accessory/pod_hair/prayer
name = "Prayer"
icon_state = "prayer"
/datum/sprite_accessory/pod_hair/vine
name = "Vine"
icon_state = "vine"
/datum/sprite_accessory/pod_hair/shrub
name = "Shrub"
icon_state = "shrub"
/datum/sprite_accessory/pod_hair/rose
name = "Rose"
icon_state = "rose"
/datum/sprite_accessory/pod_hair/orchid
name = "Orchid"
icon_state = "orchid"
/datum/sprite_accessory/pod_hair/fig
name = "Fig"
icon_state = "fig"
/datum/sprite_accessory/pod_hair/hibiscus
name = "Hibiscus"
icon_state = "hibiscus"
/datum/sprite_accessory/snouts
icon = 'icons/mob/species/lizard/lizard_misc.dmi'
em_block = TRUE
/datum/sprite_accessory/snouts/sharp
name = "Sharp"
icon_state = "sharp"
/datum/sprite_accessory/snouts/round
name = "Round"
icon_state = "round"
/datum/sprite_accessory/snouts/sharplight
name = "Sharp + Light"
icon_state = "sharplight"
/datum/sprite_accessory/snouts/roundlight
name = "Round + Light"
icon_state = "roundlight"
/datum/sprite_accessory/horns
icon = 'icons/mob/species/lizard/lizard_misc.dmi'
em_block = TRUE
/datum/sprite_accessory/horns/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/horns/simple
name = "Simple"
icon_state = "simple"
/datum/sprite_accessory/horns/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/horns/curled
name = "Curled"
icon_state = "curled"
/datum/sprite_accessory/horns/ram
name = "Ram"
icon_state = "ram"
/datum/sprite_accessory/horns/angler
name = "Angeler"
icon_state = "angler"
/datum/sprite_accessory/ears
icon = 'icons/mob/species/human/cat_features.dmi'
em_block = TRUE
/datum/sprite_accessory/ears/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/ears/cat
name = "Cat"
icon_state = "cat"
hasinner = TRUE
color_src = HAIR_COLOR
/datum/sprite_accessory/ears/fox
icon = 'icons/mob/species/human/fox_features.dmi'
name = "Fox"
icon_state = "fox"
hasinner = TRUE
color_src = HAIR_COLOR
locked = TRUE
/datum/sprite_accessory/wings/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/wings
icon = 'icons/mob/species/wings.dmi'
em_block = TRUE
/datum/sprite_accessory/wings_open
icon = 'icons/mob/species/wings.dmi'
em_block = TRUE
/datum/sprite_accessory/wings/angel
name = "Angel"
icon_state = "angel"
color_src = FALSE
dimension_x = 46
center = TRUE
dimension_y = 34
locked = TRUE
/datum/sprite_accessory/wings_open/angel
name = "Angel"
icon_state = "angel"
color_src = FALSE
dimension_x = 46
center = TRUE
dimension_y = 34
/datum/sprite_accessory/wings/dragon
name = "Dragon"
icon_state = "dragon"
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/dragon
name = "Dragon"
icon_state = "dragon"
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/megamoth
name = "Megamoth"
icon_state = "megamoth"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/megamoth
name = "Megamoth"
icon_state = "megamoth"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/mothra
name = "Mothra"
icon_state = "mothra"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/mothra
name = "Mothra"
icon_state = "mothra"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/skeleton
name = "Skeleton"
icon_state = "skele"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/skeleton
name = "Skeleton"
icon_state = "skele"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/robotic
name = "Robotic"
icon_state = "robotic"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/robotic
name = "Robotic"
icon_state = "robotic"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/fly
name = "Fly"
icon_state = "fly"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/fly
name = "Fly"
icon_state = "fly"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/frills
icon = 'icons/mob/species/lizard/lizard_misc.dmi'
/datum/sprite_accessory/frills/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/frills/simple
name = "Simple"
icon_state = "simple"
/datum/sprite_accessory/frills/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/frills/aquatic
name = "Aquatic"
icon_state = "aqua"
/datum/sprite_accessory/spines
icon = 'icons/mob/species/lizard/lizard_spines.dmi'
em_block = TRUE
/datum/sprite_accessory/spines_animated
icon = 'icons/mob/species/lizard/lizard_spines.dmi'
em_block = TRUE
/datum/sprite_accessory/spines/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/spines_animated/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/spines/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/spines_animated/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/spines/shortmeme
name = "Short + Membrane"
icon_state = "shortmeme"
/datum/sprite_accessory/spines_animated/shortmeme
name = "Short + Membrane"
icon_state = "shortmeme"
/datum/sprite_accessory/spines/long
name = "Long"
icon_state = "long"
/datum/sprite_accessory/spines_animated/long
name = "Long"
icon_state = "long"
/datum/sprite_accessory/spines/longmeme
name = "Long + Membrane"
icon_state = "longmeme"
/datum/sprite_accessory/spines_animated/longmeme
name = "Long + Membrane"
icon_state = "longmeme"
/datum/sprite_accessory/spines/aqautic
name = "Aquatic"
icon_state = "aqua"
/datum/sprite_accessory/spines_animated/aqautic
name = "Aquatic"
icon_state = "aqua"
/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them.
icon = null //These datums exist for selecting legs on preference, and little else
em_block = TRUE
/datum/sprite_accessory/legs/none
name = "Normal Legs"
/datum/sprite_accessory/legs/digitigrade_lizard
name = DIGITIGRADE_LEGS
/datum/sprite_accessory/caps
icon = 'icons/mob/species/mush_cap.dmi'
color_src = HAIR_COLOR
em_block = TRUE
/datum/sprite_accessory/caps/round
name = "Round"
icon_state = "round"
/datum/sprite_accessory/moth_wings
icon = 'icons/mob/species/moth/moth_wings.dmi'
color_src = null
em_block = TRUE
/datum/sprite_accessory/moth_wings/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/moth_wings/monarch
name = "Monarch"
icon_state = "monarch"
/datum/sprite_accessory/moth_wings/luna
name = "Luna"
icon_state = "luna"
/datum/sprite_accessory/moth_wings/atlas
name = "Atlas"
icon_state = "atlas"
/datum/sprite_accessory/moth_wings/reddish
name = "Reddish"
icon_state = "redish"
/datum/sprite_accessory/moth_wings/royal
name = "Royal"
icon_state = "royal"
/datum/sprite_accessory/moth_wings/gothic
name = "Gothic"
icon_state = "gothic"
/datum/sprite_accessory/moth_wings/lovers
name = "Lovers"
icon_state = "lovers"
/datum/sprite_accessory/moth_wings/whitefly
name = "White Fly"
icon_state = "whitefly"
/datum/sprite_accessory/moth_wings/burnt_off
name = "Burnt Off"
icon_state = "burnt_off"
locked = TRUE
/datum/sprite_accessory/moth_wings/firewatch
name = "Firewatch"
icon_state = "firewatch"
/datum/sprite_accessory/moth_wings/deathhead
name = "Deathshead"
icon_state = "deathhead"
/datum/sprite_accessory/moth_wings/poison
name = "Poison"
icon_state = "poison"
/datum/sprite_accessory/moth_wings/ragged
name = "Ragged"
icon_state = "ragged"
/datum/sprite_accessory/moth_wings/moonfly
name = "Moon Fly"
icon_state = "moonfly"
/datum/sprite_accessory/moth_wings/snow
name = "Snow"
icon_state = "snow"
/datum/sprite_accessory/moth_wings/oakworm
name = "Oak Worm"
icon_state = "oakworm"
/datum/sprite_accessory/moth_wings/jungle
name = "Jungle"
icon_state = "jungle"
/datum/sprite_accessory/moth_wings/witchwing
name = "Witch Wing"
icon_state = "witchwing"
/datum/sprite_accessory/moth_wings/rosy
name = "Rosy"
icon_state = "rosy"
/datum/sprite_accessory/moth_wings/feathery
name = "Feathery"
icon_state = "feathery"
/datum/sprite_accessory/moth_wings/brown
name = "Brown"
icon_state = "brown"
/datum/sprite_accessory/moth_wings/plasmafire
name = "Plasmafire"
icon_state = "plasmafire"
/datum/sprite_accessory/moth_wings/moffra
name = "Moffra"
icon_state = "moffra"
/datum/sprite_accessory/moth_antennae //Finally splitting the sprite
icon = 'icons/mob/species/moth/moth_antennae.dmi'
color_src = null
/datum/sprite_accessory/moth_antennae/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/moth_antennae/reddish
name = "Reddish"
icon_state = "reddish"
/datum/sprite_accessory/moth_antennae/royal
name = "Royal"
icon_state = "royal"
/datum/sprite_accessory/moth_antennae/gothic
name = "Gothic"
icon_state = "gothic"
/datum/sprite_accessory/moth_antennae/whitefly
name = "White Fly"
icon_state = "whitefly"
/datum/sprite_accessory/moth_antennae/lovers
name = "Lovers"
icon_state = "lovers"
/datum/sprite_accessory/moth_antennae/burnt_off
name = "Burnt Off"
icon_state = "burnt_off"
/datum/sprite_accessory/moth_antennae/firewatch
name = "Firewatch"
icon_state = "firewatch"
/datum/sprite_accessory/moth_antennae/deathhead
name = "Deathshead"
icon_state = "deathhead"
/datum/sprite_accessory/moth_antennae/poison
name = "Poison"
icon_state = "poison"
/datum/sprite_accessory/moth_antennae/ragged
name = "Ragged"
icon_state = "ragged"
/datum/sprite_accessory/moth_antennae/moonfly
name = "Moon Fly"
icon_state = "moonfly"
/datum/sprite_accessory/moth_antennae/oakworm
name = "Oak Worm"
icon_state = "oakworm"
/datum/sprite_accessory/moth_antennae/jungle
name = "Jungle"
icon_state = "jungle"
/datum/sprite_accessory/moth_antennae/witchwing
name = "Witch Wing"
icon_state = "witchwing"
/datum/sprite_accessory/moth_antennae/regal
name = "Regal"
icon_state = "regal"
/datum/sprite_accessory/moth_antennae/rosy
name = "Rosy"
icon_state = "rosy"
/datum/sprite_accessory/moth_antennae/feathery
name = "Feathery"
icon_state = "feathery"
/datum/sprite_accessory/moth_antennae/brown
name = "Brown"
icon_state = "brown"
/datum/sprite_accessory/moth_antennae/plasmafire
name = "Plasmafire"
icon_state = "plasmafire"
/datum/sprite_accessory/moth_antennae/moffra
name = "Moffra"
icon_state = "moffra"
/datum/sprite_accessory/moth_markings // the markings that moths can have. finally something other than the boring tan
icon = 'icons/mob/species/moth/moth_markings.dmi'
color_src = null
/datum/sprite_accessory/moth_markings/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/moth_markings/reddish
name = "Reddish"
icon_state = "reddish"
/datum/sprite_accessory/moth_markings/royal
name = "Royal"
icon_state = "royal"
/datum/sprite_accessory/moth_markings/gothic
name = "Gothic"
icon_state = "gothic"
/datum/sprite_accessory/moth_markings/whitefly
name = "White Fly"
icon_state = "whitefly"
/datum/sprite_accessory/moth_markings/lovers
name = "Lovers"
icon_state = "lovers"
/datum/sprite_accessory/moth_markings/burnt_off
name = "Burnt Off"
icon_state = "burnt_off"
/datum/sprite_accessory/moth_markings/firewatch
name = "Firewatch"
icon_state = "firewatch"
/datum/sprite_accessory/moth_markings/deathhead
name = "Deathshead"
icon_state = "deathhead"
/datum/sprite_accessory/moth_markings/poison
name = "Poison"
icon_state = "poison"
/datum/sprite_accessory/moth_markings/ragged
name = "Ragged"
icon_state = "ragged"
/datum/sprite_accessory/moth_markings/moonfly
name = "Moon Fly"
icon_state = "moonfly"
/datum/sprite_accessory/moth_markings/oakworm
name = "Oak Worm"
icon_state = "oakworm"
/datum/sprite_accessory/moth_markings/jungle
name = "Jungle"
icon_state = "jungle"
/datum/sprite_accessory/moth_markings/witchwing
name = "Witch Wing"
icon_state = "witchwing"