From 8deae217e024ea829cd2e6448195a37fc224ab68 Mon Sep 17 00:00:00 2001 From: c0ffee Date: Fri, 7 May 2021 21:02:55 -0700 Subject: [PATCH] HatsDisplaySelection patches --- 1.2/Assemblies/Rimworld-Animations.dll | Bin 59392 -> 61952 bytes About/About.xml | 4 - LoadFolders.xml | 8 ++ .../Assemblies/Patch_HatsDisplaySelection.dll | Bin 0 -> 5632 bytes .../Patch_HatsDisplaySelection.csproj | 75 ++++++++++++++++++ .../Properties/AssemblyInfo.cs | 36 +++++++++ .../Patches/Patch_HatsDisplaySelection.cs | 47 +++++++++++ Rimworld-Animations.csproj | 1 + Rimworld-Animations.sln | 6 ++ Source/Comps/CompBodyAnimator.cs | 4 +- Source/Comps/CompProperties_BodyAnimator.cs | 2 +- .../HarmonyPatch_HatsDisplaySelection.cs | 30 ++++++- Source/Patches/HarmonyPatch_PawnRenderer.cs | 7 +- 13 files changed, 208 insertions(+), 12 deletions(-) create mode 100644 LoadFolders.xml create mode 100644 Patch_HatsDisplaySelection/1.2/Assemblies/Patch_HatsDisplaySelection.dll create mode 100644 Patch_HatsDisplaySelection/Patch_HatsDisplaySelection.csproj create mode 100644 Patch_HatsDisplaySelection/Properties/AssemblyInfo.cs create mode 100644 Patch_HatsDisplaySelection/Source/Patches/Patch_HatsDisplaySelection.cs diff --git a/1.2/Assemblies/Rimworld-Animations.dll b/1.2/Assemblies/Rimworld-Animations.dll index 29cbe88a3e154e90fea998aedf3941f5eddf325a..3b9a8b9e6c7a4fff8ab449e0361365c377b46c1e 100644 GIT binary patch literal 61952 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 Qn4!auf#TOyzqAtgKhxhK4FCWD delta 25774 zcmb_^2Yggj7Wa8&-qa*hl9}{A$xEX~B!EBw6%di4Lg>A!0|}@&gqMg7dwe#mfU9Cd zC9ZWB#lni~E?`?x5m8pxvg@+8bw4+J|8w7)WCC&5@B1w}=iO88Ip>~xZhez!Ijpqo zRj$8cZ1ua>enIxXkEpoNEA=7z2n5X{Za<1=A(tfveo>Z*RL1bn79$$o_C~MNIgma> z&?S0RX)6l(3MKM^Fba%Zvq-Ks8>Dj2(+5E+#OEXPN~y%ns#)L1=95x^8#M?9=u`7U zsW|IKwvT_K@sY_v3tCWX9lSC7esN;^1o;_FT4{RRWzvOaUw2q)G)KGhq&4OucZqb7 zd8NBoRug<|8cO8RVWP_G)E#(e9oi~$pL?FP+N|}wEoGS3c?%qUNsC3zUfwwZFOj0{ z?cS^8lzwu2CaSMWg#(r5u++h|vw%WLDam>W+GDeU$LBDZ3lN*fY&pGoEVs%M(dV1n zQZus_fK%Bh>k-t7XM!!q2Lr|yng>(MrA4MQt+M}O$asU2z68(a5#TDTU|xzX1)kX< z`CN7PBNU{>mVppbgQ~vVT##0ldk)a(_+p}#VN=hhs#)Cx?n^5h)+Gn`18}Ip53iEHh(4f zh>6t|(HgZZy($oI1koxx;>ZzCdWVA8j^I4B1ciiPty^XG%?QDh>p~SC^tdX*zS>L; z7G|7_s&OwzkQw^c0*(HX#jFW48dfsYUffY^+Rcw~U*(dupi!&Vu? zEa#~?uY1Tpz3&mPQK}h}7^I zE|Md)m`frfF*`mS$&6Oqs8WjnZ;S_L8&f~bacR@9|YG2ibS5$<=c(@y4$J3+)P0P+GeI<>>fz zSK=}4Y;rZOlxaomDqtZspmr0vntg^$&!!qLM@9V_uILCjs&kTbUn}a#dWjXoWV6>< zDqZ^ZC^+>tK%#Y1(d6n(+fHF;6o$lZ0N)|f&R1M|DeR4o)SSp*LDvIcY95m93R9_ zC)gNS5&dr1UpE(|Y34t3O9CPTkcgdC&FZ{Ti&~USotqam{-4^p33ia07*-e1y7{c? z=VIG)6E~y2tY;zQiH>b| za{OUbsaba%uNPL}>IKJc_4FI-dl{n-6mhm0t z?5eED^C)Vu7nraUps_@w6%qYK^SY`mjd`(`%xzUgW4VSLe;H7J1;C?K7ujkS3y#n@ z7R7bDSmt*CWn%Y>wS&T_A zCP?2~9DOh3YI<3S6`(OzfI#mRw&<4s`aX~lU#tyQN2!EOJ@yM?Pt9h!>KlkK2ptmS z5rLW1*rnChCYqLWMj=s-EA}=}q**6FClZOh!!)Yg zp5%UY9wYV1&LsI#B}FP9!~!M~ME?`2*IzMu$; zpwRFH;RDda9Ws2vRufyyi&?I+43!Uv(vu0FMC;_ZXjc3~t|iA0;vtL8s{WCXu9Ox1 z5SOTO9#nkH#dTAFs_T%oYV#*%LGN|0`hZZvd-vF#B286(>2+z+*TmZk^*S;$Oh$lDZ6* zvZ-YVe#l`X<>ukux^X*nid}6`OWwVL8uA1@)$>SfLIVyV&o9v=tjGRtp3yhU zID(4ydKdc#%3GqDjrXGewnVd%Vzeci-S}%k%}KffQ7{(Wa% zJGla!UWGdu)W?1RH{^6SzQ{FPKUc$bYz>#Q@m;Rr?pC9$D}w`WRH=Q5!AQ%9+u8Ux zR7sEh(|oR9d8$ZmXQS-0NPq8lQt=DyOE3@=c^s`#%BnQIf+vkY&|bRDGx}#Nk3&qX z^{eM#Kp=i+@VMhq-YJK2HzxK+KhOLZn3$OZk*T3TAYk=Ed@OWgz1!2j;Pjpos59~V z4+yw^dFq>kYYWHqs4?ISxU3BSKbAx8Uy|dS&HHQfvU*nNj{RgFsEz1$R>c0zdNF-< z@UxQ7(K2BeiPmE(J8I^hP%h(!{p1s>W=IlwT6m069+`|9>()R^hjtA*vdIa4%w=vGQf&V1gk0Pxc?T3r*O|Qr=qOJa zkT2bCoAl9Uy z5a5EE>ZsD(;sB%vLC`}?9dA>3D`!!9*_8B7nN+CA02U7eRQVV?o6$%o%2;MMEDKo3 zE!X%1?iwY%${BFSvss|93(o-_tw}5EqGX#7pID?_&#}oh-#oG8%zTJ66|k!GV7k5< zKGryOyc+RTIe`~3!_&=1G4qmalmPE;qu3lfut;lT8>QyTfh9&1BLBsPxA-K_pN58f z#oJDuyCakWhusK58QbE9m7@^iAn7R7q!r(`apMk~-%ypp=ujJ-8cIW{g5~`va0m76 zxraLYBa|7)#FY@H4x}i@zS103SA5C}#3JAom;O_yf}Rra#8+B0et^au|MMAO^{)AF zUA}P}u$uSKc(1b~EF970Y^bIhO|%<=j^rWlrG0Ivvo_-w@ zsz;x|S(>j(E;G!(SzB{0N=*f7SX*;qI>9BAS|SkJ6s-B@v^H6jcv zVk1zhVSibTRng+6x|wUfJ6NC1ZBlIKQ`P?zh~s=OuzgQ;z;CFL^>Jtt0vK>&s&@vQ zuGmO(_K*SIo4QR+gU~ha4=K*&uHpMjkIJuda4-^tb5Lx$&CEKfVu*v5LRl_PaEPB+ihH#h?|qujvCqG`tr_Pm8`K8rgeu7m~Rbo1FwF zYj1f1F|bML!nQKQ@TZO8qG|73}Bf! zl-`1t;T(1;1|HgH4jw)Lv2Gkb4)FQmQCwa9d3bT)DzRL^<)r1Jun(VU@3E?5CR4?E z66*^gYyoPVl?aYU)5pSG>@;&peR1_T6ut5U{d7D@Nt|cV4Nh^8a_Zy3u+LQHll23{ zS=1v>i1Aqq6=SdADYo66_YEK4AI~-qj>z;(g5 zPu3Q!vsJnR(;iJuG!99hMw)oRRb}xg98#;+k`_>7FQC2{Bt|;Iz^_7PQO-3>5TR(e z@e7zk3Mb@ZM<9Icj{9FiCMzM+bvWUTcd93`XSThr%0@^q=FuTq>?Nq{Q29;gpp{3> zoKd+IXQ5@8Gew8U;s_dYheMvKT)67#auo+ybIz!AT$HXJRXnz{1!@erui+9M(!MU~ zfIF5gx+6hNirGU}&V*6~&pb3Lv;?z=)~OkRGgyEeEzC`*#yEy{nE_?J23OYMkdWpE)_l_{Adw*T)!TJTkiO z0%Cke;C0rK#W;4DB|F!dU%qfk)hu$kMTp}`ub%1m0cP{8jmspAVqB^$M z2=_5n`CAG-2EcAcYzlh0%;=0K-<>YR>SjvRh4%Fm36HsOdir!#}rRZ)!#q19`eHy6zoQ`KrCJK=D)c8=C zY5w!nTw@l{#0)ySv+Rh^L3!O=0DBVXjr#y#BBZ&ES6~=J#e7g2pF~-_UDFo;B{=kJ zL=G-41X>-k3-Lw3)-49;??%lfDDdkU(;S^{ECs?7E>Adoy`hG^RSN?yu>^!5ZD|T9 z6S_tQ=3B1r4S3l?7d_<99s!UiX3mmQ`{D#jf-&xRbx%e;le6Wh^-b6>)K7+)RmDE*3UP0jLptD zpLx9QTz~@4)BM&Qdc*oG^P92#3|_`P8hRGm9TfIe>B)VgOb`thJ)Ve^^fuj$k9HHXg8QMg(O(-XExqIjKTfCX@Jp zev#QQZnS|(*3-gOnj|h^0#GYY!7V_Xn~COTLA;DpR3#i?2^WO{5*L&nO^JQMd8jo` zfo6l+dA$|R<6-*i&0W(tRnFQ<&-Z@@J1s+&W~hfG|w@+DXcSI`>Y<+|MW z32mLXChNH2;?7sxfULtdJ#poW>d2!I&V*j*#0DE%(!W6wzknFTJ%OO2?obSb1*jD> zpbBqaa{4%EwF4KqT*3OnSPXju+&3>|sh7;DYoE~y7G@^# zO*2>QT=VYn#g*rxeq4o2b+1lFf|Oi2e!KbQ_*w&dlq&4C8gm1@=gRCZ!SzM~=$2Gg z<8UFBoh&7GXF8TMsL5#@#RB5C(w@RFQTK&6-CRMEsp8TyHp#r}j127sHu0+Y%o&wu z|Bu~SV7X(~O(?LwoP~tPd-$#p#x6z(V5H23?b8^M54QFf;+~}!o^SV<1%|19J!ogojU9`AGPQZy@+R+Uo~Ow%vpvY!H} z0e|BSs3sOv)B+280Z+{bAEpJKdU>%`txyyRoz6;$*fwr<>9T$W(dZZ!^@_FLJF zXvAtG--)vU+=(X#t%sd_ww+TsZYyo{E8qw(?@{ze_vSb`sqsdptM~K`=9!af{?|GD zWM@FTa(EB=v0Dzix}0$*hU1l{d-DH0h5u-IV{Vw7gOkU-lSfEbnSYs_=f(M+_coQi znl3Q?XJ(uj2X39nc;AbiOJ${^UyWem8^4wLioOBG%4POUBrDC!xo7d#V8)pZp=&wj zc++&#crEOYasU9ezkbEEmgnI(q6vKpHCX~~KWef;`PT-1%V0S|YmIRD{o zE~~VKUxtST{icdTM%BpwrlDX+hb-niWROr|h=+LXTmUavo2}#d&Z6bO1UP_+GRgF0 zZdfj_bIIfmZ2)q)$%MF`cRcgN?o2(oYWz&rc#|+>d%-p$;dK3GbNJa+245hEuWmC1 zV$HZW;#bZb_DH3iVa31c7G|wr7T;^yk?PO}cACcZ20P8noaS30ZI#2#8#~L9=G!{U zmMpB8WxlMpnvYJ&kghRbnX*i}*6cGiJifqc!Ya`|hVioj^yA1K+AuaP zx}#9kk>f)AEQs6h^%310rjvH zM4xN`6%)nP=9AM3jV;i&?jrD`HIXv=-OROY>mD$oEzHr25CLrPuf(iJNf(dU#n=~* zf5)t3U-IpZ@FwzcHBMa$w3@I}8>7i~M{Mb%A^=+JO$ zp166uVMeiZqggVe#EM!=B5H;Z#1x!}8guNZRiBa+vc_;I(b_pEB|?TRw;i&Jx~M<@0BVlDzH_P}7^XnRm_1HXcPe=~BCcZ9fKD(>8$Si%}61 zC%Z2uPSNmnk8>SgXBb`Sv?4cg4_=sPBHx22U5aP!E$ZTA?L})uBueoLKRfA88~5PY z&f53j>H2ozi8*~%mND@Ap4u62hr~K=g#H9Tb$$<#;3$enV9CaXN_ ziSsg-aYt2VH{A_~E|ZLZL(3(lsKP)8mL7g;cTTpDifaBNA^g zu+rLN@@L*)bj?58QL*1~BN7u*VnkktqCFztm56$Yre9;;J%6ylQa?KkZ(tR2{CYgB z!Dccc+=4_7wJ!^aRMS)}XFk2z5( zv$K+2=YKKgki+)K`tM_|)BUXOo=}xY+hYP@wKV$}Q3Q-b<&#~=S(H2&K}PlIx8dl0$ ztIf8qlx0qjDI3g4r0g7&{=ZVT1r>R_A74~)(h%G?l&mA#isu3@PhQoy^t{DQoIAdW zL{DI@E;(y5y|9Szcb_Pqde#_hU}!Jn=AlJZ#tFdSEx~#54m2IlCy|~WJaNTC2pqqO z!mS1o&Wrqx6jxH{dVFw<6Mq?6f+x|2Ak$d-iIm%NH7ZJFxZQU`ZW_IaY8t)go0Xx_ zEh!8y6wqa)GV+!{{wiRafV+HgRQ{EK(*>n6#qeviyJ&Y%qc@}x4i7z;mhDR=hoX5? z$&fX#Mr)7hlzsG)l3whU&Jx|wl9_7?>jy$n}0%5-yi zWXcJ-K?-EEil8G3`QN88JgwwNk%w}f44;f<)&h-T9_7OmlMHbmmCyAzZ2DNU>rL*C0o>FGre)a*k9FsL|61riZQzFg<{sp@&oi z(?c;=wlABC1MO-yZSXRz$zoV7%3u1qye^|1On;x0s7!`aM9{uXp&h$whGlJ3l)R17Q*!ph0=Yw?8<%-vonR^yF6_8714k;K#gMPVh{CkGyUHp zlg>5}5DyI%>SST~lL(u<#K-it!r0+*?(dt0OuEk8_eAAksqEH+<@Fn2x- zYxJ=&_FK{V=Y;$lXr4x+kp~f}4r^qXvhod1gii{IQt6d6PM@pFxxcF%oB>&(-N9_C zEZ`o!(aAmfhL?NPT|O(rLr<4;#})dxvt$834zMeqFbxi|#8fMfG76N;OPUjs9umQm8f$?d1fPYS4Gc?GhJ`f|uM4Q;td7@39C>AzfV54&_Y@ulV&VYq27AA_z zENrRZotpn(!3Jq6Efd)71rHWnBQ2nFNrCx(&{a|7 z#f7Mat)%ryqHE|X!Q-IUL+(1d7~y_Os4?h**T0 zNAL{Go15q%WM+Ea6CRCx1q}aG_#EJ}TrO8n3e68>Yz`L@J0&a6Vv0%R{pef+*RHlp&aGHQ` zq%q|O0rT<SGkASj28?o zZ@8I$r-081cpy!ON!icv!t{NJ3U>!o2WvoiKesR7mclx~r$t=n=W=H)%Bu&ZJa3G* zj2_6GyatmFtx$!FfAAGA5Jb$E@Jq3I>YaS4BvM#d_ZM5P?W3m z<#L$5Et~-j*%=FA?6Sg4mqtGovWwHbZz%)lkIK2=O4R5L8+1^@gD#gFy%Np$aSZ-Y zx)$Y29Ng0vMVPVvlPUCFsNq-TR)&(}U z%bx-4d4aXMUUXIZGU!h>))DRv>|0y%v#cV@AYYBJKzp-{S}=1v(ZRkj{gYQrx{TV= zNBAOibuDAN=#-neQv2tv0q7+xTMYGr*GEgxoKtzuVZ3 zFk?^Sr2uQ`719i#7vhGW(Yw)4#k69mg}t2dm0V2kT9|8o`Z6EX*jPiEODQJTFqYg! z%_`UX&2X#UrgX+8oMK@oAx_0Kl$Q=z7!+aN0t*wFU=&l)XlAxzb&A2nP=Q&gS3*;} zVRO4-=Ll>U?ZHu{gg)xVbB$r0;1xWjmQazvUZ%W))xJ{dD=^DKsX?O!+DbF1h)QXm zjqMTG3LBGT=DluX4`3!NCI48bu6c~(B`Z!CH%}41?8@one2W;#afq747 zNjAUP5v8yp&|P%6Si{#fdRv(5&eThNWi;I8+;pqn&1KK|YH6pyEXkqtx`k1&{7TiTLRlftr((H=#?d1l2d3eV}{+{DHL6rV1DnK zLIVZ1i>lH0Q)%Wh=ItVHzD5mnp^c3#52_7xoxm*D8t7Jmt*2hnHm!lS+Sp0T#FS|? zWCd$kPv--hPO}AOtfwtNXAr--Oay->Z4j8HbSB+kSM<;}Z6@7sV}F5(S+w28u9vrI zv+3E+dJ@f{w*_`c`V2`rm)^Cpo1;a*b~drSLxww0IwfT;?Y2-!!Z?^qdo9eprL;d+ zw0U=B&xB;oDp67DpECx$5`nR!60o5*j}6YF;Woww=h2SyMLl6}9__L)$zX%?=npoN z4bG!?Z6+I>M>!XC8JtHY0<)5I9`zQO6{mSLP+;pZ8?sKqYd#M53$z4Uf&#N7=TnZ& zyWXH!%6vM(Mo*T`Pgy_{1ZJ67NY{76?hu%zW+830>#@OwRI#SZ;6fTKFe@^P=xl*m zU9p&^+StueqX;LFv1>&O-IGh3Qx?-C3lm+jm>O&zM`kfCuz4S6uZQIQHpX4Cm>w0F z<@REFPGFX!i|J*7S&>;xCpULGYCz2tfm)s}p+X2}BDb2Ak z;pkFYZ1dRBrTF5PXp+Q^E~R!GV@H?La{{v*HI~xv1ZsJ@l=ceD@^mRpZ0YnAYWNl) zwaD+6v5)op73^%8Qj4omnHJ(WrqHV)T>Rp190@;j_jEB|O`I71k1|+)g^=Ixq`Pr% ziJ#glV09;kWvJsnv6pB`D#MY&Sj^Am{V*V7ch4rb=J@?8jvIczgU$!U-rvPCGvSa- zAGldYMlBV`7N%F{GQ7Wx;f>gThzG-BC&MSPF_idM+yJ=+GQ9}56e>em6|Hg5c3UcfC0)j>vc=^f%VbelQWEi#>E3+qrqeWz5Oeg%fb}_HvpbNZGh8hqks;l$Kl z2+q3>l4c0X3_)1{O1gB8psW(*1w!>I0rv^G7I2bOq_me!1+4Njyf}KHbP4D;N>|gq zy!)gZZJ7(aPfK@*@~>!l@US7(DJPYGD;=RP%Z^HOCB8bTR~{^K$zzmTU1@Ti(zhf- zo~T^qDw2yJStE~;?hn_?bCpNKr^-u}?5xw}l}a=+Q{G53arE9uXGhMH-O}~>O(@@A zwp@Og1{B;buTdJ+&48`>4BZ}vKe#u`#u}xUU}Okr1h#=;6fryO*eq8_(@LHIyrJ+J zxlOs)^`g9=?#v z6w#0Jd463<8Qd0P|w^Ee%)2zU6)V}JMxjWT5^>3~s+Ntp6%YJ%SE25Rst+)-k1g?K- zAfZl7+pqpaTeQD`#N8n&Cl^(y6P3FHU#nx({Aj8=QN1P*K5bwhNS!}w8lIWBaxshcFU$FZL&B7W z@uJQTz3q?;c}VaB$40fo^Jm9g<<~i1I5w-N`+bhXVygK{!2LAB^LIxpaURT-Mg*-H z;(N#ADpPp2_z6lMiO8BH-yL;pJC)HvTw5u8Z+e(s2&PM43Aj<^1{{(2Jo${u=g7m> z{QniwO`~U2K1}XZ*E!R)EQOC6M?@HRt3PJtX!}&2{)9U0f##EiW#Q`X-MsC$fbIYI5>ZJKml;v-Y z!X4V@YIF1@z;gtQ1-QHcuwHJ>dlfJSm=0HXid9P9*Cxt*wfq*G{!!bEv^|RQk>Xxd zFHg@?o%Ql)z+55UASCPLb;TI20@lepk?eKy2e?D6lcz+DYn7F9er}$#)b{#*sNPKH zmiKZ(H1#{Q;O*3FF&zcHN41smc2G7`-|_)YhQpj=gp6Ante@(1OR3S*ok!H6g;ShA zst=USaBieCFv*OOuP9moZr}2AA%9)b8fbnu=Tc|2gk(3AYGGJ%)Zvdm>y-fo4=X-q zD19X!Fny)(Fktp0W$`a-MVUmn#AyU$;2h{OCOT?8W5JLMDlq)k zrrs{kbu2=kwJ9?r+vGOooXCC*q1VJfy2Zr&T#`nP(eYagbv>s@V*vEl1o8y%6dZSqFP9ho<|b{fj) zz$VurT2*#EDlf(r@;>Q(<$hFfs0>pCye#KoxadX3O3F0M4U)2==oL^#_!zE4R&RDp zbiarJ{5ghSKxxHH_kcqQzT*mDBF6>?@OxL5vONDbjFC$;k2_1@ll2iY=4S0to^cpu zC%6xh+s!SD6^?T6cDz?M)?F;Bxa)WH$`9wX=w#miT^_fvDh1@0q`nzXgHy+ zQ5mvlr<&qV@ti3nd2dnZ2{>kY26~ptBRoNMqRgvkgFMRXkXHg44msdRagO%P5NTMi z?arCwnW#NV%RG-G>0&5{oXeoX0hx)~B|$Dme0fQ8kwnDN(+G>DNBQdEjNWJh!H!r93!W+y# z0OrtFfF<-DU=^ied)8mT!2*sH^wTIE^vQxUUBLNN4a#yl8?cGyr@kcro*qyAM1B*n zL}55md7mo$^F`TMuXv>|L-znqO@B#{J`qq+L(-n~62Q?JBLTN%%m)mH*8{E&-vjt< z_$9zIBcA|18X4(`L-l+C*9*8wzri>LJeu;#r@AFJiZjj zH*_$q#k-#Vk~SypB^YZF@C5-s5|I2%FBEXNfO7*QVHu7% z;Z7J(#_!L$0W&dPWE|i43kYTS7J!VqVElpwUdZDYOz}H)8GtR2mFY4_$#ezAluWnb zMTSgwPywKEA8xv3+KORTjdxoN|AiauYWfMPs;L8~!fG5@s{m!G22hoHBN8sD1kfWz zIVw^)V5(FB=!awtehIk-FddTps1GFjQ9nrb!|XW>Z~!Fx(LhM{qd|kDdOU_ew3bFg zw3fy~w3fy}w3fz0w3a476el@I*3y}fjN(hEOK7Dz|GJW@gL0`-rSw-ODDNs^wOD;j zJ*due+^6l+Qk-SZYn|iW4elG<@3=3AgAY|o-=UMbq zaG*c-U!Lb!3eixzZZhXh+$!*eg7vXD_2vA8@Nf$UyxY@^3lIJgWFICsA0it>%tH9O zMg(8dh)^GNZeMg-KXh4t{4_=_J||Eg^Q!AB7EG4*N@q#S)w84+K27*sfX`ahDQ9Ro z@+NJt{53ui=L7N;(xr5T^o{(b>l^uq>qq(Dt~MIvZlj^@sB(?FLVTV_`3TBK++&n} zo(pJ_=Uioy$INcK+%s@?9~v^WZuaax=A0Yy+jqBZliKe#zjn7jc4xY~{nPsvsqKvq zwX5wTANz--OlXX?_uBr06V04F**x%Uw0+#O|8ljjd--KgII;xylXG$XekwKMxdQ#S zl;)em_l$1;I_AoAz8G=FeK-8doUrc<^Ra!I{)w)PV9S0f*xKOC z2sTSW^LP86!q40qZ(NBDf);Ffq}~123?=NB?+x-mhy?+Zh2L6sxBxL$X@gB@4u1vuv21dWs>lNWnX9TmRWb;6ltItKk#c;gDr0k{P6a0gQt)ZQC4*d zp37jMdHBOBsiEC}@FuC^;1x$Z6PUJexv;G$tlW5%Oy!I9X6jdiC2Al0 Y)l-W5@76a%pBUC2`1{vVTOa5D1^BzNfB*mh diff --git a/About/About.xml b/About/About.xml index 511dda3..63b1b3c 100644 --- a/About/About.xml +++ b/About/About.xml @@ -28,10 +28,6 @@ https://www.loverslab.com/topic/110270-mod-rimjobworld/ - -
  • velc.HatsDisplaySelection
  • - -
  • UnlimitedHugs.HugsLib
  • brrainz.harmony
  • diff --git a/LoadFolders.xml b/LoadFolders.xml new file mode 100644 index 0000000..1783107 --- /dev/null +++ b/LoadFolders.xml @@ -0,0 +1,8 @@ + + + +
  • /
  • +
  • Patch_HatsDisplaySelection
  • + +
    +
    \ No newline at end of file diff --git a/Patch_HatsDisplaySelection/1.2/Assemblies/Patch_HatsDisplaySelection.dll b/Patch_HatsDisplaySelection/1.2/Assemblies/Patch_HatsDisplaySelection.dll new file mode 100644 index 0000000000000000000000000000000000000000..743b793d5c58f88bfb5ccb204d1b65b08ce15be1 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Patch_HatsDisplaySelection/Patch_HatsDisplaySelection.csproj b/Patch_HatsDisplaySelection/Patch_HatsDisplaySelection.csproj new file mode 100644 index 0000000..8da21a6 --- /dev/null +++ b/Patch_HatsDisplaySelection/Patch_HatsDisplaySelection.csproj @@ -0,0 +1,75 @@ + + + + + Debug + AnyCPU + {BA766964-1716-422D-A09E-29426F8EB9D5} + Library + Properties + Patch_HatsDisplaySelection + Patch_HatsDisplaySelection + v4.7.2 + 512 + true + + + false + none + false + 1.2\Assemblies\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll + False + + + ..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll + False + + + ..\..\..\..\..\workshop\content\294100\1542291825\1.2\Assemblies\HatDisplaySelection.dll + False + + + ..\1.2\Assemblies\Rimworld-Animations.dll + False + + + + + + + + + + + ..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll + False + + + ..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll + False + + + + + + + + + + + \ No newline at end of file diff --git a/Patch_HatsDisplaySelection/Properties/AssemblyInfo.cs b/Patch_HatsDisplaySelection/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6905d78 --- /dev/null +++ b/Patch_HatsDisplaySelection/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Patch_HatsDisplaySelection")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Patch_HatsDisplaySelection")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ba766964-1716-422d-a09e-29426f8eb9d5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Patch_HatsDisplaySelection/Source/Patches/Patch_HatsDisplaySelection.cs b/Patch_HatsDisplaySelection/Source/Patches/Patch_HatsDisplaySelection.cs new file mode 100644 index 0000000..6f00a5a --- /dev/null +++ b/Patch_HatsDisplaySelection/Source/Patches/Patch_HatsDisplaySelection.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using HarmonyLib; +using HatDisplaySelection; +using Rimworld_Animations; +using UnityEngine; +using Verse; + +namespace Patch_HatsDisplaySelection +{ + [HarmonyBefore(new string[] { "velc.HatsDisplaySelection" })] + [HarmonyPatch(typeof(HatDisplaySelection.Patch), "Patch_PawnRenderer_RenderPawnInternal_Initialize")] + public class Patch_HatsDisplaySelectionInitialize + + { + + public static void Prefix(PawnRenderer __instance, ref Pawn ___pawn, ref Vector3 rootLoc, ref float angle, ref Rot4 bodyFacing, ref Rot4 headFacing) + { + + CompBodyAnimator bodyAnim = ___pawn.TryGetComp(); + bodyAnim.animatePawn(ref rootLoc, ref angle, ref bodyFacing, ref headFacing); + } + + public static void Postfix(PawnRenderer __instance) + { + PawnGraphicSet graphics = __instance.graphics; + Pawn pawn = graphics.pawn; + CompBodyAnimator bodyAnim = pawn.TryGetComp(); + + if (!graphics.AllResolved) + { + graphics.ResolveAllGraphics(); + } + + + if (bodyAnim != null && bodyAnim.isAnimating && pawn.Map == Find.CurrentMap) + { + bodyAnim.tickGraphics(graphics); + + + } + } + } +} diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj index 3699a4f..d5212b6 100644 --- a/Rimworld-Animations.csproj +++ b/Rimworld-Animations.csproj @@ -122,6 +122,7 @@ + \ No newline at end of file diff --git a/Rimworld-Animations.sln b/Rimworld-Animations.sln index f552a93..22bc476 100644 --- a/Rimworld-Animations.sln +++ b/Rimworld-Animations.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 16.0.29905.134 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rimworld-Animations", "Rimworld-Animations.csproj", "{71B05D71-67B2-4014-82CD-18C20AC0882F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Patch_HatsDisplaySelection", "Patch_HatsDisplaySelection\Patch_HatsDisplaySelection.csproj", "{BA766964-1716-422D-A09E-29426F8EB9D5}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {71B05D71-67B2-4014-82CD-18C20AC0882F}.Debug|Any CPU.Build.0 = Debug|Any CPU {71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.ActiveCfg = Release|Any CPU {71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.Build.0 = Release|Any CPU + {BA766964-1716-422D-A09E-29426F8EB9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA766964-1716-422D-A09E-29426F8EB9D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA766964-1716-422D-A09E-29426F8EB9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA766964-1716-422D-A09E-29426F8EB9D5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index 941c304..a234e38 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -11,12 +11,12 @@ using Verse; using Verse.Sound; namespace Rimworld_Animations { - class CompBodyAnimator : ThingComp + public class CompBodyAnimator : ThingComp { public Pawn pawn => base.parent as Pawn; public PawnGraphicSet Graphics; - public CompProperties_BodyAnimator Props => (CompProperties_BodyAnimator)(object)base.props; + //public CompProperties_BodyAnimator Props => (CompProperties_BodyAnimator)(object)base.props; public bool isAnimating { get { diff --git a/Source/Comps/CompProperties_BodyAnimator.cs b/Source/Comps/CompProperties_BodyAnimator.cs index cc40925..dd991c1 100644 --- a/Source/Comps/CompProperties_BodyAnimator.cs +++ b/Source/Comps/CompProperties_BodyAnimator.cs @@ -1,4 +1,4 @@ -using System; + using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Source/Patches/HarmonyPatch_HatsDisplaySelection.cs b/Source/Patches/HarmonyPatch_HatsDisplaySelection.cs index 8139203..d628e8c 100644 --- a/Source/Patches/HarmonyPatch_HatsDisplaySelection.cs +++ b/Source/Patches/HarmonyPatch_HatsDisplaySelection.cs @@ -1,4 +1,4 @@ -/*using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -19,8 +19,34 @@ namespace Rimworld_Animations { (new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("HatDisplaySelection.Patch"), "DrawHatWithHair"), transpiler: new HarmonyMethod(AccessTools.Method(typeof(HarmonyPatch_HatsDisplaySelection), "ReplaceDrawMeshOrLaterWithAnimate"))); + + (new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("HatDisplaySelection.Patch"), "DrawHeadApparelWithHair"), + prefix: new HarmonyMethod(AccessTools.Method(typeof(HarmonyPatch_HatsDisplaySelection), "PrefixPatchForDrawHeadApparelWithHair"))); + + } + public static void PrefixPatchForDrawHeadApparelWithHair(PawnRenderer renderer, ref Vector3 rootLoc, ref float angle, bool renderBody, ref Rot4 bodyFacing, ref Rot4 headFacing, RotDrawMode bodyDrawType, bool portrait, bool headStump, bool invisible) + { + PawnGraphicSet graphics = renderer.graphics; + Pawn pawn = graphics.pawn; + CompBodyAnimator bodyAnim = pawn.TryGetComp(); + + if (!graphics.AllResolved) + { + graphics.ResolveAllGraphics(); + } + + + if (bodyAnim != null && bodyAnim.isAnimating && !portrait && pawn.Map == Find.CurrentMap) + { + bodyAnim.tickGraphics(graphics); + bodyAnim.animatePawn(ref rootLoc, ref angle, ref bodyFacing, ref headFacing); + + } + } + + public static IEnumerable ReplaceDrawMeshOrLaterWithAnimate(IEnumerable instructions) { MethodInfo drawMeshNowOrLater = AccessTools.Method(typeof(GenDraw), "DrawMeshNowOrLater"); @@ -44,4 +70,4 @@ namespace Rimworld_Animations { } } -}*/ +} diff --git a/Source/Patches/HarmonyPatch_PawnRenderer.cs b/Source/Patches/HarmonyPatch_PawnRenderer.cs index bcd521f..82db065 100644 --- a/Source/Patches/HarmonyPatch_PawnRenderer.cs +++ b/Source/Patches/HarmonyPatch_PawnRenderer.cs @@ -51,19 +51,20 @@ namespace Rimworld_Animations { { static HarmonyPatch_Animate() { - /* hats display selection patch -- broken + // hats display selection patch -- broken if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "Hats Display Selection")) { HarmonyPatch_HatsDisplaySelection.PatchHatsDisplaySelectionArgs(); } else { PatchRimworldFunctionsNormally(); - }*/ + } - PatchRimworldFunctionsNormally(); + //PatchRimworldFunctionsNormally(); } + static void PatchRimworldFunctionsNormally() { (new Harmony("rjw")).Patch(AccessTools.Method(typeof(PawnRenderer), "RenderPawnInternal", parameters: new Type[] {