Adds Ability for Tails to Hide Bodyparts

Adds a method for tails to hide bodyparts like legs to allow for a bit more spriter freedom. Sets Satyr legs & taur bodies to prevent regular legs from rendering when selected.

E.g.1 The Satyr legs & taur bodies prevent the regular leg organs from rendering, so you no longer have to sprite them such that they cover the pixels ordinary legs would've occupied.

E.g.2 The deer body has bulky front legs because if they weren't sprited to cover the regular body beneath you'd have wierd pixels poking out. This prevents that from happening by preventing legs from rendering when you got a taur tail.
This commit is contained in:
KasparoVy
2019-06-30 01:54:23 -04:00
parent ef87f043ce
commit e762c191ea
4 changed files with 12 additions and 5 deletions

View File

@@ -246,7 +246,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
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())
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.
icon_key += "0"
continue
if(part)
@@ -289,7 +289,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
base_icon = chest.get_icon()
for(var/obj/item/organ/external/part in organs)
if(isnull(part) || part.is_stump())
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.
continue
var/icon/temp = part.get_icon(skeleton)
//That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST

View File

@@ -13,3 +13,7 @@
min_broken_damage = o_min_broken_damage
else
return ..()
/obj/item/organ/external/proc/is_hidden_by_tail()
if(owner && owner.tail_style && owner.tail_style.hide_body_parts && (organ_tag in owner.tail_style.hide_body_parts))
return 1

View File

@@ -153,6 +153,7 @@
//Messages for smalls moving under larges
var/msg_owner_stepunder = "%owner runs between your legs." //Weird becuase in the case this is used, %owner is the 'bumper' (src)
var/msg_prey_stepunder = "You run between %prey's legs." //Same, inverse
hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
/datum/sprite_accessory/tail/taur/roiz_long_lizard // Not ACTUALLY a taur, but it uses 32x64 so it wouldn't fit in tails.dmi, and having it as a tail bugs up the sprite.
name = "Long Lizard Tail (Roiz Lizden)"

View File

@@ -653,6 +653,7 @@
var/desc = "You should not see this..."
var/ani_state // State when wagging/animated
var/extra_overlay_w // Wagging state for extra overlay
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.
/datum/sprite_accessory/tail/invisible
name = "hide species-sprite tail"
@@ -950,6 +951,7 @@
icon_state = "satyr"
color_blend_mode = ICON_MULTIPLY
do_colouration = 1
hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
/datum/sprite_accessory/tail/tailmaw
name = "tailmaw, colorable"