From cf491a56b7af322064b734b53421bed52d9102a5 Mon Sep 17 00:00:00 2001 From: SplinterGP Date: Thu, 20 Aug 2020 22:24:23 -0300 Subject: [PATCH 1/2] Gives FBP's a proc to change their monitor display without using a mask item. --- .../preference_setup/loadout/loadout_xeno.dm | 5 --- .../mob/living/carbon/human/human_helpers.dm | 4 ++ .../mob/living/carbon/human/human_powers.dm | 25 ++++++++++++ .../mob/living/carbon/human/update_icons.dm | 5 ++- code/modules/organs/robolimbs.dm | 1 + html/changelogs/splintergp-PR-7452.yml | 37 ++++++++++++++++++ icons/mob/monitor_icons.dmi | Bin 5738 -> 5729 bytes vorestation.dme | 1 - 8 files changed, 70 insertions(+), 8 deletions(-) create mode 100644 html/changelogs/splintergp-PR-7452.yml diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno.dm b/code/modules/client/preference_setup/loadout/loadout_xeno.dm index a7669a837fa..2cad142833e 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno.dm @@ -134,11 +134,6 @@ cloaks[initial(cloak_type.name)] = cloak_type gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cloaks)) -/datum/gear/mask/ipc_monitor - display_name = "display monitor (Full Body Prosthetic)" - path = /obj/item/clothing/mask/monitor - sort_category = "Xenowear" - /datum/gear/uniform/harness display_name = "gear harness (Full Body Prosthetic, Diona)" path = /obj/item/clothing/under/harness diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index f9c15a48525..e1d1e10e70d 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -102,7 +102,11 @@ var/obj/item/organ/external/T = organs_by_name[BP_TORSO] if(T && T.robotic >= ORGAN_ROBOT) src.verbs += /mob/living/carbon/human/proc/self_diagnostics +<<<<<<< HEAD src.verbs += /mob/living/carbon/human/proc/reagent_purge //VOREStation Add +======= + src.verbs += /mob/living/carbon/human/proc/setmonitor_state +>>>>>>> 42e2305... Gives FBP's a proc to change their monitor display without using a mask item. (#7452) var/datum/robolimb/R = all_robolimbs[T.model] synthetic = R return synthetic diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 9c1a2ef398f..f9013f83108 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -347,3 +347,28 @@ to_chat(src, "Your regeneration is interrupted!") adjust_nutrition(-75) active_regen = FALSE + +/mob/living/carbon/human/proc/setmonitor_state() + set name = "Set monitor display" + set desc = "Set your monitor display" + set category = "IC" + if(stat) + to_chat(src,"You must be awake and standing to perform this action!") + return + var/obj/item/organ/external/head/E = organs_by_name[BP_HEAD] + if(!E) + to_chat(src,"You don't seem to have a head!") + return + var/datum/robolimb/robohead = all_robolimbs[E.model] + if(!robohead.monitor_styles || !robohead.monitor_icon) + to_chat(src,"Your head doesn't have a monitor or it doens't support to be changed!") + return + var/list/states + if(!states) + states = params2list(robohead.monitor_styles) + var/choice = input("Select a screen icon.") as null|anything in states + if(choice) + E.eye_icon_location = robohead.monitor_icon + E.eye_icon = states[choice] + to_chat(src,"You set your monitor to display [choice]!") + update_icons_body() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 8cb2f44a088..99a0c828d1e 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -243,7 +243,9 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() icon_key += "[rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3])]" else icon_key += "[r_eyes], [g_eyes], [b_eyes]" - + var/obj/item/organ/external/head/head = organs_by_name[BP_HEAD] + if(head) + icon_key += "[head.eye_icon]" for(var/organ_tag in species.has_limbs) var/obj/item/organ/external/part = organs_by_name[organ_tag] if(isnull(part) || part.is_stump() || part.is_hidden_by_tail()) //VOREStation Edit allowing tails to prevent bodyparts rendering, granting more spriter freedom for taur/digitigrade stuff. @@ -281,7 +283,6 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() icon_key += "_t" //VOREStation Edit. icon_key = "[icon_key][husk ? 1 : 0][fat ? 1 : 0][hulk ? 1 : 0][skeleton ? 1 : 0]" - var/icon/base_icon if(human_icon_cache[icon_key]) base_icon = human_icon_cache[icon_key] diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 8a06b043d06..e82479fb5b5 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -45,6 +45,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ var/company = "Unbranded" // Shown when selecting the limb. var/desc = "A generic unbranded robotic prosthesis." // Seen when examining a limb. var/icon = 'icons/mob/human_races/robotic.dmi' // Icon base to draw from. + var/monitor_icon = 'icons/mob/monitor_icons.dmi' // Where it draws the monitor icon from. var/unavailable_at_chargen // If set, not available at chargen. var/unavailable_to_build // If set, can't be constructed. var/lifelike // If set, appears organic. diff --git a/html/changelogs/splintergp-PR-7452.yml b/html/changelogs/splintergp-PR-7452.yml new file mode 100644 index 00000000000..0ebe2d5ace0 --- /dev/null +++ b/html/changelogs/splintergp-PR-7452.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: SplinterGP + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added verb for FBP's to change their monitor display." + - rscdel: "Removed monitor mask item(replaced by verb)." diff --git a/icons/mob/monitor_icons.dmi b/icons/mob/monitor_icons.dmi index cd7de49fb9ab365f0ae5b09c9f8e200170fe8d90..d25c6b7832b454013572c379d503a7e736a32edb 100644 GIT binary patch delta 4049 zcmYLL3p|ti|EJ3&Mx|0HlIS41TD94u4&pd9b=x zbEV8W#-+!@YXkXGEAoDBy0tiRpa&1p8_# zFb(r*Ca|SGTVwx%taUk!jpKQzVpmG|vFvq&Z&n8}tw5duxVeSZM((5^yEY`-QflY`eB=Z^KPt|9vTeK2fbtvgU&wgVvBr(et)i$^t*6>6MC^wTM6+8y)Q$w$nT5W5<3* z0Frw2r1sde!fUQdFDg}vt9db_ikWO%n^M^_WA{T#roj-1z-?<2E5#aoLsJvA28^L& z9M00JfZ@;?!EmFL<4aR@mk$lokItMGwR@p*RD2B}WD)XMLbZO~zP#ZX7MX55x;=>S z>O%(Il3F0vgFm5_lj6SeNd(QQG+2PuxH|wGmC2Nh&e|x0RNc-~kV*iO9?KQFXsRn1 z+c4`)PIi&%zS|O7_&rqs7g>b|j#!#8!Z2256uEB(g55aYh^06!bxAtR1E!{-6p z8MiUEy1k5Nn2oyk88VEOZa8C^9syJGYg=BDJ;P7WHt5=ps}hMN3KZeUwSe1P7YE$y zr%f?z5eZ0XXvQS(KA6IiXg3I4WK*1R46!t;K=h;@po;sw)=J|CC zC8`ie!5cuTBzEmgj||JnS9c28vKk0)b`64kFp}pFM9n_bUs2% zI&f>}!7utsSi$2{(sPL^@~JTx);bc4@$Fq*bKjF#my!mq1Ma5XO}ii_rqmVqjV~qz zQ)I38No;0tQi<5)^XS|?sEyNP1yG5z*nDuYWzn64t-Z0h9M(k$c`;X{&hi|@Pupp@ zrfk`KoAKYy*Qxk7@|?BB!ClxrOA&J z=EI?Meiy2rypyxVXIk&v@a0aif%acZF&C}O(co@JSqKUp4(xyeiO%zyb?-Z1J6iNAe64j?_ZZ6 zLZw3ok9vp$H^fx-nZjkdlCbmHA^!1He!v&#q`!o|VjBJz)Kht^DK$Shd0YiS<(sMq zIl{U2a4M*py=lL!!CQkk2jQpB2w=q5oRunhX9I|*($aDlz4`<=pK-rj3%Y#u=rhfQknYW1mgPMr3^1?4;O>eWi|Fasf3ubs*uF z+ZeS3>Xd05wC2AGQ)i*hwjT(|CB8kCokhfp>aqWpTg78OfT zPJbOUDgi3{<(K&=$j6qUW@YLxq7Hgz)Fg6~1G6#}qK5_-%sz9_LkEkwg5z5L#w16T zjIJ){5S@C+V^@OfxliezTwb#wGsi<5ZnlvZI_ZWmiUoaSfAa^>*ZA*g8!#JM8Cg$7 z|Im#k61yaunB2Vx#^?Y?P<= z*#;H`;uH!K&K=h>I5=4sf}~v`R~MIM78|V6?07ARW#1PLSK$)O%efWfe9WabGb|qPrn=L{KVs&i z(|c|)>=zk=ss4qN}6_tqY}zv|1BVepFjzuY7#VOj@7nv98Sxxg|lnp_R#zV z!&M4t#2lB_izC^!0UQR)XoWR+3s5e&G(Lby{z5Y*ChV9sgJ-uNX$gC&t+-M4Dv?6)ERL|Qr}4i`m+#lR=TA^6PV>x9YgHCakh zsD?fU4{Hn>kwyjHoI>q&gG6f*--%?9AB|-kfx}Pw)flY5SC(>fIu$TD=`b}Vb z0>eA$_dLs2Z$*xHCdW*u!RUk331*wBB9H8Ex8y2p_FSbt zE5@Shx$tI;BO3ntu7yz+U5!X#U&|VFw?nuyY3hTgQq8KPjp)Wv&drFK1Agc8%Iv&Xol zcf-KPOT5M&au#G@jy_pu7o)~_379G%&Wz-?ItL-eFTQ3#dc;J@^!shj6UW>_HLagA z1}T!HQ<0K*C#!A9qe~fs4OH2q*08+6+SKPTj_C7N+{zOKQN(Q$r@UBHhl5DK6v@1; z3PvC4$qYEAcy(9M&hm^8y2EvHN}`$aoqEZvO%d!?e1jLQ@nJF7ccpaF8mnycKz|qR zt^AFBnaA;>-EA|tphkMH3VMESE`Blpj?|oBKczD^NG{xKe7y<#xbIySv>NMTFVks< z;Mna!p;S-Wjy1|ePf&NZvA)fBeONqT$$=X+ln3W`ZA0XvzbcF^>Mi~fP>ZW_vp9`2 zFW~vc(Rz37LT=p*9y-?f9N4mdO;#S73KMU7Jqz*JI@)4-iFa%^QSYszm)hTN!_8Kq z^F+r;XKPsSP;F{H6<@I7w9Q9$Cq6yZtuG{FF|*KUQ1A!H6ix*eJc;Z7*~29v>C%s+ z1^5TgFr?T&Y^gFMhYIeXnc~`Z*(FXxUG${e(O)%Mc^DowXl3R4i{n~i+^)}QL3JJ? z@sLrn)eSAMJ1J>O!EoU`wL=)~THWVzucsK{82dT=_$j=8KV@=s$9~qoT}4~Vs5i!f z&7}3NfVEjuPjrKijccldS<~rXj)cOVAHB9yehs4pO?hZcnqPWUxTg&i zKEM*~x9L=4t9=4u_oH_2|6n>Ui!FTwQLrjV|mf#jp}JZ=zAbt;u{vli6o z4N@q8!_&>1_yCc~Lb_4=(1+cO>g06j)xsW!a zjb7!2S#s?{O#;;wu>Ezqt@hISd#qzw!CgGgpFvXJq%$Y8S%CM0_>D6HoAa{H1m}lq z`BbE_zm@syT4Zb!Yqx1}mx<$heX%}9iyETa@f-ycZ+N4o4x*;PEjRx#g8E7`B13-o z<+)czuiJlR*LUn*j@);nR(R6iS1Eib`nHkhHVQTgO`@FU;@PQ#*|Ju`V;=Fn-7dLY!*dWoNbe^CxNI<25i2#TU**I z!SuLewP!Zq!95q)U&W#Hr9U2=mDT+P2*b59eu#t@f5dm4V^d@9H&L?`d`;H#+{0Ml zyohIP_PJwY_@BcI-$8q5(O1)L^@Eq>SyGyro?MA(gB1Y?XP58$S2Zem`F8Kg^htPr znh>0gqxd^;x+mRi%|(7U!kGuPYrmQh+53OqjbxTLP1_q~L`?0jEL6h9zT?I5kx}nh8%@iiFepMCYk+=qv6fhPLN&e1DVS z>(ZxSZ}8@uvNkir{}yt-QQEgZGPxZo;UnV)(Dqe^UNr4f%w$#bMK$;^K5PYD=Ix`^ N^Y%F4UbdH<{(q{ZV;TSe delta 4059 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 Date: Fri, 21 Aug 2020 07:54:07 -0400 Subject: [PATCH 2/2] Fix Merge Conflict in #8755 --- code/modules/mob/living/carbon/human/human_helpers.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index e1d1e10e70d..7494867d2d8 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -102,11 +102,8 @@ var/obj/item/organ/external/T = organs_by_name[BP_TORSO] if(T && T.robotic >= ORGAN_ROBOT) src.verbs += /mob/living/carbon/human/proc/self_diagnostics -<<<<<<< HEAD src.verbs += /mob/living/carbon/human/proc/reagent_purge //VOREStation Add -======= src.verbs += /mob/living/carbon/human/proc/setmonitor_state ->>>>>>> 42e2305... Gives FBP's a proc to change their monitor display without using a mask item. (#7452) var/datum/robolimb/R = all_robolimbs[T.model] synthetic = R return synthetic