cosmetic parts are working

This commit is contained in:
sarcoph
2022-05-12 01:11:12 -08:00
parent bf112ac42f
commit f4cd08e82e
11 changed files with 239 additions and 57 deletions
@@ -12,18 +12,40 @@ fails and the part is rejected. so you can't attach mammal-bird legs to avians
safely.
*/
#define COSMETIC_BASIC_SPECIES = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
/datum/cosmetic_part
var/name
var/icon = 'hyperstation/icons/mob/char_parts.dmi'
var/icon_state
var/support_digitigrade = TRUE
var/list/supported_species
/datum/cosmetic_part/head
/datum/cosmetic_part/chest
/datum/cosmetic_part/arms
/datum/cosmetic_part/legs
/datum/cosmetic_part/head/default
name = "default"
icon = null
/datum/cosmetic_part/chest/default
name = "default"
icon = null
/datum/cosmetic_part/arms/default
name = "default"
icon = null
/datum/cosmetic_part/legs/default
name = "default"
icon = null
/datum/cosmetic_part/legs/avian
name = "avian"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "avian"
icon_state = "avian"
supported_species = COSMETIC_BASIC_SPECIES
support_digitigrade = FALSE
@@ -1,15 +1,14 @@
/obj/item/bodypart/proc/apply_cosmetic(datum/cosmetic_part/part)
if(!is_organic_limb() || animal_origin || !part)
return
cosmetic_icon = part.icon_state
icon = part.icon
cosmetic_icon = part
/mob/living/carbon/human/proc/handle_cosmetic_parts()
var/features = src.dna.features
var/features = dna.features
var/list/body_zones = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
for(var/I in body_zones)
var/zone = body_zones[I]
var/cosmetic_pref = features["cosmetic_" + zone]
for(var/zone in body_zones)
var/datum/cosmetic_part/cosmetic_pref = features["cosmetic_" + zone]
if(!istype(cosmetic_pref, /datum/cosmetic_part))
continue
var/datum/cosmetic_part/part = cosmetic_pref