Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync

This commit is contained in:
xPokee
2025-09-10 14:12:16 -04:00
277 changed files with 8854 additions and 7401 deletions
+5 -30
View File
@@ -123,12 +123,7 @@ Unlike normal organs, we're actually inside a persons limbs at all times
dyable = TRUE
/datum/bodypart_overlay/mutant/horns/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if((human.head?.flags_inv & HIDEHAIR) || (human.wear_mask?.flags_inv & HIDEHAIR))
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDEHAIR)
/datum/bodypart_overlay/mutant/horns/get_global_feature_list()
return SSaccessories.sprite_accessories["horns"] // SKYRAT EDIT - Customization - ORIGINAL: return SSaccessories.horns_list
@@ -155,12 +150,7 @@ Unlike normal organs, we're actually inside a persons limbs at all times
feature_key = FEATURE_FRILLS
/datum/bodypart_overlay/mutant/frills/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if(!(human.head?.flags_inv & HIDEEARS))
return TRUE
return FALSE
return !(bodypart_owner.owner?.obscured_slots & HIDEEARS)
/datum/bodypart_overlay/mutant/frills/get_global_feature_list()
return SSaccessories.sprite_accessories["frills"] // SKYRAT EDIT - Customization - ORIGINAL: return SSaccessories.frills_list
@@ -189,12 +179,7 @@ Unlike normal organs, we're actually inside a persons limbs at all times
feature_key = FEATURE_SNOUT
/datum/bodypart_overlay/mutant/snout/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if((human.head?.flags_inv & HIDESNOUT) || (human.wear_mask?.flags_inv & HIDESNOUT))
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDESNOUT)
/datum/bodypart_overlay/mutant/snout/get_global_feature_list()
return SSaccessories.sprite_accessories["snout"] // SKYRAT EDIT - Customization - ORIGINAL : return SSaccessories.snouts_list
@@ -287,12 +272,7 @@ Unlike normal organs, we're actually inside a persons limbs at all times
if(!.)
return
// BUBBER EDIT ADDITION END: Customization
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if(!(human.head?.flags_inv & HIDEANTENNAE))
return TRUE
return FALSE
return !(bodypart_owner.owner?.obscured_slots & HIDEANTENNAE)
///The leafy hair of a podperson
/obj/item/organ/pod_hair
@@ -338,9 +318,4 @@ Unlike normal organs, we're actually inside a persons limbs at all times
overlay.color = null
/datum/bodypart_overlay/mutant/pod_hair/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if((human.head?.flags_inv & HIDEHAIR) || (human.wear_mask?.flags_inv & HIDEHAIR))
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDEHAIR)
+1 -6
View File
@@ -38,12 +38,7 @@
return SSaccessories.sprite_accessories["spines"] // SKYRAT EDIT - Customization - ORIGINAL: return SSaccessories.spines_list
/datum/bodypart_overlay/mutant/spines/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if(human.wear_suit?.flags_inv & HIDEJUMPSUIT)
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDEJUMPSUIT)
/datum/bodypart_overlay/mutant/spines/set_dye_color(new_color, obj/item/organ/tail/organ)
var/obj/item/organ/tail/tail = organ?.owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL)
+2 -12
View File
@@ -158,12 +158,7 @@
// SKYRAT EDIT ADDITION END
/datum/bodypart_overlay/mutant/tail/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if(human.wear_suit?.flags_inv & HIDEJUMPSUIT)
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDEJUMPSUIT)
/obj/item/organ/tail/cat
name = "tail"
@@ -296,12 +291,7 @@
return (!isnull(tail_spine_key) ? "[tail_spine_key]_" : "") + (wagging ? "wagging_" : "") + sprite_datum.icon_state // Select the wagging state if appropriate
/datum/bodypart_overlay/mutant/tail_spines/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if(human.wear_suit?.flags_inv & HIDEJUMPSUIT)
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDEJUMPSUIT)
/datum/bodypart_overlay/mutant/tail_spines/set_dye_color(new_color, obj/item/organ/organ)
dye_color = new_color //no update_body_parts() call, tail/set_dye_color will do it.
@@ -82,8 +82,8 @@
if(human.stat || human.body_position == LYING_DOWN || isnull(human.client))
return FALSE
//Jumpsuits have tail holes, so it makes sense they have wing holes too
if(!cant_hide && human.wear_suit && ((human.wear_suit.flags_inv & HIDEJUMPSUIT) && (!human.wear_suit.species_exception || !is_type_in_list(src, human.wear_suit.species_exception))))
to_chat(human, span_warning("Your suit blocks your wings from extending!"))
if(!cant_hide && (human.obscured_slots & HIDEJUMPSUIT))
to_chat(human, span_warning("Your clothing blocks your wings from extending!"))
return FALSE
var/turf/location = get_turf(human)
if(!location)
+2 -11
View File
@@ -54,11 +54,7 @@
return FALSE
if(owner.has_gravity())
return FALSE
if(ishuman(owner))
var/mob/living/carbon/human/human_owner = owner
if(human_owner.wear_suit?.flags_inv & HIDEMUTWINGS)
return FALSE //Can't fly with hidden wings
if(burnt)
if((owner.obscured_slots & HIDEMUTWINGS) || burnt)
return FALSE
var/datum/gas_mixture/current = owner.loc.return_air()
if(current && (current.return_pressure() >= ONE_ATMOSPHERE*0.85))
@@ -119,12 +115,7 @@
if(!.)
return
// BUBBER EDIT ADDITION END - Customization
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if(human.wear_suit?.flags_inv & HIDEMUTWINGS)
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDEMUTWINGS)
/datum/bodypart_overlay/mutant/wings/moth/get_base_icon_state()
return burnt ? burn_datum.icon_state : sprite_datum.icon_state
+1 -11
View File
@@ -25,14 +25,4 @@
feature_key = FEATURE_WINGS
/datum/bodypart_overlay/mutant/wings/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if(!human.wear_suit)
return TRUE
if(!(human.wear_suit.flags_inv & HIDEJUMPSUIT))
return TRUE
if(human.wear_suit.species_exception && is_type_in_list(src, human.wear_suit.species_exception))
return TRUE
return FALSE
return !(bodypart_owner.owner?.obscured_slots & HIDEJUMPSUIT)
@@ -178,12 +178,7 @@
return SSaccessories.sprite_accessories["ears"] // SKYRAT EDIT - Customization - ORIGINAL: return SSaccessories.ears_list
/datum/bodypart_overlay/mutant/cat_ears/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!istype(human))
return TRUE
if((human.head?.flags_inv & HIDEHAIR) || (human.wear_mask?.flags_inv & HIDEHAIR))
return FALSE
return TRUE
return !(bodypart_owner.owner?.obscured_slots & HIDEHAIR)
/datum/bodypart_overlay/mutant/cat_ears/get_image(image_layer, obj/item/bodypart/limb)
var/mutable_appearance/base_ears = ..()
@@ -275,8 +275,7 @@
var/mutable_appearance/eye_right = mutable_appearance(eye_icon, "[eye_icon_state]_r", -eyes_layer, parent) // SKYRAT EDIT CHANGE - Customization - ORIGINAL: var/mutable_appearance/eye_right = mutable_appearance('icons/mob/human/human_face.dmi', "[eye_icon_state]_r", -EYES_LAYER, parent)
var/list/overlays = list(eye_left, eye_right)
var/obscured = parent.check_obscured_slots()
if(overlay_ignore_lighting && !(obscured & ITEM_SLOT_EYES))
if(overlay_ignore_lighting && !(parent.obscured_slots & HIDEEYES))
overlays += emissive_appearance(eye_left.icon, eye_left.icon_state, parent, -EYES_LAYER, alpha = eye_left.alpha)
overlays += emissive_appearance(eye_right.icon, eye_right.icon_state, parent, -EYES_LAYER, alpha = eye_right.alpha)
@@ -470,7 +469,8 @@
/// Animates one eyelid at a time, thanks BYOND and thanks animation chains
/obj/item/organ/eyes/proc/animate_eyelid(obj/effect/abstract/eyelid_effect/eyelid, mob/living/carbon/human/parent, sync_blinking = TRUE, list/anim_times = null)
. = list()
if(isnull(eyelid)) // Can't blink if we don't have an eyelid
return
var/prevent_loops = HAS_TRAIT(parent, TRAIT_PREVENT_BLINK_LOOPS)
animate(eyelid, alpha = 0, time = 0, loop = (prevent_loops ? 0 : -1))