[Nova Port] Updates and moves the Bodypart Overlay files (#5322)

## About The Pull Request
Updates the files inside `./code/datums/bodypart_overlays`. I achieved
this by moving the files to
`modular_zubbers/code/datums/bodypart_overlays`, and updated the code to
match
https://github.com/NovaSector/NovaSector/commits/master/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm
up to a15c82801f9771265669b3eff33062f4d863e730 except for their handling
of mutant bodyparts.
## Why It's Good For The Game
Better code.
## Proof Of Testing
See below.
<details>
<summary>Screenshots/Videos</summary>
<img width="243" height="308" alt="image"
src="https://github.com/user-attachments/assets/d7b4fd92-ff59-414d-a5d3-7c947d2954ed"
/>


https://github.com/user-attachments/assets/7661df22-549b-4526-b970-1f21daaf2f7f

</details>

## Changelog
Not player facing.
This commit is contained in:
Alexis
2026-04-11 08:57:56 -06:00
committed by The Sharkening
parent 21b69e8b34
commit a403562b9f
3 changed files with 15 additions and 12 deletions
@@ -34,12 +34,13 @@
/datum/bodypart_overlay/mutant/proc/set_appearance_from_dna(datum/dna/dna, accessory_name, feature_key)
if(isnull(feature_key)) // if not explicitly set, just use the feature_key of the bodypart_overlay
feature_key = src.feature_key
if(!dna.mutant_bodyparts[feature_key])
var/list/mutantparts_list = dna.mutant_bodyparts[feature_key] ? dna.mutant_bodyparts : dna.species.mutant_bodyparts
if(!(feature_key in mutantparts_list) || !mutantparts_list[feature_key])
return FALSE
sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : dna.mutant_bodyparts[feature_key][MUTANT_INDEX_NAME])
sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : mutantparts_list[feature_key][MUTANT_INDEX_NAME])
modsuit_affected = sprite_datum.use_custom_mod_icon
draw_color = dna.mutant_bodyparts[feature_key][MUTANT_INDEX_COLOR_LIST]
build_emissive_eligibility(dna.mutant_bodyparts[feature_key][MUTANT_INDEX_EMISSIVE_LIST])
draw_color = mutantparts_list[feature_key][MUTANT_INDEX_COLOR_LIST]
build_emissive_eligibility(mutantparts_list[feature_key][MUTANT_INDEX_EMISSIVE_LIST])
cache_key = jointext(generate_icon_cache(), "_")
return TRUE
@@ -87,9 +88,9 @@
/datum/bodypart_overlay/mutant/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner)
var/mob/living/carbon/human/human = bodypart_owner.owner
if(!human)
if(!istype(human))
return TRUE
return !sprite_datum.is_hidden(human)
return !isnull(sprite_datum) && !sprite_datum.is_hidden(human)
/// Get the images we need to draw on the person. Called from get_overlay() which is called from _bodyparts.dm.
@@ -183,16 +184,18 @@
switch(sprite_datum.color_src)
if(USE_ONE_COLOR)
overlay.color = islist(draw_color) ? draw_color[i] : draw_color
overlay.alpha = alpha
if(USE_MATRIXED_COLORS)
overlay.color = islist(draw_color) ? draw_color[i] : draw_color
overlay.alpha = alpha
if (i > length(draw_color))
overlay.color = islist(draw_color) ? draw_color[length(draw_color)] : draw_color
else
overlay.color = islist(draw_color) ? draw_color[i] : draw_color
i++
else
overlay.color = limb?.color
overlay.alpha = alpha
overlay.alpha = alpha
/**
+2 -2
View File
@@ -7010,8 +7010,6 @@
#include "modular_skyrat\master_files\code\datums\emotes.dm"
#include "modular_skyrat\master_files\code\datums\ert.dm"
#include "modular_skyrat\master_files\code\datums\outfit.dm"
#include "modular_skyrat\master_files\code\datums\bodypart_overlays\bodypart_overlay.dm"
#include "modular_skyrat\master_files\code\datums\bodypart_overlays\mutant_bodypart_overlay.dm"
#include "modular_skyrat\master_files\code\datums\components\crafting.dm"
#include "modular_skyrat\master_files\code\datums\components\damage_tracker.dm"
#include "modular_skyrat\master_files\code\datums\components\fullauto.dm"
@@ -8965,6 +8963,8 @@
#include "modular_zubbers\code\datums\ai_laws\laws_antagonistic.dm"
#include "modular_zubbers\code\datums\ai_laws\laws_neutral.dm"
#include "modular_zubbers\code\datums\ai_laws\laws_station_sided.dm"
#include "modular_zubbers\code\datums\bodypart_overlays\bodypart_overlay.dm"
#include "modular_zubbers\code\datums\bodypart_overlays\mutant_bodypart_overlay.dm"
#include "modular_zubbers\code\datums\brain_damage\magic.dm"
#include "modular_zubbers\code\datums\components\nanites.dm"
#include "modular_zubbers\code\datums\components\organ_emp.dm"