Allows ability for taller taurs to exist

This commit is contained in:
Heroman
2023-07-09 18:31:19 +10:00
parent 3af94347b0
commit 7f0b898462
7 changed files with 51 additions and 14 deletions
@@ -310,6 +310,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
if(tail_style.clip_mask) //VOREStation Edit.
icon_key += tail_style.clip_mask_state
if(tail_style)
pixel_x = tail_style.mob_offset_x
pixel_y = tail_style.mob_offset_y
default_pixel_x = tail_style.mob_offset_x
default_pixel_y = tail_style.mob_offset_y
icon_key = "[icon_key][husk ? 1 : 0][fat ? 1 : 0][hulk ? 1 : 0][skeleton ? 1 : 0]"
var/icon/base_icon
if(human_icon_cache[icon_key])
@@ -323,10 +329,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
var/apply_extra_transparency_foot = organs_by_name[BP_L_FOOT] && organs_by_name[BP_R_FOOT]
var/icon/Cutter = null
var/icon_x_offset = 0
var/icon_y_offset = 0
if(istype(tail_style, /datum/sprite_accessory/tail/taur)) // Tail icon 'cookie cutters' are filled in where icons are preserved. We need to invert that.
if(tail_style.clip_mask) //VOREStation Edit.
Cutter = new(icon = tail_style.icon, icon_state = tail_style.clip_mask_state)
Cutter = new(icon = (tail_style.clip_mask_icon ? tail_style.clip_mask_icon : tail_style.icon), icon_state = tail_style.clip_mask_state)
Cutter.Blend("#000000", ICON_MULTIPLY) // Make it all black.
@@ -335,13 +343,16 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
Cutter.Blend("#000000", ICON_MULTIPLY) // Black again.
icon_x_offset = tail_style.offset_x
icon_y_offset = tail_style.offset_y
for(var/obj/item/organ/external/part in organs)
if(isnull(part) || part.is_stump() || part == chest || 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, !wholeicontransparent)
if((part.organ_tag in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT)) && Cutter)
temp.Blend(Cutter, ICON_AND, x = -16)
temp.Blend(Cutter, ICON_AND, x = icon_x_offset, y = icon_y_offset)
//That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST
//And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part)
@@ -904,7 +915,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
if(!back)
return //Why do anything
overlays_standing[BACK_LAYER] = back.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_back_str, default_icon = INV_BACK_DEF_ICON, default_layer = BACK_LAYER)
var/icon/c_mask = tail_style?.clip_mask //TODO: Figure out why the fuck it doesnt work with backpacks. Leaving this in for now, even though for some reason it does nothing.
if(c_mask)
if(istype(back, /obj/item/weapon/storage/backpack/saddlebag))
c_mask = null
overlays_standing[BACK_LAYER] = back.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_back_str, default_icon = INV_BACK_DEF_ICON, default_layer = BACK_LAYER, clip_mask = c_mask)
apply_layer(BACK_LAYER)
@@ -1327,13 +1343,15 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
if(istaurtail(tail_style))
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
working.pixel_x = -16
working.pixel_x = tail_style.offset_x
working.pixel_y = tail_style.offset_y
if(taurtype.can_ride && !riding_datum)
riding_datum = new /datum/riding/taur(src)
verbs |= /mob/living/carbon/human/proc/taur_mount
verbs |= /mob/living/proc/toggle_rider_reins
else if(islongtail(tail_style))
working.pixel_x = -16
working.pixel_x = tail_style.offset_x
working.pixel_y = tail_style.offset_y
return working
return null
@@ -32,8 +32,8 @@
/datum/sprite_accessory/tail/New()
. = ..()
if(clip_mask_icon && clip_mask_state)
clip_mask = icon(icon = clip_mask_icon, icon_state = clip_mask_state)
if(clip_mask_state)
clip_mask = icon(icon = (clip_mask_icon ? clip_mask_icon : icon), icon_state = clip_mask_state)
// Species-unique tails
@@ -8,17 +8,16 @@
/datum/sprite_accessory/tail
name = "You should not see this..."
icon = 'icons/mob/vore/tails_vr.dmi'
var/offset_x = 0
var/offset_y = 0
var/mob_offset_x = 0
var/mob_offset_y = 0
do_colouration = 0 //Set to 1 to enable coloration using the tail color.
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
var/list/lower_layer_dirs = list(SOUTH)
var/icon_loaf = null
/datum/sprite_accessory/tail/New()
. = ..()
if(clip_mask_icon && clip_mask_state)
clip_mask = icon(icon = clip_mask_icon, icon_state = clip_mask_state)
// Species-unique tails
// Everyone tails
@@ -1347,6 +1346,7 @@
/datum/sprite_accessory/tail/longtail
name = "You should not see this..."
icon = 'icons/mob/vore/taurs_vr.dmi'
offset_x = -16
do_colouration = 1 // Yes color, using tail color
color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
@@ -15,6 +15,7 @@
color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
can_ride = TRUE //whether we're real rideable taur or just in that category
offset_x = -16
//Could do nested lists but it started becoming a nightmare. It'd be more fun for lookups of a_intent and m_intent, but then subtypes need to
//duplicate all the messages, and it starts getting awkward. These are singletons, anyway!
@@ -1026,3 +1027,16 @@
icon_state = "fatnaga_s"
extra_overlay = "fatnaga_markings"
/*
/datum/sprite_accessory/tail/taur/teppi // Mostly used as example/template/test subject as to how you use the 'big' taur sprites. Pls give it better icons before uncommenting...
name = "Teppi (Taur)"
icon_state = "teppi_s"
clip_mask_icon = 'icons/mob/vore/taurs128x64_vr.dmi'
icon = 'icons/mob/vore/taurs128x64_vr.dmi'
clip_mask_state = "taur_clip_mask_teppi"
icon_sprite_tag = "teppi"
offset_x = -32
offset_y = -11
mob_offset_y = 11
*/
+7 -2
View File
@@ -375,8 +375,13 @@
load.forceMove(dest)
load.set_dir(get_dir(loc, dest))
load.anchored = FALSE //we can only load non-anchored items, so it makes sense to set this to false
load.pixel_x = initial(load.pixel_x)
load.pixel_y = initial(load.pixel_y)
if(ismob(load))
var/mob/L = load
L.pixel_x = L.default_pixel_x
L.pixel_y = L.default_pixel_y
else
load.pixel_x = initial(load.pixel_x)
load.pixel_y = initial(load.pixel_y)
load.layer = initial(load.layer)
if(ismob(load))
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 204 KiB