From 8fde588d5220eb81abe2a87cd6632bcf71448fce Mon Sep 17 00:00:00 2001 From: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> Date: Wed, 11 May 2022 01:41:19 +0100 Subject: [PATCH] fixes eyes (#13525) * he he funne * Update modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> --- .../mob/living/carbon/human/species.dm | 12 -- code/modules/surgery/organs/eyes.dm | 6 +- .../icons/mob/species/skrell_eyes.dmi | Bin 581 -> 920 bytes .../icons/mob/species/teshari_eyes.dmi | Bin 708 -> 1039 bytes .../icons/mob/species/vox_eyes.dmi | Bin 587 -> 921 bytes .../mob/living/carbon/human/species.dm | 123 ++++-------------- .../modules/mutants/icons/mutant_eyes.dmi | Bin 285 -> 300 bytes 7 files changed, 31 insertions(+), 110 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 3a74e1c133b..e884c4b7b85 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -575,18 +575,6 @@ GLOBAL_LIST_EMPTY(features_by_species) // eyes if(!(NOEYESPRITES in species_traits)) - var/obj/item/organ/eyes/E = H.getorganslot(ORGAN_SLOT_EYES) - var/mutable_appearance/eye_overlay - if(!E) - eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER) - else - eye_overlay = mutable_appearance('icons/mob/human_face.dmi', E.eye_icon_state, -BODY_LAYER) - if((EYECOLOR in species_traits) && E) - eye_overlay.color = "#" + H.eye_color - if(OFFSET_FACE in H.dna.species.offset_features) - eye_overlay.pixel_x += H.dna.species.offset_features[OFFSET_FACE][1] - eye_overlay.pixel_y += H.dna.species.offset_features[OFFSET_FACE][2] - standing += eye_overlay var/obj/item/organ/eyes/eye_organ = species_human.getorganslot(ORGAN_SLOT_EYES) var/mutable_appearance/no_eyeslay var/add_pixel_x = 0 diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index d3effba7b8d..580302005f5 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -115,8 +115,10 @@ if(!istype(parent) || parent.getorgan(/obj/item/organ/eyes) != src) CRASH("Generating a body overlay for [src] targeting an invalid parent '[parent]'.") - var/mutable_appearance/eye_left = mutable_appearance('icons/mob/human_face.dmi', "[eye_icon_state]_l", -BODY_LAYER) - var/mutable_appearance/eye_right = mutable_appearance('icons/mob/human_face.dmi', "[eye_icon_state]_r", -BODY_LAYER) + var/eye_icon = parent.dna?.species.eyes_icon || 'icons/mob/human_face.dmi' // SKYRAT EDIT ADDITION + + var/mutable_appearance/eye_left = mutable_appearance(eye_icon, "[eye_icon_state]_l", -BODY_LAYER) // SKYRAT EDIT CHANGE + var/mutable_appearance/eye_right = mutable_appearance(eye_icon, "[eye_icon_state]_r", -BODY_LAYER) // SKYRAT EDIT CHANGE if(EYECOLOR in parent.dna?.species.species_traits) eye_right.color = eye_color_right diff --git a/modular_skyrat/master_files/icons/mob/species/skrell_eyes.dmi b/modular_skyrat/master_files/icons/mob/species/skrell_eyes.dmi index 03977a4ffb4de8b5efcd65b72ddadff0f03cd215..020b3251f95d7c0d6a33b9150b7f0c37d1c7be39 100644 GIT binary patch literal 920 zcmeAS@N?(olHy`uVBq!ia0vp^3qY8I4M=vMPuB%f{Z%0mB`&GO$wiq3C7Jno3=9=> zrk>fz)odWr`q1*bCf}~<+jgaC3Z7iBUZLswlcuN>yt=i&`R;Nx^|9~!Kc&KC?fZvT z{`!7e=Xu4xKJ|L08{D^H#k&+G?~b45CjB!L13$EvMsOKTR%vzhP4jzvimUs!y!Y`N zTB|m-DtdPOjM?;|W{pMZ?sjjJz0I#}Y8gMTh+S&0Tyc$of$4~+i(^Q|oVRxj{T>I1 zI9xPXlxqIP({pmGgZNpe7YT})K~D2|eUAE_2vJsSxgZd|FJb=W2+zj-_They9>v<& z+OA#jX>}aKX*Gu+CKXkOpv5dZ;@0~o|B?L{zw>$Wyy}96KVnY*oRYQFqhKGU^f_0{h)W}0ujU4C5t<)*j; z67%NI*I&1O{p(bpr26{e?RRDG?fY8s_1C6b_wU~c&6YaU;1#s_C&#mNYPjhjquA${ zr)E|Z&pvN{<-%+E&wLh7=j?iKAe=Au`KMdSH9MYp{67xv*`=9c{PCID{QMOQ|JQ$J z^!zF4BH$Us!x7`GWcy4+7_I%s8z58^^!XB{yHf+85X6Mfa?&p>Y-LNzS eHi~%StN2#7gX>RLzrGI4Y7CyPelF{r5}E*d$ZfI! literal 581 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoHB})IB`&GO$wiq3C7Jno3=9=> zN>3SbH9H8fUZ{F5BLCJ^_;zNB>$VHpEC)NSTe+;go3?M?;5G5nLG6oQoo75a?jY~E z>^PrW^wlT(c0J)Z_SsRdYn|c!4L0eFizfuHQP`egWDr&K-XuRM!DRo-tt)4~d%Ztq z(R`af5-*q(@2Qt?az4Dnz`)qz>EaktG3V{=jl4|`5)O%m+wz?Gm-04exXT>zW8b*2 zWghFAJ1#l;$0Uj+=0D%NUU7!R#p&EL?!t8Sn6phryWP48w*M456XE>(3P% zKmYB%zM)WN`G*<1Z`@z_!Enk`TZS}-8H@>R4U%Ls#AF+0ac10l7x7*{_;T6t^ye!( zxjrZxGv01bo)l)7uXTEpMBBs5*FR1BoVYprmR`-vE&F1{pC3+ZkGbH(mvLYZ=V6E= z4VVuQ%h1V6zGlDjwbb95aG>wN8fVKk+?YTAmyg4X$=VNQ|Nb(09w*1yI-c51@&BbK m0okec@(=zuoFUnhH)Ny#`}HO&CA^SSwxmct~IRh#;zZdLdQJ}JYFbBIxV_-#4#Zt%e1{vvC;8gtFF$W z)v`>{;_GAo)TjA>cHQ{(wq3+eUhyd3C&!uDD$A@pV_(g2)O@wi>FU;BytWK^t5p;PNjKjG6PDQ~S~`-#dM`ZNgOTv}6D7MQ4g~KRkb~ z;pf+~y>a>hUthoAJus2QVHSgjFheGjf-l1o&IS|432F?NSR8I0X6!M1r)~b}P1bY6 zXLtJU9p>7{D7MPQ;MpBJz3Jz}J06_ve^_y3M)B_0^|vqn{t?flaCW}~k^xvvC01}6 z+Xt@4o8$u}yX(ZX&sRq>tT!>9_c`is;^q>YU#rjbEI<60VM!&28j6#NH5}8&+f*2o zFMcncwplKD&;KoTX8&aysu{mQ`1jv`w@>c*zW%lH_b)3{A78x7y2DV8SJ!U@ z`d_a2(fmp=+vkt#7%thcOa@06nbyH#8>qe7qQUU_x68Y7`im`2NA5pW@uQtdqBu`} z`swF0ihu8l+p~T7rsI|tufNL4_1itWlXv~~x7yfkAd#(i_#I}oCjb)-v973--`lwO ztY!Z_CiYLfICVvf9hhef^s1cg^G#o*6Z*}UncHjY{x-bxwyZk(>-KXWtV}A{P*W`- c2mECgU$;tahiXtNFo!dEy85}Sb4q9e0IX(@*8l(j literal 708 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRS6RScZN?cNllZ!G7N;32F7#J$% z^q$$v)odWr_R#XVmR*VN(TM9hszEYe#8f6+R(Zhxq@}C;{=(pPr{m&s_oTl6GxXW; z*g^l?q;I@zceg5*s>Cbten@R_tm0Lb)9_tUxuGitPR=> zF^mtm7{VELFdYzOSjSMn+F&hvK;rSoS8H|^u^Xp<A#-g8q z(A@p<3Aew6r{5HWbq%m%lUj zX|WsIZyN7XV7l(D0Cpb%^P#@Ls_M?q-;Bq0?6o?*?#AIalFR?e+8ogb>+R2yT5(tlYIW3UE=Y#p91G0u3h|_v0yLDBh=u+Y7s`DqN;jV suh&tr2kMN!wldelAwiF-3cGLR15T6$9=4uj3rv;_p00i_>zopr0JFmtQ2+n{ diff --git a/modular_skyrat/master_files/icons/mob/species/vox_eyes.dmi b/modular_skyrat/master_files/icons/mob/species/vox_eyes.dmi index 317c43ee7180a7088b368c2b2042d2bdd33176b8..dbad22cf1f1839d391cccdf4b6dc604bf7526831 100644 GIT binary patch literal 921 zcmeAS@N?(olHy`uVBq!ia0vp^3qY8I4M=vMPuB%fld3`@N?cNllZ!G7N;32F7#J$% zOg*!gtJy&0=ts-%ntZ#a*X>Bt6g;_Ly+YIVCrwc&cy()k^DXsWIH8Zd?s@#||;DZ4HI`Ook7lRwY@{{4Qu zJpa0{n%|fweG>Gcg2hY3_&)^gesygRbAP|C)PtA*cBv*ye%|v}%lgBzOshV_OSX;i zH+O!Htg*eFt>FEB)$S{=FKv>aFoilE&njiyw_W|hy94Igx6kib#o+&)f8M zN>3SbH9H8fUZ{F5BLCJ^_;zNB>$VHpEC)NSTe+;go3?M?;5G5nLG6oQoo75a?jY~E z>^PrW^wlT(c0J)Z_SsRdYn|c!4L0eFizfuX*}8J(yKKk2izx|Pp4`j4cjQ1u-RJ!w zi{{(>k$A!6&8%MXsv)q5fq}8h)5S5QV$Rz;{#l0{Bpg0U*&K|?IJEt%&AQ3!s^{gY z?!9ruRWRtqe8~=**L&`JxtTny_TWgd(K-D|>72uShxa@T#tdf|444nhVt&$L>3*hu z?blVMV!n(;M{4v^t)?2~UiV+>^E_zTJ>{I|!Pec$ry1?^rvKD^^!aPr-&%>d{P){y z?r;8SH2+kj%pSqyO2IZshBSs5j0tQF-eE3~4+Yx(N28h{$SeC?<=u5p=Ukt1 z>DT3SxyY}NUv5A6eII*5{yY8#((StTW>S88Yr)e*9xXcHmpN2fLqt|NdeAcZNU9 lejmTQm;c2al6?@%m}C)h`85;63t;MC@O1TaS?83{1OPxf=b-=q diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm index cac5113a36e..9d2b459dc8a 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm @@ -335,85 +335,6 @@ GLOBAL_LIST_EMPTY(customizable_races) /datum/species/proc/get_random_body_markings(list/features) //Needs features to base the colour off of return list() -/* -/datum/species/proc/on_species_gain(mob/living/carbon/C, datum/species/old_species) - // Drop the items the new species can't wear - if((AGENDER in species_traits)) - C.gender = PLURAL - for(var/slot_id in no_equip) - var/obj/item/thing = C.get_item_by_slot(slot_id) - if(thing && (!thing.species_exception || !is_type_in_list(src,thing.species_exception))) - C.dropItemToGround(thing) - - if(C.hud_used) - C.hud_used.update_locked_slots() - - C.mob_biotypes = inherent_biotypes - - regenerate_organs(C,old_species) - - if(exotic_bloodtype && C.dna.blood_type != exotic_bloodtype) - C.dna.blood_type = exotic_bloodtype - - if(old_species.mutanthands) - for(var/obj/item/I in C.held_items) - if(istype(I, old_species.mutanthands)) - qdel(I) - - if(mutanthands) - // Drop items in hands - // If you're lucky enough to have a TRAIT_NODROP item, then it stays. - for(var/V in C.held_items) - var/obj/item/I = V - if(istype(I)) - C.dropItemToGround(I) - else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand - INVOKE_ASYNC(C, /mob/living/carbon.proc/put_in_hands, new mutanthands()) - - if(ishuman(C)) - var/mob/living/carbon/human/human = C - for(var/obj/item/organ/external/organ_path as anything in external_organs) - //Load a persons preferences from DNA - var/feature_key_name = human.dna.features[initial(organ_path.feature_key)] - - var/obj/item/organ/external/new_organ = SSwardrobe.provide_type(organ_path) - new_organ.set_sprite(feature_key_name) - new_organ.Insert(human) - - for(var/X in inherent_traits) - ADD_TRAIT(C, X, SPECIES_TRAIT) - - if(TRAIT_VIRUSIMMUNE in inherent_traits) - for(var/datum/disease/A in C.diseases) - A.cure(FALSE) - - if(TRAIT_TOXIMMUNE in inherent_traits) - C.setToxLoss(0, TRUE, TRUE) - - if(TRAIT_OXYIMMUNE in inherent_traits) - C.setOxyLoss(0, TRUE, TRUE) - - if(TRAIT_NOMETABOLISM in inherent_traits) - C.reagents.end_metabolization(C, keep_liverless = TRUE) - - if(TRAIT_GENELESS in inherent_traits) - C.dna.remove_all_mutations() // Radiation immune mobs can't get mutations normally - - if(inherent_factions) - for(var/i in inherent_factions) - C.faction += i //Using +=/-= for this in case you also gain the faction from a different source. - - if(flying_species && isnull(fly)) - fly = new - fly.Grant(C) - - for(var/obj/item/bodypart/B in C.bodyparts) - B.alpha = specific_alpha - - C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, multiplicative_slowdown=speedmod) - - SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species) -*/ /datum/species/proc/handle_body(mob/living/carbon/human/species_human) species_human.remove_overlay(BODY_LAYER) @@ -433,24 +354,34 @@ GLOBAL_LIST_EMPTY(customizable_races) // eyes if(!(NOEYESPRITES in species_traits)) - var/obj/item/organ/eyes/eyes = species_human.getorganslot(ORGAN_SLOT_EYES) - var/mutable_appearance/eye_overlay - var/mutable_appearance/eye_emissive - var/eye_icon = eyes_icon || 'icons/mob/human_face.dmi' - eyes ? (eye_overlay = mutable_appearance(eye_icon, eyes.eye_icon_state, -eyes.eyes_layer)) : (eye_overlay = mutable_appearance(eye_icon, "eyes_missing", -eyes?.eyes_layer)) - if(eyes?.is_emissive) - eye_emissive = emissive_appearance_copy(eye_overlay) - if((EYECOLOR in species_traits) && eyes) - eye_overlay.color = species_human.eye_color_left + var/obj/item/organ/eyes/eye_organ = species_human.getorganslot(ORGAN_SLOT_EYES) + var/mutable_appearance/no_eyeslay + + var/add_pixel_x = 0 + var/add_pixel_y = 0 + //cut any possible vis overlays + if(length(body_vis_overlays)) + SSvis_overlays.remove_vis_overlay(species_human, body_vis_overlays) + if(OFFSET_FACE in species_human.dna.species.offset_features) - eye_overlay.pixel_x += species_human.dna.species.offset_features[OFFSET_FACE][1] - eye_overlay.pixel_y += species_human.dna.species.offset_features[OFFSET_FACE][2] - if (eye_emissive) - eye_emissive.pixel_x += species_human.dna.species.offset_features[OFFSET_FACE][1] - eye_emissive.pixel_y += species_human.dna.species.offset_features[OFFSET_FACE][2] - standing += eye_overlay - if (eye_emissive) - standing += eye_emissive + add_pixel_x = species_human.dna.species.offset_features[OFFSET_FACE][1] + add_pixel_y = species_human.dna.species.offset_features[OFFSET_FACE][2] + + if(!eye_organ) + no_eyeslay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER) + no_eyeslay.pixel_x += add_pixel_x + no_eyeslay.pixel_y += add_pixel_y + standing += no_eyeslay + + if(!no_eyeslay) + for(var/eye_overlay in eye_organ.generate_body_overlay(species_human)) + standing += eye_overlay + if(eye_organ.is_emissive) + var/mutable_appearance/eye_emissive = emissive_appearance_copy(eye_overlay) + eye_emissive.pixel_x += species_human.dna.species.offset_features[OFFSET_FACE][1] + eye_emissive.pixel_y += species_human.dna.species.offset_features[OFFSET_FACE][2] + standing += eye_emissive + //Underwear, Undershirts & Socks if(!(NO_UNDERWEAR in species_traits)) diff --git a/modular_skyrat/modules/mutants/icons/mutant_eyes.dmi b/modular_skyrat/modules/mutants/icons/mutant_eyes.dmi index 93356a61a6712aac2f61b23ad923e0280219de8d..c7643a34a94047440af59a4decff3a17f2cbf2bf 100644 GIT binary patch delta 234 zcmbQsw1&yOGr-TCmrII^fq{Y7)59eQNH>5m6El$97tk32q&Ne7LR=3VIB-No^gjc` ztBMjKpde#OkY6x^!?PP{Ku+^SFQ0k~JNM3RW7W+oB$jk{8?V(cG#5Q$<`O(@c4W+) znbYOwPo5R#G^bDL5|18}rNDHtRMv2N@eT5f)6crjJAGuA7SI?cPZ!6Kh}Pr;39|!? zyEib*x!Mrh$h1|~h|BGuhC~Ta>_f&+0}v-cQRP76ItJ$ik)EbN1D}IHVJR**#;uGD YMempd*Yh^?0*zzvboFyt=akR{0Ltb}V*mgE delta 219 zcmZ3(G?&S%Gr-TCmrII^fq{Y7)59eQNGE_W6El#U|84$iAjK2l6XJT{z=0zwqW>8f zfDDuPj3q#E#*!evU zf(Vb90>e_nPn}Ftj-5~k@_Q5**6Onus4V!}%Jg@R5to}514DK;li-7C<^O<2F>rXg L`njxgN@xNAvTI2X