diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 2399b489ec..cd4e116cfd 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -210,7 +210,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() // blend the individual damage states with our icons for(var/obj/item/organ/external/O in organs) - if(isnull(O) || O.is_stump() || O.is_hidden_by_tail()) + if(isnull(O) || O.is_stump() || O.is_hidden_by_sprite_accessory()) continue O.update_icon() @@ -275,7 +275,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() icon_key += "[head.eye_icon]" for(var/organ_tag in species.has_limbs) var/obj/item/organ/external/part = organs_by_name[organ_tag] - if(isnull(part) || part.is_stump() || part.is_hidden_by_tail()) //VOREStation Edit allowing tails to prevent bodyparts rendering, granting more spriter freedom for taur/digitigrade stuff. + if(isnull(part) || part.is_stump() || part.is_hidden_by_sprite_accessory()) //VOREStation Edit allowing tails to prevent bodyparts rendering, granting more spriter freedom for taur/digitigrade stuff. icon_key += "0" continue if(part) @@ -346,7 +346,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() Cutter.Blend("#000000", ICON_MULTIPLY) // Black again. for(var/obj/item/organ/external/part in organs) - if(isnull(part) || part.is_stump() || part.is_hidden_by_tail()) //VOREStation Edit allowing tails to prevent bodyparts rendering, granting more spriter freedom for taur/digitigrade stuff. + if(isnull(part) || part.is_stump() || part.is_hidden_by_sprite_accessory()) //VOREStation Edit allowing tails to prevent bodyparts rendering, granting more spriter freedom for taur/digitigrade stuff. continue var/icon/temp = part.get_icon(skeleton) @@ -789,7 +789,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() for(var/f in list(BP_L_FOOT, BP_R_FOOT)) var/obj/item/organ/external/foot/foot = get_organ(f) - if(istype(foot) && foot.is_hidden_by_tail()) //If either foot is hidden by the tail, don't render footwear. + if(istype(foot) && foot.is_hidden_by_sprite_accessory(clothing_only = TRUE)) //If either foot is hidden by the tail, don't render footwear. return //Allow for shoe layer toggle nonsense diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index b85685803a..a64def1f49 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -42,6 +42,8 @@ /// Should this sprite block emissives? var/em_block = FALSE + var/list/hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff. + /* //////////////////////////// / =--------------------= / diff --git a/code/modules/mob/new_player/sprite_accessories_extra_vr.dm b/code/modules/mob/new_player/sprite_accessories_extra_vr.dm index 919d2bedb0..e3ee23efe4 100644 --- a/code/modules/mob/new_player/sprite_accessories_extra_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_extra_vr.dm @@ -2,6 +2,7 @@ //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 /datum/sprite_accessory/marking //Override for base markings + var/organ_override = FALSE color_blend_mode = ICON_ADD species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use @@ -907,3 +908,13 @@ icon_state = "tesh-beak-alt" color_blend_mode = ICON_MULTIPLY body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/vr_generic_hooves + name = "Generic Hooves" + icon = 'icons/mob/human_races/markings_vr.dmi' + icon_state = "generic_hooves" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_FOOT,BP_R_FOOT) + hide_body_parts = list(BP_L_FOOT,BP_R_FOOT) + organ_override = TRUE + diff --git a/code/modules/mob/new_player/sprite_accessories_tail.dm b/code/modules/mob/new_player/sprite_accessories_tail.dm index 8428f6170f..53475d3cd1 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail.dm @@ -20,7 +20,6 @@ var/ani_state // State when wagging/animated var/extra_overlay_w // Wagging state for extra overlay var/extra_overlay2_w // Tertiary wagging. - var/list/hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff. var/icon/clip_mask_icon = null //Icon file used for clip mask. var/clip_mask_state = null //Icon state to generate clip mask. Clip mask is used to 'clip' off the lower part of clothing such as jumpsuits & full suits. var/icon/clip_mask = null //Instantiated clip mask of given icon and state diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 912889c5f6..b0410b9db4 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -1410,6 +1410,11 @@ Note that amputating the affected organ does in fact remove the infection from t if(!istype(I,/obj/item/weapon/implant) && !istype(I,/obj/item/device/nif)) //VOREStation Add - NIFs return 1 -/obj/item/organ/external/proc/is_hidden_by_tail() +/obj/item/organ/external/proc/is_hidden_by_sprite_accessory(var/clothing_only = FALSE) // Clothing only will mean the check should only be used in places where we want to hide clothing icon, not organ itself. if(owner && owner.tail_style && owner.tail_style.hide_body_parts && (organ_tag in owner.tail_style.hide_body_parts)) return 1 + if(clothing_only && markings.len) + for(var/M in markings) + var/datum/sprite_accessory/marking/mark = markings[M]["datum"] + if(mark.hide_body_parts && (organ_tag in mark.hide_body_parts)) + return 1 \ No newline at end of file diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index fa93fc43b7..a0a26821c7 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -81,6 +81,22 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/proc/get_icon(var/skeletal) + for(var/M in markings) + var/datum/sprite_accessory/marking/mark = markings[M]["datum"] + if(mark.organ_override) + to_world("override success") + 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"]]" + + dir = EAST + icon = mob_icon + return mob_icon + + to_world("override fail") + var/gender = "m" if(owner && owner.gender == FEMALE) gender = "f" diff --git a/icons/mob/human_races/markings_vr.dmi b/icons/mob/human_races/markings_vr.dmi index b2b50f1d69..0b2bc13a73 100644 Binary files a/icons/mob/human_races/markings_vr.dmi and b/icons/mob/human_races/markings_vr.dmi differ diff --git a/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm b/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm index 9e41c0f118..ab6be6cb9c 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm @@ -16,7 +16,7 @@ for(var/f in list(BP_L_FOOT, BP_R_FOOT)) var/obj/item/organ/external/foot/foot = get_organ(f) - if(istype(foot) && foot.is_hidden_by_tail()) //If either foot is hidden by the tail, don't render footwear. + if(istype(foot) && foot.is_hidden_by_sprite_accessory()) //If either foot is hidden by the tail, don't render footwear. return var/obj/item/clothing/shoes/shoe = shoes @@ -107,4 +107,4 @@ /mob/living/carbon/human/update_tail_showing() . = ..() - update_vore_tail_sprite() \ No newline at end of file + update_vore_tail_sprite() diff --git a/modular_chomp/code/modules/mob/new_player/sprite_accessories_extra.dm b/modular_chomp/code/modules/mob/new_player/sprite_accessories_extra.dm index d00e72942d..201b66db6c 100644 --- a/modular_chomp/code/modules/mob/new_player/sprite_accessories_extra.dm +++ b/modular_chomp/code/modules/mob/new_player/sprite_accessories_extra.dm @@ -1,6 +1,3 @@ -/datum/sprite_accessory/marking - var/hide_body_parts = list() - /datum/sprite_accessory/marking/ch/anthrovirus_ra name = "Anthro Virus (Right Arm)" icon_state = "anthrovirus" @@ -181,4 +178,4 @@ name = "Normal Eyes" icon_state = "normeyes" body_parts = list(BP_HEAD) - color_blend_mode = ICON_MULTIPLY \ No newline at end of file + color_blend_mode = ICON_MULTIPLY