fixes up the transparency/marking customization toggling in modular code (#6776)

This commit is contained in:
Seris02
2023-08-14 08:08:09 +02:00
committed by GitHub
parent c75f9447d3
commit cbbe485faf
@@ -1,4 +1,4 @@
/obj/item/organ/external/get_icon(var/skeletal)
/obj/item/organ/external/get_icon(var/skeletal, var/can_apply_transparency = TRUE)
var/digitigrade = 0
// preferentially take digitigrade value from owner if available, THEN DNA.
@@ -10,6 +10,8 @@
else if(dna)
digitigrade = check_digi && dna.digitigrade
var/should_apply_transparency = FALSE
var/gender = "m"
var/skip_forced_icon = skip_robo_icon || (digi_prosthetic && digitigrade)
if(owner && owner.gender == FEMALE)
@@ -39,23 +41,29 @@
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
else if (robotic >= ORGAN_ROBOT && !skip_forced_icon)
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
should_apply_transparency = TRUE
apply_colouration(mob_icon)
else
if(is_hidden_by_markings())
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
should_apply_transparency = TRUE
else
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
should_apply_transparency = TRUE
apply_colouration(mob_icon)
if (model && !skip_forced_icon)
icon_cache_key += "_model_[model]"
should_apply_transparency = TRUE
apply_colouration(mob_icon)
//Code here is copied from organ_icon.dm line 118 at time of writing (9/20/21), VOREStation edits are left in intentionally, because I think it's worth keeping track of the fact that the code is from Virgo's edits.
//Body markings, actually does not include head this time. Done separately above.
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !skip_forced_icon)) || (model && owner && owner.synth_markings))
for(var/M in markings)
if (!markings[M]["on"])
continue
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
var/isdigitype = mark_style.digitigrade_acceptance
if(check_digi)
@@ -83,6 +91,9 @@
icon_cache_key += "_[nail_polish.icon]_[nail_polish.icon_state]_[nail_polish.color]"
// VOREStation edit end
if (transparent && !istype(src,/obj/item/organ/external/head) && can_apply_transparency && should_apply_transparency) //VORESTATION EDIT: transparent instead of nonsolid
mob_icon += rgb(,,,180) //do it here so any markings become transparent as well
dir = EAST
icon = mob_icon
return mob_icon