Adds new system for markings that can override whole organs and new Generic Hooves using this system

This commit is contained in:
Heroman
2023-01-12 18:56:55 +10:00
parent 1f272149b3
commit 5f7aac0b1c
7 changed files with 40 additions and 7 deletions
+6 -1
View File
@@ -1409,6 +1409,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
+17 -1
View File
@@ -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"
@@ -131,7 +147,7 @@ var/global/list/limb_icon_cache = list()
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)