Merge pull request #4722 from AnymousUnknow/master
hide_body_part flags for markings, with supplied abnormal bodytype markings.
@@ -1,5 +1,6 @@
|
||||
/datum/sprite_accessory/marking/ch
|
||||
icon = 'icons/mob/human_races/markings_ch.dmi'
|
||||
|
||||
/datum/sprite_accessory/marking/ch/orca_head
|
||||
name = "Orca head"
|
||||
icon_state = "orca_head"
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
apply_colouration(mob_icon)
|
||||
else
|
||||
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
||||
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
||||
apply_colouration(mob_icon)
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
icons/mob/human_races/r_blank.dmi
Normal file
|
After Width: | Height: | Size: 324 B |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -0,0 +1,148 @@
|
||||
/datum/sprite_accessory/marking
|
||||
var/hide_body_parts = list()
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_ra
|
||||
name = "Anthro Virus (Right Arm)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
hide_body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_la
|
||||
name = "Anthro Virus (Left Arm)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
hide_body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_rl
|
||||
name = "Anthro Virus (Right Leg)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG)
|
||||
hide_body_parts = list(BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_ll
|
||||
name = "Anthro Virus (Left Leg)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG)
|
||||
hide_body_parts = list(BP_L_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_rf
|
||||
name = "Anthro Virus (Right Foot)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_FOOT)
|
||||
hide_body_parts = list(BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_lf
|
||||
name = "Anthro Virus (Left Foot)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT)
|
||||
hide_body_parts = list(BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_t
|
||||
name = "Anthro Virus (Torso)"
|
||||
icon_state = "anthrovirus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
hide_body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/anthrovirus_h
|
||||
name = "Anthro Virus (Head)"
|
||||
icon_state = "anthrovirus"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_ra
|
||||
name = "Bacteriophage (Right Arm)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
hide_body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_la
|
||||
name = "Bacteriophage (Left Arm)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
hide_body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_rl
|
||||
name = "Bacteriophage (Right Leg)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
hide_body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_ll
|
||||
name = "Bacteriophage (Left Leg)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
hide_body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_t
|
||||
name = "Bacteriophage (Torso)"
|
||||
icon_state = "virus"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
hide_body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_g
|
||||
name = "Bacteriophage (Groin)"
|
||||
icon_state = "virusgroin" //this is separate so that the groin region can be hidden by the torso.
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN)
|
||||
//hide_body_parts = list(BP_GROIN) this IS pretty low, even for the groin body part.
|
||||
|
||||
/datum/sprite_accessory/marking/ch/virus_h
|
||||
name = "Bacteriophage (Head)"
|
||||
icon_state = "virus"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid
|
||||
name = "Tyranid Bodytype (Use with Armor)"
|
||||
icon_state = "tyranid"
|
||||
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)
|
||||
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)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid_armor
|
||||
name = "Tyranid Bodytype (Armor)"
|
||||
icon_state = "tyranidarmor"
|
||||
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)
|
||||
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)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid_legs
|
||||
name = "Tyranid Legs (Use with Armor)"
|
||||
icon_state = "tyranid"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/tyranid_legs_armor
|
||||
name = "Tyranid Legs (Armor)"
|
||||
icon_state = "tyranidarmor"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
hide_body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/sect_drone
|
||||
name = "Sect Drone Bodytype"
|
||||
icon_state = "sectdrone"
|
||||
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)
|
||||
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)
|
||||
|
||||
/datum/sprite_accessory/marking/ch/sect_drone_eyes
|
||||
name = "Sect Drone Eyes"
|
||||
icon_state = "sectdrone_eyes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
@@ -0,0 +1,22 @@
|
||||
/datum/sprite_accessory/tail/anthrovirus_tail
|
||||
name = "Anthro Virus Tail"
|
||||
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||
icon_state = "anthrovirustail_mark"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "anthrovirustail"
|
||||
|
||||
/datum/sprite_accessory/tail/tyranid_tail
|
||||
name = "Tyranid"
|
||||
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||
icon_state = "tyranid"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/sectdrone_tail
|
||||
name = "Sect Drone Tail (To use with bodytype-marking)"
|
||||
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||
icon_state = "sectdrone_tail"
|
||||
extra_overlay = "sectdrone_tail_mark"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
@@ -4,3 +4,10 @@
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf
|
||||
vore_tail_sprite_variant = "N"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/ch/longvirus
|
||||
name = "Long Virus (Taur)"
|
||||
icon_state = "longvirus_s"
|
||||
extra_overlay = "longvirus_markings"
|
||||
icon_sprite_tag = "virus"
|
||||
//suit_sprites = 'icons/mob/taursuits_noodle.dmi' Aye, I've gotta sprite that shit.
|
||||
@@ -0,0 +1,7 @@
|
||||
/datum/sprite_accessory/wing/sect_drone //We should some day make a variable to make some wings not be able to fly
|
||||
name = "Sect drone wings (To use with bodytype marking)"
|
||||
desc = ""
|
||||
icon = 'icons/mob/vore/wings_ch.dmi'
|
||||
icon_state = "sectdrone_wing"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
14
modular_chomp/code/modules/organs/organ_external.dm
Normal file
@@ -0,0 +1,14 @@
|
||||
//new function to check for markings
|
||||
/obj/item/organ/external/proc/is_hidden_by_markings()
|
||||
//code that checked all limbs.
|
||||
/*
|
||||
for(var/obj/item/organ/external/organ in owner.organs)
|
||||
for(var/M in organ.markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = organ.markings[M]["datum"]
|
||||
if (mark_style.hide_body_parts && (organ_tag in mark_style.hide_body_parts))
|
||||
return 1
|
||||
*/
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
if(istype(mark_style,/datum/sprite_accessory/marking/ch) && (organ_tag in mark_style.hide_body_parts))
|
||||
return 1
|
||||
173
modular_chomp/code/modules/organs/organ_icon.dm
Normal file
@@ -0,0 +1,173 @@
|
||||
/obj/item/organ/external/get_icon(var/skeletal)
|
||||
var/digitigrade = 0
|
||||
|
||||
// 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
|
||||
if(owner)
|
||||
digitigrade = owner.digitigrade
|
||||
else if(dna)
|
||||
digitigrade = dna.digitigrade
|
||||
|
||||
if( !model && ( istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot) ) ) //All leg icons go through here now.
|
||||
|
||||
var/gender = "m"
|
||||
if(owner && owner.gender == FEMALE)
|
||||
gender = "f"
|
||||
|
||||
if(!force_icon_key)
|
||||
icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit
|
||||
else
|
||||
icon_cache_key = "[icon_name]_[force_icon_key]"
|
||||
|
||||
if(force_icon)
|
||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
if(!dna)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
|
||||
if(!gendered_icon)
|
||||
gender = null
|
||||
else
|
||||
if(dna.GetUIState(DNA_UI_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)
|
||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
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]" : ""]")
|
||||
else
|
||||
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
||||
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
||||
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))
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/isdigitype = istype(mark_style,/datum/sprite_accessory/marking/digi)
|
||||
if(!(digitigrade ^ isdigitype)) //Equivalent to XNOR; this code will only run if either both digitigrade and isdigitype are true, or if both are false.
|
||||
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(!limb_icon_cache[cache_key])
|
||||
var/icon/I = icon(species.get_icobase(owner), "[icon_name]_[body_hair]")
|
||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
||||
limb_icon_cache[cache_key] = I
|
||||
mob_icon.Blend(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
|
||||
dir = EAST
|
||||
icon = mob_icon
|
||||
return mob_icon
|
||||
|
||||
else
|
||||
//. = ..()
|
||||
//due to the wierd fact that this calls the old code, and defining it here makes a duplicate procedure error, i'm gonna have to bring the whole code here and modify it. if there is a more condensed way, it is appreciated.
|
||||
|
||||
var/gender = "m"
|
||||
if(owner && owner.gender == FEMALE)
|
||||
gender = "f"
|
||||
|
||||
if(!force_icon_key)
|
||||
icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit
|
||||
else
|
||||
icon_cache_key = "[icon_name]_[force_icon_key]"
|
||||
|
||||
if(force_icon)
|
||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
if(!dna)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
else
|
||||
if(!gendered_icon)
|
||||
gender = null
|
||||
else
|
||||
if(dna.GetUIState(DNA_UI_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)
|
||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
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]" : ""]")
|
||||
else
|
||||
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
|
||||
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
|
||||
apply_colouration(mob_icon)
|
||||
|
||||
//Body markings, actually does not include head this time. Done separately above.
|
||||
if(!istype(src,/obj/item/organ/external/head))
|
||||
for(var/M in markings)
|
||||
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(!limb_icon_cache[cache_key])
|
||||
var/icon/I = icon(species.get_icobase(owner), "[icon_name]_[body_hair]")
|
||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
||||
limb_icon_cache[cache_key] = I
|
||||
mob_icon.Blend(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]"
|
||||
apply_colouration(mob_icon)
|
||||
if(owner && owner.synth_markings)
|
||||
for(var/M in markings)
|
||||
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(!limb_icon_cache[cache_key])
|
||||
var/icon/I = icon(species.get_icobase(owner), "[icon_name]_[body_hair]")
|
||||
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
|
||||
limb_icon_cache[cache_key] = I
|
||||
mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY)
|
||||
// VOREStation edit ends here
|
||||
|
||||
dir = EAST
|
||||
icon = mob_icon
|
||||
return mob_icon
|
||||
@@ -4524,7 +4524,12 @@
|
||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\greatwolf.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\vore.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\wolf.dm"
|
||||
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_extra.dm"
|
||||
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_tail.dm"
|
||||
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_taur.dm"
|
||||
#include "modular_chomp\code\modules\mob\new_player\sprite_accessories_wing.dm"
|
||||
#include "modular_chomp\code\modules\organs\organ_external.dm"
|
||||
#include "modular_chomp\code\modules\organs\organ_icon.dm"
|
||||
#include "modular_chomp\code\modules\power\cells\device_cells.dm"
|
||||
#include "modular_chomp\code\modules\power\cells\esoteric_cells.dm"
|
||||
#include "modular_chomp\code\modules\power\cells\power_cells.dm"
|
||||
|
||||