From 0e8dd45de23b5d04ca480e36dbbd51e6f22bbbd2 Mon Sep 17 00:00:00 2001 From: Olive <49600480+zeskorion@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:12:38 -0800 Subject: [PATCH] eye icon stuff (#18955) --- .../mob/living/carbon/human/update_icons.dm | 9 ++- code/modules/organs/robolimbs.dm | 75 +++++++++--------- code/modules/organs/subtypes/standard.dm | 25 +++--- icons/mob/monitor_icons.dmi | Bin 5729 -> 5743 bytes 4 files changed, 57 insertions(+), 52 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 607df8ac9e..db5b0faf85 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -549,10 +549,11 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() return var/icon/eyes_icon = new/icon(head_organ.eye_icon_location, head_organ.eye_icon) - if(eyes) - eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) - else - eyes_icon.Blend(rgb(128,0,0), ICON_ADD) + if(!findtext(head_organ.eye_icon, regex("-colored"))) + if(eyes) + eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) + else + eyes_icon.Blend(rgb(128,0,0), ICON_ADD) // Convert to emissive at some point if (head_organ.transparent) diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 2b47b267e8..1354f67129 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -2,28 +2,29 @@ GLOBAL_LIST_EMPTY(all_robolimbs) GLOBAL_LIST_EMPTY(robolimb_data) GLOBAL_LIST_EMPTY(chargen_robolimbs) GLOBAL_DATUM(basic_robolimb, /datum/robolimb) +//Ending a monitor style with [-colored] will override eye coloration. If you have custom colors on a monitor icon, you should do this. var/const/standard_monitor_styles = "blank=ipc_blank;\ - pink=ipc_pink;\ - green=ipc_green;\ - red=ipc_red;\ - blue=ipc_blue;\ - shower=ipc_shower;\ - orange=ipc_orange;\ - nature=ipc_nature;\ - eight=ipc_eight;\ - goggles=ipc_goggles;\ - heart=ipc_heart;\ - monoeye=ipc_monoeye;\ - breakout=ipc_breakout;\ - yellow=ipc_yellow;\ - static=ipc_static;\ - purple=ipc_purple;\ + pink=ipc_pink-colored;\ + green=ipc_green-colored;\ + red=ipc_red-colored;\ + blue=ipc_blue-colored;\ + shower=ipc_shower-colored;\ + orange=ipc_orange-colored;\ + nature=ipc_nature-colored;\ + eight=ipc_eight-colored;\ + goggles=ipc_goggles-colored;\ + heart=ipc_heart-colored;\ + monoeye=ipc_monoeye-colored;\ + breakout=ipc_breakoutv-colored;\ + yellow=ipc_yellow-colored;\ + static=ipc_static-colored;\ + purple=ipc_purple-colored;\ scroll=ipc_scroll;\ console=ipc_console;\ glider=ipc_gol_glider;\ - rainbow=ipc_rainbow;\ - smiley=ipc_smiley;\ - database=ipc_database" + rainbow=ipc_rainbow-colored;\ + smiley=ipc_smiley-colored;\ + database=ipc_database-colored" /proc/populate_robolimb_list() GLOB.basic_robolimb = new() @@ -245,11 +246,11 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ desc = "This limb has a sturdy and heavy build to it." icon = 'icons/mob/human_races/cyberlimbs/grayson/grayson_main.dmi' unavailable_to_build = 1 - monitor_styles = "blank=grayson_off;\ - red=grayson_red;\ - green=grayson_green;\ - blue=grayson_blue;\ - rgb=grayson_rgb" + monitor_styles = "blank=grayson_off-colored;\ + red=grayson_red-colored;\ + green=grayson_green-colored;\ + blue=grayson_blue-colored;\ + rgb=grayson_rgb-colored" modular_bodyparts = MODULAR_BODYPART_PROSTHETIC //VOREStation Edit - remove the restrictions /datum/robolimb/grayson_alt1 @@ -287,13 +288,13 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ icon = 'icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt1.dmi' unavailable_to_build = 1 parts = list(BP_HEAD) - monitor_styles = "blank=hephaestus_alt_off;\ - pink=hephaestus_alt_pink;\ - orange=hephaestus_alt_orange;\ - goggles=hephaestus_alt_goggles;\ - scroll=hephaestus_alt_scroll;\ - rgb=hephaestus_alt_rgb;\ - rainbow=hephaestus_alt_rainbow" + monitor_styles = "blank=hesphiastos_alt_off-colored;\ + pink=hesphiastos_alt_pink-colored;\ + orange=hesphiastos_alt_orange-colored;\ + goggles=hesphiastos_alt_goggles-colored;\ + scroll=hesphiastos_alt_scroll;\ + rgb=hesphiastos_alt_rgb-colored;\ + rainbow=hesphiastos_alt_rainbow-colored" modular_bodyparts = MODULAR_BODYPART_PROSTHETIC //VOREStation Edit - remove the restrictions /datum/robolimb/hephaestus_alt2 @@ -301,8 +302,8 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ desc = "This rather thick limb has a militaristic green plating." icon = 'icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt2.dmi' unavailable_to_build = 1 - monitor_styles = "red=athena_red;\ - blank=athena_off" + monitor_styles = "red=athena_red-colored;\ + blank=athena_off-colored" modular_bodyparts = MODULAR_BODYPART_PROSTHETIC //VOREStation Edit - remove the restrictions /datum/robolimb/hephaestus_monitor @@ -419,11 +420,11 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ desc = "This limb has a thick orange casing with steel plating." icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt2.dmi' unavailable_to_build = 1 - monitor_styles = "blank=xion_off;\ - red=xion_red;\ - green=xion_green;\ - blue=xion_blue;\ - rgb=xion_rgb" + monitor_styles = "blank=xion_off-colored;\ + red=xion_red-colored;\ + green=xion_green-colored;\ + blue=xion_blue-colored;\ + rgb=xion_rgb-colored" modular_bodyparts = MODULAR_BODYPART_PROSTHETIC //VOREStation Edit - remove the restrictions /datum/robolimb/xion_alt3 diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index 3e3123685b..79fbdb6ce8 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -367,18 +367,21 @@ if((should_have_eyes || has_eye_color) && eye_icon) var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES] var/icon/eyes_icon = new/icon(eye_icon_location, eye_icon) - //Should have eyes - if(should_have_eyes) - //And we have them - if(eyes) - if(has_eye_color) - eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) - //They're gone! + //Do we have a special eye icon with its own coloration? Remove + if(!findtext(eye_icon, regex("-colored"))) + //Should have eyes + if(should_have_eyes) + //And we have them + if(eyes) + if(has_eye_color) + eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) + //They're gone! + else + eyes_icon.Blend(rgb(128,0,0), ICON_ADD) + //We have weird other-sorts of eyes (as we're not supposed to have eye organ, but we have HAS_EYE_COLOR species) else - eyes_icon.Blend(rgb(128,0,0), ICON_ADD) - //We have weird other-sorts of eyes (as we're not supposed to have eye organ, but we have HAS_EYE_COLOR species) - else - eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD) + eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD) + //VOREStation edit -- allow rendering of eyes over markings. if(eyes_over_markings) diff --git a/icons/mob/monitor_icons.dmi b/icons/mob/monitor_icons.dmi index d25c6b7832b454013572c379d503a7e736a32edb..a1aead31e1653c76b1b6aa5efb6058380e180bc3 100644 GIT binary patch delta 552 zcmV+@0@wZFEblC^zySdqlfeNKf2~)+j+-zPJcqA9yH{EPA!#nXRJ*G7(EWwTz>Bfg z@k6%Ll)o<_TLn9SO{koMEoH`&d1L$KIsEbZ^X)x+`Slk32B{c|@Ozkjjf2&hmAYyd z>oizZz-Xnf3#EyMcKXEXVxMy&KE4#lQ9}6?tV$-;g&`DAZZr-ie_I2b3k{g+$JWahqQB zhJ#k1P{_f#ZPFIVazoO5TJ_p8^UhC-d`~$mK{^Anj=EtfAWY=0l71WT;NAyyWE>jr zDkK|QOGz}ziE3DP^&+2`Zm-?nV^$HBw0$g<^Ir`Z$jUVFbDCnD?2km0EgQ4Q>DD z0{BPyh`IARufc8SbYCO(x_dCEh(%@o!)Dso0Ty`I;pZ54kAB><>*k9LYa1k{vG?vJ q!#)vRfgtW*I(7ek6>@l#=Q(_Rf9d}8`~}g>(|0f{SuV5J1Bw#Z^b`;P delta 538 zcmV+#0_FYhEa5D$zySdclfeNKf2CHzZsQ;jJ;z^RwO4CpJ5Dy2y{uYQJ+!|N;dp{k z31b0i>c6k!wh9oi9as1O67N0c%?#!~{{Q&&{2D*JJV);!6+;pKi;F*Lv^cR!*WF^7 zM~fO5t@YPJX`-Q<-mzx4EjbZychRC^Qk{X(VlT-7&hyOP*|5;Yj=us)Uqt+KxUL^KsbEq0mAOnWj;=a*2jaoIRzqjO$i71JnTq1 z)+NA+UeeMJTRNs)`9_g%DQ8uvBaOr_lYThLgo!egvcH~~uj5t+#-SY#d*y0ZM3a)J zfMZKX{DQ4PH8mqjquLU#x47Sr-p?*3d{+;)%9ZrMZB>{}-j6WPf4tkmWf`j9@m#uW zQ;KqxbYp;GsJb?R6PahClC%oNny)(%pa;-Oq=!+@ybkj zjRb59zez?#XQk_dO|+%oIKz`3H^q=^)a_n;iOn*idoVDK#(yL8`#^LJf`lU)y63*J c19soXkFO8?