mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
[MIRROR] Adds optional Big Leggies Markings (#10843)
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
committed by
GitHub
parent
94ba77684a
commit
aeb6981f50
@@ -26,7 +26,6 @@ includes scars and tattoos
|
|||||||
var/digitigrade_icon = 'icons/mob/human_races/markings_digi.dmi'
|
var/digitigrade_icon = 'icons/mob/human_races/markings_digi.dmi'
|
||||||
|
|
||||||
var/genetic = TRUE
|
var/genetic = TRUE
|
||||||
var/organ_override = FALSE
|
|
||||||
var/body_parts = list() //A list of bodyparts this covers, in organ_tag defines
|
var/body_parts = list() //A list of bodyparts this covers, in organ_tag defines
|
||||||
//Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD
|
//Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD
|
||||||
|
|
||||||
@@ -2284,7 +2283,6 @@ includes scars and tattoos
|
|||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||||
organ_override = TRUE
|
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/vr_unathi_blocky_head
|
/datum/sprite_accessory/marking/vr_unathi_blocky_head
|
||||||
name = "Unathi alt head (Blocky)"
|
name = "Unathi alt head (Blocky)"
|
||||||
@@ -2292,7 +2290,6 @@ includes scars and tattoos
|
|||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_HEAD)
|
body_parts = list(BP_HEAD)
|
||||||
hide_body_parts = list(BP_HEAD)
|
hide_body_parts = list(BP_HEAD)
|
||||||
organ_override = TRUE
|
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/vr_unathi_blocky_head_eyes
|
/datum/sprite_accessory/marking/vr_unathi_blocky_head_eyes
|
||||||
name = "Unathi alt head eyes (Blocky)"
|
name = "Unathi alt head eyes (Blocky)"
|
||||||
@@ -2336,7 +2333,6 @@ includes scars and tattoos
|
|||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||||
organ_override = TRUE
|
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/vr_sect_drone_eyes
|
/datum/sprite_accessory/marking/vr_sect_drone_eyes
|
||||||
name = "Sect Drone Eyes"
|
name = "Sect Drone Eyes"
|
||||||
@@ -2654,3 +2650,37 @@ includes scars and tattoos
|
|||||||
icon_state = "digigradient"
|
icon_state = "digigradient"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_L_LEG,BP_L_FOOT,BP_R_LEG,BP_R_FOOT)
|
body_parts = list(BP_L_LEG,BP_L_FOOT,BP_R_LEG,BP_R_FOOT)
|
||||||
|
|
||||||
|
//Big Leggies!
|
||||||
|
/datum/sprite_accessory/marking/bigleggy
|
||||||
|
name = "Big Leggies - Legs"
|
||||||
|
icon_state = "bigleggy"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_LEG, BP_L_LEG)
|
||||||
|
digitigrade_acceptance = MARKING_DIGITIGRADE_ONLY
|
||||||
|
hide_body_parts = list(BP_R_LEG, BP_L_LEG)
|
||||||
|
digitigrade_icon = 'icons/mob/human_races/markings.dmi'
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/bigleggy/stanced
|
||||||
|
name = "Big Leggies - Legs (Stanced)"
|
||||||
|
icon_state = "bigleggy_stanced"
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/bigleggy/feet
|
||||||
|
name = "Big Leggies - Feet"
|
||||||
|
icon_state = "bigleggy_markings"
|
||||||
|
body_parts = list(BP_R_FOOT, BP_L_FOOT)
|
||||||
|
hide_body_parts = list(BP_R_FOOT, BP_L_FOOT)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/bigleggy/feet/stanced
|
||||||
|
name = "Big Leggies - Feet (Stanced)"
|
||||||
|
icon_state = "bigleggy_markings_stanced"
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/bigleggy/feet/bird
|
||||||
|
name = "Big Leggies - Feet (Bird)"
|
||||||
|
icon_state = "bigleggy_m_bird"
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/bigleggy/feet/bird/stanced
|
||||||
|
name = "Big Leggies - Feet (Bird, Stanced)"
|
||||||
|
icon_state = "bigleggy_m_bird_stanced"
|
||||||
|
|
||||||
|
//Big leggy end!
|
||||||
|
|||||||
@@ -1246,6 +1246,7 @@
|
|||||||
fullness_icons = 3
|
fullness_icons = 3
|
||||||
ani_state = "bigleggy_stanced"
|
ani_state = "bigleggy_stanced"
|
||||||
extra_overlay_w = "bigleggy_markings_stanced"
|
extra_overlay_w = "bigleggy_markings_stanced"
|
||||||
|
clip_mask_state = "taur_clip_mask_def" //Leaving this here to make it clear it it's INTENTIONAL it shows above clothes. Use the marking if you want it to show UNDER clothes!
|
||||||
|
|
||||||
/datum/sprite_accessory/tail/taur/bigleggy/canine
|
/datum/sprite_accessory/tail/taur/bigleggy/canine
|
||||||
name = "Big Leggies (Canine Tail)"
|
name = "Big Leggies (Canine Tail)"
|
||||||
@@ -1274,7 +1275,6 @@
|
|||||||
|
|
||||||
/datum/sprite_accessory/tail/taur/bigleggy/bird
|
/datum/sprite_accessory/tail/taur/bigleggy/bird
|
||||||
name = "Big Leggies (Bird)"
|
name = "Big Leggies (Bird)"
|
||||||
icon_state = "bigleggy"
|
|
||||||
extra_overlay = "bigleggy_m_bird"
|
extra_overlay = "bigleggy_m_bird"
|
||||||
extra_overlay2 = "bigleggy_bird"
|
extra_overlay2 = "bigleggy_bird"
|
||||||
extra_overlay_w = "bigleggy_m_bird_stanced"
|
extra_overlay_w = "bigleggy_m_bird_stanced"
|
||||||
|
|||||||
@@ -80,9 +80,9 @@ GLOBAL_LIST_EMPTY(limb_icon_cache)
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
/obj/item/organ/external/proc/get_icon(var/skeletal, var/can_apply_transparency = TRUE)
|
/obj/item/organ/external/proc/get_icon(var/skeletal, var/can_apply_transparency = TRUE)
|
||||||
|
|
||||||
var/digitigrade = 0
|
var/digitigrade = 0
|
||||||
|
|
||||||
|
cut_overlays()
|
||||||
// preferentially take digitigrade value from owner if available, THEN DNA.
|
// preferentially take digitigrade value from owner if available, THEN DNA.
|
||||||
// this allows limbs to be set properly when being printed in the bioprinter without an owner
|
// this allows limbs to be set properly when being printed in the bioprinter without an owner
|
||||||
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
|
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
|
||||||
@@ -92,41 +92,16 @@ GLOBAL_LIST_EMPTY(limb_icon_cache)
|
|||||||
else if(data)
|
else if(data)
|
||||||
digitigrade = check_digi && data.digitigrade
|
digitigrade = check_digi && data.digitigrade
|
||||||
|
|
||||||
for(var/M in markings)
|
var/should_apply_transparency = FALSE
|
||||||
if (!markings[M]["on"])
|
|
||||||
continue
|
|
||||||
var/datum/sprite_accessory/marking/mark = markings[M]["datum"]
|
|
||||||
if(mark.organ_override)
|
|
||||||
var/icon/mark_s = new/icon("icon" = mark.icon, "icon_state" = "[mark.icon_state]-[organ_tag]")
|
|
||||||
mob_icon = new /icon("icon" = mark.icon, "icon_state" = "blank")
|
|
||||||
mark_s.Blend(markings[M]["color"], mark.color_blend_mode) // VOREStation edit
|
|
||||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
|
||||||
icon_cache_key = "[M][markings[M]["color"]]"
|
|
||||||
for(var/MM in markings)
|
|
||||||
if (!markings[MM]["on"])
|
|
||||||
continue
|
|
||||||
var/datum/sprite_accessory/marking/mark_style = markings[MM]["datum"]
|
|
||||||
if(mark_style.organ_override)
|
|
||||||
continue
|
|
||||||
var/icon/mark_s_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
|
||||||
mark_s.Blend(markings[MM]["color"], mark_style.color_blend_mode) // VOREStation edit
|
|
||||||
add_overlay(mark_s_s) //So when it's not on your body, it has icons
|
|
||||||
mob_icon.Blend(mark_s_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
|
||||||
icon_cache_key += "[MM][markings[MM]["color"]]"
|
|
||||||
|
|
||||||
dir = EAST
|
|
||||||
icon = mob_icon
|
|
||||||
return mob_icon
|
|
||||||
|
|
||||||
var/gender = "m"
|
var/gender = "m"
|
||||||
|
var/skip_forced_icon = skip_robo_icon || (digi_prosthetic && digitigrade)
|
||||||
if(owner && owner.gender == FEMALE)
|
if(owner && owner.gender == FEMALE)
|
||||||
gender = "f"
|
gender = "f"
|
||||||
|
|
||||||
var/should_apply_transparency = FALSE
|
|
||||||
|
|
||||||
icon_cache_key = "[icon_name]_[data.get_species_bodytype(owner)]"
|
icon_cache_key = "[icon_name]_[data.get_species_bodytype(owner)]"
|
||||||
|
|
||||||
if(force_icon)
|
if(force_icon && !skip_forced_icon)
|
||||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||||
else
|
else
|
||||||
if(!data)
|
if(!data)
|
||||||
@@ -143,71 +118,54 @@ GLOBAL_LIST_EMPTY(limb_icon_cache)
|
|||||||
|
|
||||||
if(skeletal)
|
if(skeletal)
|
||||||
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||||
else if (robotic >= ORGAN_ROBOT)
|
else if (robotic >= ORGAN_ROBOT && !skip_forced_icon)
|
||||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||||
should_apply_transparency = TRUE
|
should_apply_transparency = TRUE
|
||||||
apply_colouration(mob_icon)
|
apply_colouration(mob_icon)
|
||||||
else if(is_hidden_by_markings())
|
|
||||||
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
|
||||||
should_apply_transparency = TRUE
|
|
||||||
else
|
else
|
||||||
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
if(is_hidden_by_markings())
|
||||||
mob_icon = new /icon(digitigrade ? data.get_species_icodigi() : data.get_species_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||||
should_apply_transparency = TRUE
|
should_apply_transparency = TRUE
|
||||||
apply_colouration(mob_icon)
|
else
|
||||||
|
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
||||||
|
mob_icon = new /icon(digitigrade ? data.get_species_icodigi() : data.get_species_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
||||||
|
should_apply_transparency = TRUE
|
||||||
|
apply_colouration(mob_icon)
|
||||||
|
|
||||||
//Body markings, actually does not include head this time. Done separately above.
|
if (model && !skip_forced_icon)
|
||||||
if(!istype(src,/obj/item/organ/external/head))
|
|
||||||
for(var/M in markings)
|
|
||||||
if (!markings[M]["on"])
|
|
||||||
continue
|
|
||||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
|
||||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
|
||||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
|
||||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
|
||||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
|
||||||
icon_cache_key += "[M][markings[M]["color"]]"
|
|
||||||
|
|
||||||
if(body_hair && islist(h_col) && h_col.len >= 3)
|
|
||||||
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
|
||||||
if(!GLOB.limb_icon_cache[cache_key])
|
|
||||||
var/icon/I = icon(data.get_species_icobase(owner), "[icon_name]_[body_hair]")
|
|
||||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
|
||||||
GLOB.limb_icon_cache[cache_key] = I
|
|
||||||
mob_icon.Blend(GLOB.limb_icon_cache[cache_key], ICON_OVERLAY)
|
|
||||||
|
|
||||||
// VOREStation edit start
|
|
||||||
if(nail_polish)
|
|
||||||
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)
|
|
||||||
I.Blend(nail_polish.color, ICON_MULTIPLY)
|
|
||||||
add_overlay(I)
|
|
||||||
mob_icon.Blend(I, ICON_OVERLAY)
|
|
||||||
icon_cache_key += "_[nail_polish.icon]_[nail_polish.icon_state]_[nail_polish.color]"
|
|
||||||
// VOREStation edit end
|
|
||||||
|
|
||||||
if(model)
|
|
||||||
icon_cache_key += "_model_[model]"
|
icon_cache_key += "_model_[model]"
|
||||||
should_apply_transparency = TRUE
|
should_apply_transparency = TRUE
|
||||||
apply_colouration(mob_icon)
|
apply_colouration(mob_icon)
|
||||||
if(owner && owner.synth_markings)
|
|
||||||
for(var/M in markings)
|
|
||||||
if (!markings[M]["on"])
|
|
||||||
continue
|
|
||||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
|
||||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
|
||||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
|
||||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
|
||||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
|
||||||
icon_cache_key += "[M][markings[M]["color"]]"
|
|
||||||
|
|
||||||
if(body_hair && islist(h_col) && h_col.len >= 3)
|
//Body markings, actually does not include head this time. Done separately above.
|
||||||
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !skip_forced_icon)) || (model && owner && owner.synth_markings))
|
||||||
if(!GLOB.limb_icon_cache[cache_key])
|
for(var/M in markings)
|
||||||
var/icon/I = icon(data.get_species_icobase(owner), "[icon_name]_[body_hair]")
|
if (!markings[M]["on"])
|
||||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
continue
|
||||||
GLOB.limb_icon_cache[cache_key] = I
|
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||||
mob_icon.Blend(GLOB.limb_icon_cache[cache_key], ICON_OVERLAY)
|
var/isdigitype = mark_style.digitigrade_acceptance
|
||||||
// VOREStation edit ends here
|
if(check_digi)
|
||||||
|
if (!(isdigitype & (digitigrade ? MARKING_DIGITIGRADE_ONLY : MARKING_NONDIGI_ONLY))) //checks flags based on which digitigrade type the limb is
|
||||||
|
continue
|
||||||
|
var/icon/mark_s = new/icon("icon" = digitigrade ? mark_style.digitigrade_icon : mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||||
|
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode)
|
||||||
|
add_overlay(mark_s) //So when it's not on your body, it has icons
|
||||||
|
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||||
|
icon_cache_key += "[M][markings[M]["color"]]"
|
||||||
|
if(body_hair && islist(h_col) && h_col.len >= 3)
|
||||||
|
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
||||||
|
if(!GLOB.limb_icon_cache[cache_key])
|
||||||
|
var/icon/I = icon(data.get_species_icobase(owner), "[icon_name]_[body_hair]")
|
||||||
|
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY)
|
||||||
|
GLOB.limb_icon_cache[cache_key] = I
|
||||||
|
mob_icon.Blend(GLOB.limb_icon_cache[cache_key], ICON_OVERLAY)
|
||||||
|
|
||||||
|
if(nail_polish && !(force_icon && !skip_forced_icon))
|
||||||
|
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)
|
||||||
|
I.Blend(nail_polish.color, ICON_MULTIPLY)
|
||||||
|
add_overlay(I)
|
||||||
|
mob_icon.Blend(I, ICON_OVERLAY)
|
||||||
|
icon_cache_key += "_[nail_polish.icon]_[nail_polish.icon_state]_[nail_polish.color]"
|
||||||
|
|
||||||
if (transparent && !istype(src,/obj/item/organ/external/head) && can_apply_transparency && should_apply_transparency) //VORESTATION EDIT: transparent instead of nonsolid
|
if (transparent && !istype(src,/obj/item/organ/external/head) && can_apply_transparency && should_apply_transparency) //VORESTATION EDIT: transparent instead of nonsolid
|
||||||
mob_icon += rgb(,,,180) //do it here so any markings become transparent as well
|
mob_icon += rgb(,,,180) //do it here so any markings become transparent as well
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 143 KiB |
@@ -1,97 +0,0 @@
|
|||||||
/obj/item/organ/external/get_icon(var/skeletal, var/can_apply_transparency = TRUE)
|
|
||||||
var/digitigrade = 0
|
|
||||||
|
|
||||||
cut_overlays()
|
|
||||||
// preferentially take digitigrade value from owner if available, THEN DNA.
|
|
||||||
// this allows limbs to be set properly when being printed in the bioprinter without an owner
|
|
||||||
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
|
|
||||||
var/check_digi = istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot)
|
|
||||||
if(owner)
|
|
||||||
digitigrade = check_digi && owner.digitigrade
|
|
||||||
else if(data)
|
|
||||||
digitigrade = check_digi && data.digitigrade
|
|
||||||
|
|
||||||
var/should_apply_transparency = FALSE
|
|
||||||
|
|
||||||
var/gender = "m"
|
|
||||||
var/skip_forced_icon = skip_robo_icon || (digi_prosthetic && digitigrade)
|
|
||||||
if(owner && owner.gender == FEMALE)
|
|
||||||
gender = "f"
|
|
||||||
|
|
||||||
icon_cache_key = "[icon_name]_[data.get_species_bodytype(owner)]"
|
|
||||||
|
|
||||||
if(force_icon && !skip_forced_icon)
|
|
||||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
|
||||||
else
|
|
||||||
if(!data)
|
|
||||||
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
|
||||||
else
|
|
||||||
|
|
||||||
if(!gendered_icon)
|
|
||||||
gender = null
|
|
||||||
else
|
|
||||||
if(data.body_gender)
|
|
||||||
gender = "f"
|
|
||||||
else
|
|
||||||
gender = "m"
|
|
||||||
|
|
||||||
if(skeletal)
|
|
||||||
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
|
||||||
else if (robotic >= ORGAN_ROBOT && !skip_forced_icon)
|
|
||||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
|
||||||
should_apply_transparency = TRUE
|
|
||||||
apply_colouration(mob_icon)
|
|
||||||
else
|
|
||||||
if(is_hidden_by_markings())
|
|
||||||
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
|
||||||
should_apply_transparency = TRUE
|
|
||||||
else
|
|
||||||
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
|
||||||
mob_icon = new /icon(digitigrade ? data.get_species_icodigi() : data.get_species_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
|
||||||
should_apply_transparency = TRUE
|
|
||||||
apply_colouration(mob_icon)
|
|
||||||
|
|
||||||
if (model && !skip_forced_icon)
|
|
||||||
icon_cache_key += "_model_[model]"
|
|
||||||
should_apply_transparency = TRUE
|
|
||||||
apply_colouration(mob_icon)
|
|
||||||
|
|
||||||
//Code here is copied from organ_icon.dm line 118 at time of writing (9/20/21), VOREStation edits are left in intentionally, because I think it's worth keeping track of the fact that the code is from Virgo's edits.
|
|
||||||
//Body markings, actually does not include head this time. Done separately above.
|
|
||||||
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !skip_forced_icon)) || (model && owner && owner.synth_markings))
|
|
||||||
for(var/M in markings)
|
|
||||||
if (!markings[M]["on"])
|
|
||||||
continue
|
|
||||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
|
||||||
var/isdigitype = mark_style.digitigrade_acceptance
|
|
||||||
if(check_digi)
|
|
||||||
if (!(isdigitype & (digitigrade ? MARKING_DIGITIGRADE_ONLY : MARKING_NONDIGI_ONLY))) //checks flags based on which digitigrade type the limb is
|
|
||||||
continue
|
|
||||||
var/icon/mark_s = new/icon("icon" = digitigrade ? mark_style.digitigrade_icon : mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
|
||||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
|
||||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
|
||||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
|
||||||
icon_cache_key += "[M][markings[M]["color"]]"
|
|
||||||
if(body_hair && islist(h_col) && h_col.len >= 3)
|
|
||||||
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
|
||||||
if(!GLOB.limb_icon_cache[cache_key])
|
|
||||||
var/icon/I = icon(data.get_species_icobase(owner), "[icon_name]_[body_hair]")
|
|
||||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
|
||||||
GLOB.limb_icon_cache[cache_key] = I
|
|
||||||
mob_icon.Blend(GLOB.limb_icon_cache[cache_key], ICON_OVERLAY)
|
|
||||||
|
|
||||||
// VOREStation edit start
|
|
||||||
if(nail_polish && !(force_icon && !skip_forced_icon))
|
|
||||||
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)
|
|
||||||
I.Blend(nail_polish.color, ICON_MULTIPLY)
|
|
||||||
add_overlay(I)
|
|
||||||
mob_icon.Blend(I, ICON_OVERLAY)
|
|
||||||
icon_cache_key += "_[nail_polish.icon]_[nail_polish.icon_state]_[nail_polish.color]"
|
|
||||||
// VOREStation edit end
|
|
||||||
|
|
||||||
if (transparent && !istype(src,/obj/item/organ/external/head) && can_apply_transparency && should_apply_transparency) //VORESTATION EDIT: transparent instead of nonsolid
|
|
||||||
mob_icon += rgb(,,,180) //do it here so any markings become transparent as well
|
|
||||||
|
|
||||||
dir = EAST
|
|
||||||
icon = mob_icon
|
|
||||||
return mob_icon
|
|
||||||
@@ -5107,7 +5107,6 @@
|
|||||||
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories.dm"
|
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories.dm"
|
||||||
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_ear.dm"
|
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_ear.dm"
|
||||||
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_extra.dm"
|
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_extra.dm"
|
||||||
#include "modular_chomp\code\modules\organs\organ_icon.dm"
|
|
||||||
#include "modular_chomp\code\modules\organs\robolimbs.dm"
|
#include "modular_chomp\code\modules\organs\robolimbs.dm"
|
||||||
#include "modular_chomp\code\modules\organs\internal\malignant\malignant.dm"
|
#include "modular_chomp\code\modules\organs\internal\malignant\malignant.dm"
|
||||||
#include "modular_chomp\code\modules\overmap\dynamic_sector.dm"
|
#include "modular_chomp\code\modules\overmap\dynamic_sector.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user