From 9786a82542de3f66474afb78c8d61d91c2f21372 Mon Sep 17 00:00:00 2001 From: Platinum Date: Sun, 31 May 2020 12:03:30 -0700 Subject: [PATCH] saving offset data fix --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 53248 -> 53760 bytes Source/Actors/Actor.cs | 9 +--- Source/AnimationUtility.cs | 2 +- Source/Comps/CompBodyAnimator.cs | 10 ++-- ...Driver_SexBaseRecieverLovedForAnimation.cs | 13 ++++- .../MainTabWindow_OffsetConfigure.cs | 46 +++++++++++++----- .../MainTabWindows/OffsetMainButtonDefOf.cs | 1 - Source/Settings/AnimationSettings.cs | 15 ++++-- 8 files changed, 63 insertions(+), 33 deletions(-) diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index de4b830ec1c31b37d6e64f90a50ec144a77e188b..b0a3ccdacf220913660ba1c5fe241ab7937fc287 100644 GIT binary patch literal 53760 zcmc${31D2skvHD+-prdr(nzDxX<61tvd!2!Vz2=ljIn$ReB1colE>0m9xQ3(nUQTF z%Sb>-93X@%;AC?^mYi%760#6-VIU+VA)nbm5)w8XAqlxd4wjIO`Tu^^@690#LpJ~Y zKEc%MuCA`GuCA`G?tU{~bK!fGsg!c#^ZM&b-H#{#77IK%7(;Qe;envK*Z+9q{jSxI zH*VgYNJj=!$=+0~Khhl=7)WL!JL8em&_E4b!;n`5YpQ4Mm2Ao)l&$dfZc9cVeVTt!bosz`a0Fbhk0M{3Dzq!RGB zQS56CDnsK&iBbv`qNvdJ=ub+^)$uA+s!M`vKs__t1=}%HP%T=mN-5?d$j?fSM2n1y z(J6WPx;bw3F|fo?hE!DmlEG@+$ywl5+!8J~qO*}IQI>xMDEGF20;+{=zlgSt<5f_R z)3#xaQtqmvd?sP{{B}z07Di!@3V9CB168yYOu|;kS`bFl#G)Y^>kWBZXBi`nKseNG zpx$HcxyYeozB<_s$f^*?uIdZzqzmwG!xzbQG&Y)uiVrI`k(Qx|&c;Yn458 z-ooKRj;^7)J%|yTi&PZj9cXb?g=<5#tx;5JU>ns*l+nLP&aSkrdV7_|D{>VVQzYI3 zqZK&o(Z9X^I^2xAz|G879dICY8fExEeg(y7XNM>8Tkz?C)42_wQl$A8hW|aJlgel) zAFYQ>MjDI)qcle&eL9nr%}AfYWF(iQBeJnHC_70_+ew;@ouozBNzQ3I$ze32UOM;L zdVSF8MMm`~JMDO9EF8r`lud-;pTC3YU}8d~yHOUf%+VdFq6}mGp`A#~Xse!iD2Bvw z>oSz5&xG_d##jM5+-m#fQ? zyt>LV)~C;=0=rnS5Gm`p1tKeb4$@Kdqov3jb>jhiocMErPc8;1_5ro409BGD?JdBE z-TtTtJh*~D#1wiuXpK-WQLKh7sZQjhOTn`$x(rbHsQi|&cmB9SoTIC9t!O>5YVr-L zwseNvx*}JKpi1orq0L@-TYcUr*1{IrJ(q)Om3lZ=?zNk5@l=GpEh^-l9iHP+*FhF2 zBBX+z)^O01TnR~|s{oF>s*bx_T-8P1)>37dZcor1MUMiir7P%(`q50lYAv#o70`*M z47zt9PADrNRxPJ0E7=U1l5*1=IUfv02@JnA0;Ra4tC5MW0m$-KBG=71xhjskP84GJ z9}?pHoDc`sqOlokgVu#x%FTkzTNUp#V`Lq83?YPZ%|>QDGMONzJ)#H9aUJ`@FhX!N zn8xlvi?YxsL*hk^H%D1uLW3ZRmQ#h%4PXPU*4v2WM&w5}5o`uXULeJqI12BADSW9h zf)R0#oCjcxECNh!MZxTp5v>ACiSLXNOeA-58}J#J-()gkvT7L@DWlXC-44>x#lS&k zQ~e)UHLN+L%po-D!V(&=7JLjy40G~AkQSA@q8B+;%nXT=2r@Z$i+u||20~>fF99O# zMgVpx60nvMKdjz3$X4tjfKwYgciR>lhk1)JvT>^A(g_@@ZNE@6DG$}sK7qa#^qizv zJ#?Fe{MG#LO)h4bQ6QYp1VPms2|E8>C-#=I>RCRK&1C&0Yt^!1g8cM@obV_1SJR)^ zFTul_P?8&_?8vIwuv53X9L5NnfC*Md5uaPiY%?ob=Eyv7yOTRO2yO0}6)p86aGCJi zOoxo)76N}O9Yb*xE z*=OJrPZ%@ADE~yy5L*`ZjPB@7d&XM-M9*^7ot`~4*(~e-r+OBe*fV;_!8e;{to2Xy zELYv`nKNDk=u6dT63}pua=A3jQ7){8XOwHB5%kcRxT;4NF;_K;(2@_tm3$zi`sj>DeM|%NWCVn1Oem=yF>2QX;8ZEN*=*gAdm@8F4HHwUpGl6I`t6N-^ zdoHwT>Vb;Bou#@CCRKi&^fi>X1IR;{0JNSZ4})jM*2p`gnhe4_k+k#RU@@{k43z9) zlkY-GThqs>JmVnw*}?n&gx|GnjFDksj~EmR=Pne@So=Tb+=J>2BW;Z|7HY&8p}TG? zHAd*9C1AtMtBziWT8AzM>Oz5>)r&9MzO7KiQ93Y(F-Y=NJ%MtWl+xp4XN(<>EluR4 zm6oGa9l8_{BgMx*I8xW66BsGXhW(n&KUn|WsBc7TU;&Pqh0)y+iWPEi8|4#ODuG$8 z4B5;x%N}D^5KHZ;<8GM;(|BQV?^1xVuj$eY1#!uC&A_Q}@6zLjY}Lx`CNz~zMCL#U zSH?nxTv?jssx@y{5Uva{$Tf?*M1<8HbGUMsRmhdy&2p8#izY-a$jWmTa%G7vtF0iJ zr_<~aKLy2kvpA8yfrB*TWToMv@}lT_KsL&S(lMP$8EJ}xq>J8&8m&HUhx9@`pbx|H zbZM4f))r?@CfO*LW8)y<2@H8^FASwr7&4{uuB7a4H5anhZfFURSlGD#+>Vhfl67rl zv5<1&OQ@htBzHKZy?O3PM8^xsn`o&cyN$inw-RRHDE7Mp~dw{O0ib5o!7)7LpHOg*+v1#hs0@N8q-BwVMx=eiv zDBR0c!m+z>xPtW;KJPNdZDPe9ZBQ>HPInoclP z4|J}FG@I0NpvqmxD`!AZZ&egqMhYrL7fo73&z;(v$4JiBHc~YFArhxb@SsYaxZDoL z-yn3SrnU9z^|;E8(Qo76&rX>m7$hh5$gYtR#mwGiL~kdRGLB)`jOY<$M&Ac8`TeUY z_X6l6Y%cnKT~UtjlK+BCpk+F4RX>0fuVLK`3gB5*qj9g?!)_a8nm4Z>1Wnub^v&zk z-0dd}Uf;b|s#90!YljP=0@lJ~jr8I}Y?ZNwp&+pxyPMGuOZzyeT-0zp-H)bc7^AyU zVfKXxVAio_&FFezaECBJ#}6Sfawow@0FwU-fLNI)qIWU>Q2-uAk}UZ#fYh}ZwCd=` zk(9$_IbXzR+A>HjW8@Pkj(!pVaekxC3UMdqxp0M#3mp0sY3>G?2_7!hTF4{%Zzw_S zI=c!?BmW@v)5!9S*(-Y(kDmYJZA3o<82v1hBliFv`W!%2g&F-kp5h&-9E9mq&VZww z4O%&91vYXoC>5>Z4V3dvPqsGawv8v++6pQVK*NDm{i+jxIL!_Sl?{=e_hcO~u z7j%-*w-qOj{`H4XNQYBlHX-%^#1@Rj{(SCgFf^Oz%NWJ zDe=pNjNHX=*RtRR6GS$0I_x#>7jkl{!^fy&s}U5dH*COx^H&G5yC_P0b1 zGY*9Ps%6ewp%#IX{~@w?>#m0aTr;Xtf5k}OIiosHwRg^_N!6Le*5(gSae1+*{LUFu zY;+Aqt<9TS3fdM=YB{S!ab*!eLs`Sgokhd~Z~Pc2rQq=S|_Yo56Db8`bcm#=M6Kmg+YA-qbSG zs7U^RE%F_YYWMhM)*V2hd1!Q z6*Ht=Nn2sQUDEbetSjVCJ}oUEQsU5VgT|o4tRWzD_z}wuGx}pb^;(Zr$~i}ShFH-C zZdS2Q)~M7E!Na~rPX8y0$FTI+dr*D*3YtIU(fouooMmeEM!3>v$uWwhswMe6lMH@d zki>cFSfvveMSm(NtVf7F8X-?PeWp5uvq8K!a0P5U{URumKO>p?iHAVe5ymu_LuyK$ z@|=SN*ZgRrpSeM?)D zHNuqUQ<;~^yWEz;AYXOZGyfqEYD)!il0%CiQIS`lng%^PWcTXB>CgNlAoPy>9K9L& z1;I-MzXT|@bbY=r*D|^fP3N^)QiV4JR-mf#g}ljMgPhlgc7@*{i=`~gSBpIJr+_Nt z8~H71`0`Ln`Q;on`a58vzXxbrYh(V9#kAX)m$R54c>EE$kv{>n6g#;;7v%m@kb4C= zy2BoYw*qpltw1i<(ro1Z|7gW%D+~E~GwBWaNB)a)L~{98k)P34Ix~kMgS&A$Zc;aVRn(7-3Gtw8}Xn3zE2xhn>*-k z!P}QBAWUw2!+d*dmhGQuH5TjeB`r@V7!L=V9{*19*TN-mO_+71DpVZOu|TLuLV|7E za5PZ@9NjH&d;muoY0w32X01qG=PCxTI4YOM!M3~%jDw+)=rv@c>$W!J&8OD#yo}=< z!c#(17GP2$NSg2(O1Mt< zoKgh-JZEYMH6YUP%RyL9)bKR;%89)Xx~2D~-FeT+Gfu9qxnRHDo~@U zlsV}oc{CU1r89Zycju))nwQ3clI8PUUfQs7_?osBe~q=IX-y|f}$DAO-|wfchYm3p&^ZPoe8v~m}CZvDR3 z$XZyfTi*Dx5nVvY8K7JQdM3UAHr~KBzPh+Y`DVjoAVye;_I+&MY@K7ukVsJ5+HAB& z4B4Et)*NE@46Y8AMkQ-7YI^JZz4J+SW0$m?NQsunCvGVCc37c0%m; zcCpHv!R{@_emsG>RjUKLOWqM1susGarY=%nhS{gu{yQ~I7?co30#lKf2%Dy*7fdKW33#PaYUg!%%PM5= zw2OIxGT&IQO{`u{esnq{*SEIm$z68AEw0_0Bv04!jC7J(Fm4e9w=fGn0pZc1TrHkE z+y?VKAe3LyURwo9(9fNBQrqg#S_yF zfk|{5tPQiNE>~DFu~7C{mRbv&m?Ad8*X9RMy+9{+@AM>uUBCwJ@@4m3^Z6YVT}!Jl z+d+AII$#-2KVd$lc*U9TTj)2d@r4-W;mNtB`@$2Tcfq3Yl^%4Z<`U}0ldATsL9ckt z5MEKsKTODfN!gIM0Kyh`A=qX?N3;xHi&a?&UhtMRVjVQ>PNJt4?o3qyI%Fj=E1)k2 zn>S*2IdbPlB{Dzr!21?2EgT&V{kb-JUIm}U;-zn;P9TDVm2rap;f;6 zA*Wr5^p&DXge4;y!x@0V+ebN^7X)p?=JE#z*<{4zcjN+ zr&w`SNz0|m=a=En8<}~WNi!$Mi*%VghpvJE4GlVe+%{{|l7 zGI3v}QMvocf_Am;b(2`H-0Fi+{ZtvtiVcU_!4!6e)yP{_H2>`=GS|!92|NTbX~9I_ zrpYk(iM&)JF+s6pt&g6HXIl*tr!i5C#9U2o$L0($SPkv~Xxjg23Vn2jLh{Qt5y!XLj6LSbB#=VP`K^C4hx zJ70puN?ma=F^>V$1d$foSJ+ovLhLVfO}HY^T}n(*kw{QQ40nmE*n!!vRF9Ew^_Z*- zW9(1W7~8HIquj!HjP2x3P}4twisYPh_6i)wc9IViQVqs4;i9Q0915rg>Rv8}@Wm>9 zF=VA$AjB1Hup)Ur>shI-#IV^c<}fjAJd1gZ7z$-$)Vg>5^izgfuTd5BMCF77~ z@J(W<^(^Lh#IVm<%*+xscxV$a2UkO~Ec!g4MbVR=_gmRls(5CEJFf3jIaHXHJ+NLQ zn&$a#5ymM(y`d-ngDf4%) znrdJ2m=a&{-KiE_^`stw=(yyWoS#iqn|ev8rsPv4*MoNykrdd}rG7&Kx$voK*%w#i_GU zOV&$NLJ{8o3A8gj*7|}riApU7bH_Njk6CaF z)sU~fis)vvNTu;kZU6tWiq>XTWSc8`b6Afsj-LXl160NZ)DFLl&A4O_N(=hsWmj>4CAEl4R@go?mDEZ z1Bi{5+r#A5{u6%Hjng<8CcQVz1!6Na^J5XLV+o%+-n8>?9 z9o+`reEmf-hcG_T?Q9LQW6%h3-?I8#`Q8Iwd?J;G5|lRdY#U{8+A`awMWc)5XFY09 zq^;d9w08Boxc*&;x;ih%KFN!auR88Vm|NJ^CqUeA+BVq{w=8`#4h;+O0xbjJLLr0+ zgy7R=!E>Jc_T?-`BW#Lw)Dey(T4v^>k6Wi=Y}1#ZdbIAu!qeWkkl*TcN4rqbQ98f$ z>#nYZ8JG(BtM4aesq;^8ci`7pN#uO7&|!ZF@TPvsHe7+M`mK7YOGumspOuWTD}Sa|wr=JmkfJT}$2k_aia?=LE1A zHUB>ePH|=znLs7jIy$pU(i$^@-IF_togdXs5*v-9g-OuItp(Yk!cGcx^0?Tq5o){X zBdh9Bwk>ueJY9Tk2x6ZmO+8WbKHY941hBR-ly zBao4WnnmrTEcOZu4K<5}6T}!{p<{+jJLbu>W0Ls{&MA~Z>g)a=w-z~NN!wiWE1sJz zbj+2dTKXxIN{{<1C{aT#{bGlQR)CaM>-nS!HM_b(c4GZhbe{D~7KX*MIokh>tX*pR zr`hK0Uq)H%e+UxL{wa^VLn`(^0_^PeG~Bv1hPjZp5b?d0FN41a{8jWa4BMd$2;>Jh zNO{~EW1kQ~1!jz~gkR9ZPctld7b>aLHxVDmg~%~XP?x-(oH_ zB16AZ16L7{FLL8m;!DjD9Dku?A38RYK~h&m&nDa>-5{#?5LNLaUGC2SPWlc}J8vSb zv0>E9NdmrnFPOd}Pv4h=M)XbM`pmJM~IdSBuMXx`Jo2^?hLuTd1o% zeeVX1*7qlos=mGzV>qMg*h*(8@3coT$MydIIoIwt=KB3N;+h-RKT}j0*Sx3*X6?9f z6iHMRp5s$LhXPCnU8ZZHJ@6ZzmIPG*8~f}Y5q>fp_3b4 z#K+QOTRMJS!?DuQG0KuR3pS!GIs}s%9cPI#g30HOM$p*kl|)pJUd2b%=+$`4uSFYJ zE2LzEm?VUNVUlZfza&ZCg@bjN9!L)z0J0)I%mxmk1pFwT_lKV%An3v$11Sy=x*cW;aGVtQ*#U+!6~Ud7RhC%9D5{}sXK<~$tJ6a zjur}1TPTQ{{|fs!Q5_?PP)qt1y#guzw9^R+qq0R|*vMg1a2mfKDT+RUR;z8wgqB;b zIDt?%JBAjeSp=ovT6I#cbrZSD*Lx=js|A=kffU{5_~R>aA$}2;X^qixMH^v3`b%$T zef#ft*@Tf34IpprkSrAFtR1Ih=Yn24I9GCOhgb{VIIBt@hUekhaRtgpX|A$%!1ZzM zxQXuU?QAG}PR6;0^(Nn!!RcvVM#|&XEjeGt65E%xuE<+BQlF(^iqj94XQxv|#j&Yb zGn|&gYgeWhj+}Ft2Z9rv!#mKR9pj;6I>z&p(nVG4I3j^Ano~nJrPx-@5W<3ZV71Ff*K*lp6IM3c8eMQ0!RvH zIMxKta5gJ5T>ADVGhFJ_Osw<&V1|nzwS|JH7MT$f)G#WfQzno?T~t)Dfnx_zqRwk2 z+Vi2rf7VBF6)LlVO!8)fWV3T&R(9<5T%c*>=7Q)|=EAM^T(}nHqZ~?^3-8x+;e(tD z3<*v;7v2K`S=V*&@ZsECV9BI&;T9UQ%!L-!Rg;1-8Zj& zPW#+Bb5F%)g0r>{ux|#=4=~q%h-Vqon=+}yKrcc+rCvG@Hjn*I^97q!hyXGZ*$(_V&m!%e#^9yb>}t^o@Ej~ZxB|M5`J|G;oH$-xmsEM zP*YItYJS!PhXCdL8~6lOV~Ciie8gN?(_3$;N71gO9`iB1rnqKGxpLL8?yc@;&7gW; zknqu_Pg?<1*U%COs#Cpe#SDJh3aT!F_dqI3wO3pns!~h5JH1tEeeF)~>uMX;|JT)h zSomL8M+6=QwA2I8Pf(pvwxZ~DwW^X@nj%_qLrX#RXYik*eo}gddy4u(fUvEaaGRt* zCioY_XF%o;RB*fw15QzEP#RR1Rb*E}n;)%GFCvgg*ids+;QA zRvFrwroQF-4!)pvo9jFHp6Und9%>qKz0yRf?sk#p`(eVLh1kbTDJB1iX!~W1U{L+u zB7C5U@Sf>}->awozdK#@@1qRKD#CL_SI0`2uBoC{e-&UlUHzl#4$p7mqmL9?QTI$E5y`M_E1JaAL04){qQ?}=QlpzW|1l72}pGb>Ak>TA% z#D8A+-!z>v^h=8mO{XLtq318X&yzK8{SbI=?2U-fM_X0mf zeQYYNwAo9`JRYD;J_n4YJ}y>zc?>?KR%t5r^}aj%hcYQQ|hlr4$~R+E+K-ZIIjsyKJM>YoDgeHtAeQ z=PnS+FO}-t7BvPg3z~FptK{ypbZ)y)?sV(ig_7G{rgIlb?v!SoyIA`Ehq_bh6Rr!? zC6cSDKc&9k)unbQ6D^zu4Rok3)ve6NGW7w>jt&)5yQS<=ES4QAuKM$Gdk{_MDAQ_G z%2o=OA&m2tSoj(|tT(K#&Z8VwZx>3OTcK=39nLFzySg#2>>cXXys{hcD@9lpr@Y{Y zuboP`aoR5dPZP}4nsYE$o~^tOu&I>k7d?dA{DdEGco~%c(eM|*ANfi19}T^jJs(c|r2LwwCE%ObG#h zZ*?u;@@e&ew^Yvn?DDq(4hvi+@H{s$zcC5jlD;Fz^rHfQG38XGTZR8s{sl;{71$@R z%uURzCgDa&KM`Dv^xXm@4V34W>XpF6%1C2Px!G{38zH|-y--bfi@-jCl-#9uppPy! zPheW$CLb~DBHeiV{#Z4&_qlq)jc&rL{KT&n*eCGr;99ixgg|N@t%NoK^N}fA0sp(c z3-DagWXlweOKDwiV5a&;RTA)74`D7{rT(ij6R1*;V|=UBJ0NG3iU}O|GX33YgzLhD z_k;+Ce1uO=?>4Gba@sKJj)kv8i~FaYhcCOmBQR>7q3$)`1-wh$0C=Ck=Uq1hT&ll_ zJ$y`seONsJxY+e|p*d#LsYo}%C5F~u9w`SN|(*Y!B?)mha~5eeZ8RUyOMLb{G_1l7X`ULNbbGrK)EWyzsSI_ zT)kI)s61GNf6al5h2*9c`PJ)^yT*4}#Q_tm5|<8jjqio}w-uGCsdjFpv=OVzJUe%7 zX(e*+l-#)QV&A-?kovHlJH2uNau3>+Kd5fR?%;Fv~y?qnCqLT>;0vI zxouq3)HP}q#-Uy+7hIY;Wr z_|>c5Np4*2RcX{KT9hlBre+l6+6!{?CHJU0(_`W7y1NU?9kRcx<8 zy(T%`UPJ{J=Xw-Tjgr&tMbz1Lj_pNMkDW8YGol{1a|h6RM7?I`*j_|MI~4xL)w%F^ z5%rLrOH1xMcJ4!xdrfkW`aV{2RZ&D0FJZk$)qAI{_C(ZYSLmE7x6pnG7h0705i>Tb zCdujf*Qi<~cVo?sweKuyRErC8W0HHXay4IvvU}~^m#5xb)TF+#hCDTws5&M&%_XW{ zT+6ces>_@2EQ+e0bvk#{{6bNiy5G(nGrv|eN4;w2E^q!u(OlKPUQ^yy^+M4(YRt}E z-ux$+&P&;3DQ8#f$wG;<(>R zPV40Y^@`-QoENBh7n71@wZ03~D#<;nK86w7qIO)OxxCu^RdcJ_FFDNxQJmziQlBw4 z7H?Hg?j+?^s@dFFyiL7i=PpKWySlhrm%S6Y3)Ocer(3^B{YY|}=SAwLHf2Cfu`W`t z+PMdjgIGP9%dcEhtV@(na;)c4m#SvTJ&(7F5v8c8o%?80BXWP<#d^>CTN}3(cd7r@ zIoIX}QkuQG>?@6Pkt^0Y*Sl*j1?4(B*Ie6)vaOQS?RBY?UB>oysEnOsdpp!06S?+w zsMmB(+S{RAm*v{qp^9}*+S{Sl**UhiLv59u*3u5uEjg{F9jZ@q&^4mT9cmsfBdPhP zRib!@S|K@28B^=*viGRL;+RUsHewr}fgK7D!HyLtHJibJR;*wGZmP4>TSsj;k|tPV^F2=h$T&hqzj0m;Fc0)u6oA z&QULMb+hEO)N%D8$!R&`>f@5rdWox9dvkKe)!CBMa_&-FB&X%XbN z)iRwEIeXRlb{XaDRh#WH%Gs-KvvZWQSA9rwTFzeeDamO$d)2*?({lEz(=$0aX-F=0 zcv@MRfoPBEKa}#E@5gSuP^bE_ZFH-jmhmj{_YK_p58znu&1uTYyy{Avp}AD5gz&+7 z!l~fQ=$8Ditt~4v5mlF!xm6#a2azaCzlU}Wb-kahKY^nRH==XmOL@1Xu5BiqW#wQk zq;jd9A{8Yx)Lm%T6gl0h0vHb>T1x(^@F%4qJWYk$2=Hegb?;p2h_v2_7EQG1g~Jj^~XF_hC3Io;~>kjf*{axcNt%*&xkpJ>dldT~k?uv@=L^q@It{#qWL)}_?2 zVYg07m-NNJu8A6Z&O?p8BaqXWrXdHz9v#h}d`z_l8gQ#J^xdOsMFX1h{w8w%OCzDy zq1Nq*@LQ1Ir8Lx~{YAuRs4-89{x!^}DNOS$BdQ+5$HM0;_#DMaL;#=1@Uigu3O+}1 z%7C*Z;M#Gb(GFZYaC3m01Kb?o<^VSbIKQGV4gp&DCgr|ba@tp0hLdQ*1p+$+b_(1e zaJ#@5U?skbOUk_hhXwjwLe5OlX(hMuYtJM*-ejVVe4L2d`p$x5{ zxm(Q>`gw{nEELQ#!7LNZY85YORIAlRCDhkq&tGw#Ld<5tTntQ!t4A<>lD=3t_X&JV zUv`k0<}H9XHSKe~Y^0j6bsYr$HrLha^14sBuCr-A68Mtq7D@k$ni=|q%WwX= z`M+EtbB50_YR!^{pwVca=BqUP=0%Y@<9XxP&8HX(TtBHe+c?$yc}0h@z?@RO(&#WR zuDrmwQ5DVT1{|;4W&Bmmp1KF=Yn!``TGvn{4fvb-1I7l^>l-(oQ17pPr*XsxRlnQl zFiNo}Z*=_*`q^&2GW~YrUsWn}mw|r(1@KhYu=OdlSW0cV3GVU?FP2T`!N%-5w zEZ6eLH_%E6+Pz!o@0GrM8Rx)%HI7K@M?|V8lz+O%jF~qC0_I-R-w-e#5gk4vTHR|t z0d)|hvg`)W6vpD6LuJIyj>^EhNs>677+B4=~)w9hnqF>zK zJZ*lv?6~e-(>;Q7raFvDi+bJZf+su|d+% zQrSB9U(L@?+3a??-|1^qhfVJMpHTf)BXk%JUgG|ZI@9WNA2lAFmUf5CxY$Tz|S;Y?s-y;gi2h`2#mQY&lg?X0S)7~9&u(3OR&^40*Bq){fxUyyknlHjeD`n z{h~;6*!|1u>pVBQ=?!jl--ey>%dS4}?>tA`|55iR&mHdW+E+b)bv-rp@19PxtJ1Rm z8`g4{;WExIpJKU;PvP8fmTP8N#G2(Qojwz=O48}32uhRF=2)L_U*B{(;6Z_rGN$JM z`iXHUlUI9YQUy-nx9Zhtxb2J5eCTGK7oJ?<~n|BLlS_w~(pSU0LKU_PE| zxTbui*-jZ$t7g)&9VmDy5IP|5AD%H2?XjFQM<8#nVM^ z(_M=_d#vd$&c{X9YhXcgCt^7L7sqUhWco%ql zGd}L^@Ei{Qn|FifK*_&(Z#0jf?$heG{?B=zP-E`*ROE?__V>j-`&!q8_nO~r1A;%HUC!MbgZp+t5&SG?SNbX z$30Ws316*Q2Y>jq`iSp3_l=%s-3QV7=v44mv!-9;dqTZ7^*Y}Xk3V>$?+(w!q1$}( z#7^$;JRbVA?;cOO;>*4-dTuUx)VEhgaIfq0-X9_Ty!Tna`-10~dtFDuFCu*y@ClDd z?kO*Q1(;8U(LeVy!4m&M;mH*+;{T;*ws*e&Wl)~yzr*-h=>}k4@bB`^GQQ^jsu?o4 zj?@~1f%{-@gunFMY3=hb6T5O*ch|n#AF@89ZubvEKOaE)(BYy@y)oe7q_dh`YvFd`Ym9ydIhjWl_HLqEAVWAO9g+vssw(MU@j8at=fRuqqYL3 zRZq!BjBl&Yl{{>G570CTo6R4qx0Nn6i(D_4cLQD;zDn>P5%{nfc0CpTDd5@)(;ar* zThRFsig7C zGANA*Y!-;0%K~PHz%hXz7WkZXl?nzUUY0HvxI^HWzz++2P~dX{m5-Fq`G2Y|4649Y z>JGqPOZrdhXTdRGei!_3$-|&|P@oDj9TB)#;0}Rf0zWM9L4m4NC^b83ll7Wqc}u(z@9Ex+-ZAfcyia;x_RjR3?pxs7=R4&4wa@GC z_dno&(EklT?&m(<&U`wb{(so#NemihxI zXQ@BpGfVv$l(W<;pq!;%1!cRca5V!~xn=;?xXuNf;+h3G)ztzx&D8-IalH*XZ3X2V z)eg!zY7QvpsMA0>N6iD}9CZdL=cxIhoPqbucVoA6m->SG86^1=wsDrL(pBeL>3War z4%g>gKXg6k`k?Vs<5$KXjZ$;me8~K+xzye5{)M~TT54Tkea?E$`mNRN`z0`))Kt&w}N%bdvVCG$kwPV9)e)6J*-J@(%d z+x-M~;Cx587&-EFRFeCqINz-PMqsOuWfQ?6p`FRmCqhpjcn zHLe?spzj8w!gs3?@x5Jb!sim-7mYi8Uy;v~NWYBq%UBan^QYCA-!#WWH)`Rc1zlZp zy5^{bnbh!##6VBSK%zgENhAjr?X(NpySp>VR5rV)yQ^ziB0bm_8(!KMOQ)ssMC57Y zxF)tIzBaypb28DFX7#y5Zpy?`nSw^D_CS``4vb z$1?GhT`&l_2jZ!&*v>>>A~S4bDK=`IOl%ZyPQ?b&gNZ&c>mmJ$p@Hrlr>eC>eSNW= zeQ_i^mk$i}$5T#jU8*OZiuV*Cm&JE2i)CUvV`)}Ei#>^M$d^|c!-U-GL^?y{KxXb~ z&iEoR`S_yXMAZPf8=7C4iVf~gbhD?x^u{w?eaU@VQOI}WpL$Q*WoZuTdaa;M@dFww zojgq~OLWtmVyWRBr>QM*+R~(r&Q%K&tcYhietZT_Wi&@T73wI?`G&VNLTw)-R-fd?lYjd93n9P8%pkd*4y4?*tC#wkbiFMAH zoEGR4Y0u=4q9EBb)E8ewGvIvbOmB+y$2$tMOQ7ylI^N#VsWzUsRV_*O46oa@D;>{l zQ#N{mFsh)rp;|Ki!>7^&vs+ zEy4SnG#oxD`FVKSwCiJ;?%iGIB@=qGtxW8bQX19Lp%e+15A-0FiVtL%y9}R&i@HT< z@c^q}?z?u`CaE?Jr!(>X_NB?bK3EjYE8V^_j@g;$R;gq%vpU(W`tY&Ylj)k+K&&_3 zvw3$40(SO*d0$r-hB=dn^<|NyUxxBRsh1@OGMjeC_Qkg+hr~)mAFGp~gJ=rkE=!?5 zsjfA#bY>{E6O*zF4n-{)O7!*M4Oq#LHIblZ=TkXd{ROsyMO5rY$xR@b79{Jvw_FM(&;81GKR(Y=ka zK@=y_UAt04=}ZbL>5ED*2Q$`hjrVBQuHpT!t1_$GKaDlTY#U}Pwt;Z^cS~>$=Vp?Te zUK7vkM%Ff9J4ffrA;mH_fW-(M*^Mk*GlWmX2R6pKamk~nhc@{fI+i7%;lX7NfL7GL z4hl;pdg5x`;8J*1g_^q|I)sTsQHj2#$^OB zRxOBhF1akePtznb7=`_kP7cz$D(2S?Au$LW8_)?^?IgW9so&(@6x$V7SR2!rNGg-) z-UB5dm0iqrwtFb06C6?W5)|u`DVRValU^F@-W^xFFilu#MKZNv2y7B@JyBy=hCBAd zZ@_EsOX9I6))%J@_4An<<|T2A0koMJ28R`KDa~6yRVTxfWSVxZmiHvEWFoP1D3eJJ zY)PaO%q0f)*{PMW!~k>&|DRcrO7<^}_w{w|g1^&r8;1rmiT?QJ;lcPSs1`M0B+QZ4 z#?bS14D_OmzE7vR;WARmKKLXw-=}fC`58K0jixKsshBX?1bYIn3s7@-`2gH+9BwYf zv4_JKMQw)8(kn6lB*%$JcPUTNx1?Yu@}#g!h9$`XkpX56vD@?G!@E+7kpMD zQWB}l_G4ORh}*gwkxFKKL{Y%pj_4VJGc*pj+x%11T^K zGI%XBn_9T&)Gp2lAeZlp^$jt>FUXmev^#JZ4`C;Y1%c7;!w+#&|yhYjO4IF06p@6mpvqboyB8ktVN= z@x4QEdkto>GP`%NOPgc85>~E=b;Bo$cXg8V#lYEF3SuYeLF}X`ZD?Qsba0+&uH0BJHo`}f z8%wpT-Gl(An|kF+u2v>9NuA0_J|WQ)OSs~tyHc19P!;la3~Jj&yKUJl*&0g;MIw!b z8H(+NhujJu#gwy{iU5hUy?CMkad}sM-i|aBfdt}eDcPNqCLo32|Al9dFnxPZy1w_R#Tn^z;BC)L=*46P{8H{?G(H879 z1|v$Q)?x(`gq(}?^*Q?N673>bRZC+4h)UrH`+C~4+E2Il0MA%?-2faH*W7r|x)itj zqIbC7ei?5`Xgd-)$U(&jhSG8B7{MHT#qb4bEH#pe4G#7pV(pI)tjmq|x>RorKUbm~ z#I#KI#bW~uoOTcOBY~9!v43Cp5SOeD9Pwm%aKE??k+E75N1!1yY#sa|lAHn@1-)0X z%`2-JF*eX(HOCqn>+DVrKo#?nKvzJhYvhP|uGRl>@ccT^<< zv}_1#Ci~LkBv=z?0U8TE6|cy`4-B zc5NEkiHKU0I({g=%iarfz;ioe%*CE~C-xgDEP)gq)xjNW2hz|B4NGU(6@*CHjHCA~ zj?SLj-sK0n`Ll&Mp8OFvy=Th<0(mEZx1IUF^J^J`0{uvX)mAj-*CWt;uj1`n`>hFX^$?m z8EAEBUt&mwlQ{tWB9A657F7 z+ftk;q_k*5gV~9tH|46+j=(wo@JVz;b_t`kL^sAvk0+W~_0y=qe*wv#C+ zfb$2g5kVZclll-Om5l~?B$A>L@U$i+@uyC)(>S5ni8uvE2Pui3yD$f_IuxK7cF~a1 z4)z37?~))tpUox&ox=`28(JD0#JtZW;#fzx$4W6gvd>H5z7KTa91@Fnx@!=}CWEO& zI*F4W8C?6wQ6=odSz10fToAPn#MsIsD6-SyH0|^WQffzo8aOKA$t$XIiwuX8I|p{$ ze+SMhQrb*K^~e;smwZp8AbK1}9M}e_w0>l1RrgRzuYW2j4jk(o>9BtBK`WyWNOtsP z5*h5uC2CSQvdF{1jd3aI80bcTfwe;(th*+`BO7c#I3Ha!8DWzl?oO{txi5EdWQD*j*R+$3<_>Fi)5X#Nr2Nl`urTy;9;33Q_Gm1Xu9p zfDBj}&SU9gR$p7l;On>)xP5YHj>92v9O&sxbGM&{PsuwFO^Z{rPe;>mCvu90g+7*w z_nm<5%b{YtUC9#k!d!9UpLRxKSt8aufXy;d685Ln&OUgAK1|1W4-dPtq)r$tVPJA_ z6Jo){B*pZM+}&o&^^sQ^QxylEh&&jpgR5imX$gnK$6&JcqNF?PEhgBd!l8i#CYbd+ z@4)*4PGXOJ&XLB}Umry+bq*rHFqcg0bBG)nO_i%2`khT>B)eqrjA0{;T31B zjoZoN-@IKMRHf@czO;-mLP$yDbbeDj!*j(nW9w`hc%JXWAK|Dli`|;SSwS|Z4XrPm zhs%eV8I>D7wr_%Av&>#+(SS^L!Z34%=Afp3^94>>SB+Y>qADqZTfjt51gQNDVB(h*5nuMx#ylWnzfPpc4Qb9OVXq z5e({Z+sfS>r<%4iI%Cjk2C1QRf}4U~;S}^?Lprw$a1cqkeoFIhCe}xvnCQmRJ%DO(RJqKu zq&~#sP-Bw`=a6(PazcR^4=yz_`{VI}E^J>@pe{sacJl@T28G4EBg1_mAlGPaDYRff ztcYc3S-4P@Z3-4Y++<|5)6-p3>vmp76eAYfVL~XG$2uBS*e+n(I>`SDQ1Cr*V1k_tt?V+!UtGyk^zt!3&Tjx*0%30w#U?(9H=bPxxAK!`c zQaS%1hm*^C=(Mh`ZhgI~y7jb@aa)SHt4DBCA2w!~_nZ2XxTq2IvLwtM z#z2LNSC@v<4cK2Z|IDly@XP29qgzCB0a?!_}&O7;+1`a4(6z$uWm@H@QEKb@qU>h+t1Lh>6LoM-)2o(AM1uRY+B^U&wOS^^;thn3Q#~6WfOa zdPdN_>a4R{WfAYR(s*)VPvC**iq8WF4)B!%?3#O)3@ds415Xa&Fnkein+7uLcF`%= zI}}OMKXNI=%?+pP@&obiAx06-CX>^A4Q6NpXGU1Sht(XrBg%27OVMC2wqp>U5cJD& zO2ex)aS;Ppm35AiKy2sj7hHL;dvh^K`nrzjhc zI0(8&`;gc{(c?O4S>3p@IS9~aoHRzkN$SlOgHf#a=ndt^mKe8r$e{Pj5-B9enJ3UV z&H=a_FLJHigm2>Y;nS@$_|^{2EmTCs@J!(MHDZEGA{SA+R1)v)Mew;y?Z-Q-alF5` z8Na46h*ShWvZ`zKAWbd_smc1RmB#yE{7-r9=lTC=t0&=k?naTf2QBrZC&Q2+{g(RV z$g~u{9fGen`kh{@u#?)1estq)Tztu|63Z;w=>_LJY#6UyfCeWcIm&7Ww;r@9)Q>|S z8T>qQKWMPw7LBM-H(JFGFw0dH#bgYqFBR@67y*uoDxp-}c+XHMLU=_1ZBwT8z(B&% z-N3}~)!HS<<4e2Yop|;@ALP|5W30jsO&+dxrAWvTi-9VyYvU zQG>N7rL12Eo5k&o&_~o7v^jteM-Z(w7MA9$n>`SVK1EwH?V59gaz`-I)U~#5JumRG zWjKPquUBSJzF)*< ziXueB0LYZ}A}|J;F7pwT=DM54E0@F!*c{0_AuUa$b5(8wWxg`bLS9u~I4O1`c+yO$ zesUMu@J4WU)Z8JxP*>znaH^21i=j7^RGWTE98;a=@7Cwurv_MDuaA6tbsKMxCpA8aAC1-N{ayqRXB@s&VpCJ@MGC zs?3*v33y10m7IX&ngB=IP6nf-PMHk5LZn#%dRiiv64gStmV!jMb`*@B(zKW!(9m|- zD(8f1+iJTsyaj_6X*W0lLW{I<_FGRk_Lw7c0bpFMz;sr%II=^V`=$Lp;jG<-8h?B< z$Z7CgkMzW0XV{>gR2+Ub5Wz2T(OWJPdhLlg>Db}jDBU=riMC06QW|s=SGT}P%y!#> z?ZlLfKyiAiQ*cgNa%Q*mk4$(banN5OHlS{qusF1U%LxQ{{b zj9~;Ftt59tGWdE6P-mn;)E2qtpq>Xnzp^O@D{z= zFiZMIT~J!m;hWT;>4S5|jRsOWPo1&ld_6m>7so(Poksk#yURtUVaS+7pJ{V4IonRQ zs&AA&e*bS`p=Oo*N6R|?xw=dQOcEdmW| zhaSo5JU1S>IDEngoZFGrCuMUqs)K;ZITdJn>}IawG>v|HFsRlZiBLjfxn>orJYV3* zgy6A|(pfvHikw-fGYhHm&69oO3hGSs+*CS6xta^>e3eEbsy0Vgj^XDU00%c;f2uj>is-~R$r-R}C(l?jqFg3o zx(1E}^-U9IP`d|DVl*wj1#Fi)jx85ms?fwT<)I@|C0oD=ult~9G5iv-wh%@Rj$5Te zKyhwWCnb99!p7 zz*hC7;IdD>ti+RUhvU=@Ds}#PDdA#y06z@036juNPUOL5Wnx`ME!v@SJPzPjni=`( z7@O8d`)^mPkiwNDxDKF?>yg8mA!<@a1szbH{gAQ;|B(jRQwwFvw*b5eikjTw71qdY zHMoJ|VxN@bIqI^Gla?+~>dcGOS}dqsqVuJi z+(~lwYz6=I$~D93>lzuq-QYrRsF!DsEd8FU)?NkQ87R=1@;hONI-B;zaDnu+33^m# zWF6l07$@pNT|zIzR%uz>`LyR*RacfiJak=2Ycc zL*GDuN$%Qv=-qM(^xFO>&a5}?xoU7m&CwWj!=;`p4J>J{ZcTffT#FHVhpy$;t!fG9 z@T-|M&viavjJBP3^Ii3~e0J#DmnnC|>d;uzRL2kuOstC zcLZOV1ZJwYvV4dLe?&jB8HK1ep9@zZS<1+Ma%@*2acEMJb44~+p8R+cV_dZ+k&l8lx|ou@I$ zpROO()uNut&<1=f6YUol8H<;&0_ zyLZ?qPZ;dO)SB8d!>BADA978DdNf4wG<-+b6ChP-naf39PO&@SDo?nr(D^fB>jW2`nUo z)9~+NxI%j^Wd`wwFG#zBMiB}e0d0CV=JUGC=NU$*lOsNUs|UZ`KYnY8^0>-}F>a&f zW8;QTYL<_EfTGMZtYSBQ`S@J`V|SQdm>Jp_AJV&I3nL*q|{#-G49%vpvElxqYr#Z-C1w4id1LTImFVd5mp6QRB3-XN^bU?1=& z-Nbw>#y>dhDh^$u&9>OEf~Hlz9o-J1Uoj&XT7$1fvu{WjTV4^>8{teEyH!g*3e9_A z5m36%D+DNk3AxIqsUXJMEs1H$FavN10ar0Tv?UBQ0J(6IhQ|K_ZH(O$@Iu3wo)zU4 zdRkRLNUf>AgWyUR#7l^U)WcwD!Q=QB381PV2E+$bFkl|O5@nWOS)z4Sz8yV;UReo6 zP~4Rvnh;uhDx|z95yVqIU-^}_hH!wsicv83l#JTg)6(8{{IEJuXb<%GpVG|m+7u<2 zo;i9S2kOdMh7pLksr|7JKsd2SNCsVjzl_1&T5l*c_I&x+&p7Uwi^cF993;cQ2o!r! z8yL70xVo|D!4)uAEN+zlPIUQ|r=x4Zdd@4%E({^5;VF>wl)3OruF!D#*ex(0s@Q{; z$NsX}+gLt!clrO<-nGQGQH0^yjh%H;duwkU+Egi8P%E{nW7)=O+(W3MCRHMu^g$@3 zP(hL!Y7tWU0)!OFyFGD(0|z83fdo=}sKf!OM50oK=nW1WdM^hgI3VCyi2~pE&#bd~ zNGWZ4D8h+%X6NzG4?Jh5JWgaXHvI=bCJ_5DGfL*_1{> zhCKw+0efUkK~G5H4v%nJ?^5nTum)DL6!jwL20iIC;1k#Y=QckC^^y|t&&to?5+tL_ z9UZM^H-VfYi6M!gCJrs=0Hu#nAMlual^cudW}>U5JFn%nNQaWXeJNyr)C7;z>6)tvd@ zh+wQC>Mv|0!T*p$pnVX7L;jxh8hOXXZ7?a*i;Iwnqnm7Ob}}-94N(jfRzfItZkf1# z9H&vJ)J6xny1W$g9E~)BHf?aq$p+!4ynIelGF);+vyneRiOkoX<&i<`Awh!D5i z*<@G%jkuHrE?Ao%$PJgA7+z;(TqP4PKS1*`((tC^B!ztt%BV4>G!>v1eh(^1c@5|r z_6xLkl{#bua~s~W?2Jj)cUq?2M460AU@?M-2nXr&0>pRtBQHN`RE`Q?eL`>tangq_ zp9}wBt2*y9oU|Yv47w<@pgw~xV$CQ@Nz%NEbhH=@f?H*&!{v^&5)9`3Bs0RhUU;YV zPx?X8l+(`Prfi}t7-o{N2Ny-;xdEgjW5BzZM8_}UR2ADo(8FYe_@^F5->8RWIA66p zi4*|J&5hKxcV9ZzUA_Gt*hr4QXzsIAyU?X;$TJPOoCPefwu0bperB|%ExK~aMJP-@7O%9{`a=LmCWSl}vVy!k6RRP+|JsI-{+aR+Yn zLW;Kw05yW|LEcP~q*!f?%x1oh2J9e$DvHDEXkjgZA+ zC7s25@T*IFz)C}0GI(iOIm;RviK4wNP>G!diz=)ya---E1-I>~BvUn{(QIx$3-W0L znQQ|qI*7Rlw<=#F0)0N(8sa)-?Rc221mTNPW($q|;R;%ElKaG~kc=Hzilp4daHpTJbiPlcc z0v)5_uQ-6WbM+T1=(3w{Wtt;f=op)4Ex(oHOX&o=hu{la;; z{}%ki7pCFf2hX4h?4+L?n8V&PPmhHyh?n-<)GQAHnvQQZH-0?@Kc2X_|9r6nLWIS8 zZ27qH_0t`AJGC3{2Hx#dpop2I#UG^11VyH^@_?nk?}LEu1bPq63CBPY#Xi|soYCKZUQFox1#y4zJ|6osRt~?+Lvanw z&eAMZ%g$`p_OUCg8~w0Kg$Lf!!Rd7jmXs^fS#AX17qHTq<+{s! zX4|TW9fL{YWn710PI(qap+hhM(fBkDLz28`MqN+*_Ln|EQHu~AS8AVulR#*jcoYmF zVgV{mg$In8g{B#Lb?~#DKlT`p5Sn7N8<;lLNdfgm;yVDf(5Lf&L1XM|t3bLeWpI+E z`K!VZj5$zSQPUEqvdHvLqmBMN8Ox&qi)PGmgkppRrXa#db^bp2i5?F)`QBY#za(nFyzHny-SQj<-N6AglUR~ zUg95bdliox`k~;^1GM}m#?6_%SS|!a_SHNICOsqI16kmliF*&dF+|h8fF^vW= zI?A1eVLO^-(i_J>QzF|S2HA2n2fWiW{_n>^+|XD`A2FKK&o9B>y}`r#iUlW2;Vj3@ ra=g@}&LBofw}dyu?SS6dYt_Tl-T&t{9vV@*XYc)k_`l|(I|Kg!rVask literal 53248 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𝔇QuxA+|5G08 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 J$p?1?{srm`y|w@V diff --git a/Source/Actors/Actor.cs b/Source/Actors/Actor.cs index eebe5ad..450c3d9 100644 --- a/Source/Actors/Actor.cs +++ b/Source/Actors/Actor.cs @@ -7,7 +7,7 @@ using UnityEngine; using Verse; namespace Rimworld_Animations { - public class Actor : IExposable { + public class Actor { public List defNames; public List requiredGenitals; public List raceOffsets; @@ -20,12 +20,5 @@ namespace Rimworld_Animations { public BodyTypeOffset bodyTypeOffset = new BodyTypeOffset(); public Vector3 offset = new Vector2(0, 0); - public Dictionary offsetsByDefName = new Dictionary(); - public Dictionary rotationByDefName = new Dictionary(); - - public void ExposeData() { - Scribe_Collections.Look(ref offsetsByDefName, "OffsetsSetInOptions", LookMode.Value, LookMode.Value); - Scribe_Collections.Look(ref rotationByDefName, "RotationOffsetsFromOptions", LookMode.Value, LookMode.Value); - } } } diff --git a/Source/AnimationUtility.cs b/Source/AnimationUtility.cs index e822d37..1c758de 100644 --- a/Source/AnimationUtility.cs +++ b/Source/AnimationUtility.cs @@ -80,8 +80,8 @@ namespace Rimworld_Animations { /* if (x.defName != "Doggystyle") return false; - */ + if (x.actors[i].isFucking && !rjw.xxx.can_fuck(localParticipants[i])) { Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " can't fuck"); diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index e18113f..fb84d77 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -261,9 +261,9 @@ namespace Rimworld_Animations { deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent) * (mirror ? -1 : 1), clip.layer.AltitudeFor(), clip.BodyOffsetZ.Evaluate(clipPercent)); - if (CurrentAnimation?.actors[ActorIndex]?.offsetsByDefName != null && CurrentAnimation.actors[ActorIndex].offsetsByDefName.ContainsKey(pawn.def.defName)) { - deltaPos.x += CurrentAnimation.actors[ActorIndex].offsetsByDefName[pawn.def.defName].x * (mirror ? -1 : 1); - deltaPos.z += CurrentAnimation.actors[ActorIndex].offsetsByDefName[pawn.def.defName].y; + if (AnimationSettings.offsets != null && AnimationSettings.offsets.ContainsKey(CurrentAnimation.defName + pawn.def.defName + ActorIndex)) { + deltaPos.x += AnimationSettings.offsets[CurrentAnimation.defName + pawn.def.defName + ActorIndex].x * (mirror ? -1 : 1); + deltaPos.z += AnimationSettings.offsets[CurrentAnimation.defName + pawn.def.defName + ActorIndex].y; } @@ -274,8 +274,8 @@ namespace Rimworld_Animations { genitalAngle = clip.GenitalAngle.Evaluate(clipPercent) * (mirror ? -1 : 1); } - if (CurrentAnimation?.actors[ActorIndex]?.rotationByDefName != null && CurrentAnimation.actors[ActorIndex].rotationByDefName.ContainsKey(pawn.def.defName)) { - float offsetRotation = CurrentAnimation.actors[ActorIndex].rotationByDefName[pawn.def.defName] * (Mirror ? -1 : 1); + if (AnimationSettings.rotation != null && AnimationSettings.rotation.ContainsKey(CurrentAnimation.defName + pawn.def.defName + ActorIndex)) { + float offsetRotation = AnimationSettings.rotation[CurrentAnimation.defName + pawn.def.defName + ActorIndex] * (Mirror ? -1 : 1); genitalAngle += offsetRotation; bodyAngle += offsetRotation; headAngle += offsetRotation; diff --git a/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs b/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs index 30302e1..4b5d844 100644 --- a/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs +++ b/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs @@ -11,10 +11,15 @@ namespace Rimworld_Animations { public readonly TargetIndex ipartner = TargetIndex.A; public readonly TargetIndex ibed = TargetIndex.B; + public override bool TryMakePreToilReservations(bool errorOnFailed) { + + return base.TryMakePreToilReservations(errorOnFailed); + } + protected override IEnumerable MakeNewToils() { + + setup_ticks(); - parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job - //--Log.Message("[RJW]JobDriver_GettinLoved::MakeNewToils is called"); float partner_ability = xxx.get_sex_ability(Partner); @@ -30,6 +35,10 @@ namespace Rimworld_Animations { else if (pawn.relations.OpinionOf(Partner) > 60) ticks_between_hearts -= 25; + + parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job + //--Log.Message("[RJW]JobDriver_GettinLoved::MakeNewToils is called"); + this.FailOnDespawnedOrNull(ipartner); this.FailOn(() => !Partner.health.capacities.CanBeAwake); this.FailOn(() => pawn.Drafted); diff --git a/Source/MainTabWindows/MainTabWindow_OffsetConfigure.cs b/Source/MainTabWindows/MainTabWindow_OffsetConfigure.cs index 9516e3a..ab2a354 100644 --- a/Source/MainTabWindows/MainTabWindow_OffsetConfigure.cs +++ b/Source/MainTabWindows/MainTabWindow_OffsetConfigure.cs @@ -31,22 +31,22 @@ namespace Rimworld_Animations { if (curPawn.TryGetComp().isAnimating) { - Actor curActor = curPawn.TryGetComp().CurrentAnimation.actors[curPawn.TryGetComp().ActorIndex]; - + AnimationDef def = curPawn.TryGetComp().CurrentAnimation; + int ActorIndex = curPawn.TryGetComp().ActorIndex; float offsetX = 0, offsetZ = 0, rotation = 0; - if (curActor.offsetsByDefName.ContainsKey(curPawn.def.defName)) { - offsetX = curActor.offsetsByDefName[curPawn.def.defName].x; - offsetZ = curActor.offsetsByDefName[curPawn.def.defName].y; + if (AnimationSettings.offsets.ContainsKey(def.defName + curPawn.def.defName + ActorIndex)) { + offsetX = AnimationSettings.offsets[def.defName + curPawn.def.defName + ActorIndex].x; + offsetZ = AnimationSettings.offsets[def.defName + curPawn.def.defName + ActorIndex].y; } else { - curActor.offsetsByDefName.Add(curPawn.def.defName, new Vector2(0, 0)); + AnimationSettings.offsets.Add(def.defName + curPawn.def.defName + ActorIndex, new Vector2(0, 0)); } - if (curActor.rotationByDefName.ContainsKey(curPawn.def.defName)) { - rotation = curActor.rotationByDefName[curPawn.def.defName]; + if (AnimationSettings.rotation.ContainsKey(def.defName + curPawn.def.defName + ActorIndex)) { + rotation = AnimationSettings.rotation[def.defName + curPawn.def.defName + ActorIndex]; } else { - curActor.rotationByDefName.Add(curPawn.def.defName, 180); + AnimationSettings.rotation.Add(def.defName + curPawn.def.defName + ActorIndex, 0); } @@ -72,12 +72,13 @@ namespace Rimworld_Animations { rotation = 0; } - if (offsetX != curActor.offsetsByDefName[curPawn.def.defName].x || offsetZ != curActor.offsetsByDefName[curPawn.def.defName].y) { - curActor.offsetsByDefName[curPawn.def.defName] = new Vector2(offsetX, offsetZ); + if (offsetX != AnimationSettings.offsets[def.defName + curPawn.def.defName + ActorIndex].x || offsetZ != AnimationSettings.offsets[def.defName + curPawn.def.defName + ActorIndex].y) { + AnimationSettings.offsets[def.defName + curPawn.def.defName + ActorIndex] = new Vector2(offsetX, offsetZ); + } - if(rotation != curActor.rotationByDefName[curPawn.def.defName]) { - curActor.rotationByDefName[curPawn.def.defName] = rotation; + if(rotation != AnimationSettings.rotation[def.defName + curPawn.def.defName + ActorIndex]) { + AnimationSettings.rotation[def.defName + curPawn.def.defName + ActorIndex] = rotation; } } @@ -93,5 +94,24 @@ namespace Rimworld_Animations { base.DoWindowContents(inRect); } + + public override void PreOpen() { + base.PreOpen(); + if(AnimationSettings.offsets == null) { + Log.Message("New offsets"); + AnimationSettings.offsets = new Dictionary(); + } + + if(AnimationSettings.rotation == null) { + Log.Message("New rotation"); + AnimationSettings.rotation = new Dictionary(); + } + } + + public override void PostClose() { + base.PostClose(); + + LoadedModManager.GetMod().WriteSettings(); + } } } diff --git a/Source/MainTabWindows/OffsetMainButtonDefOf.cs b/Source/MainTabWindows/OffsetMainButtonDefOf.cs index 657a4c5..e7ad9eb 100644 --- a/Source/MainTabWindows/OffsetMainButtonDefOf.cs +++ b/Source/MainTabWindows/OffsetMainButtonDefOf.cs @@ -16,7 +16,6 @@ namespace Rimworld_Animations { static OffsetMainButtonDefOf() { DefOfHelper.EnsureInitializedInCtor(typeof(OffsetMainButtonDefOf)); - //OffsetManager.buttonVisible = false; } } diff --git a/Source/Settings/AnimationSettings.cs b/Source/Settings/AnimationSettings.cs index ff6cd6e..9640395 100644 --- a/Source/Settings/AnimationSettings.cs +++ b/Source/Settings/AnimationSettings.cs @@ -13,7 +13,8 @@ namespace Rimworld_Animations { public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true, controlGenitalRotation = false, applySemenOnAnimationOrgasm = false, fastAnimForQuickie = false; public static float shiverIntensity = 2f; - public static Dictionary offsetsByDefName; + public static Dictionary offsets = new Dictionary(); + public static Dictionary rotation = new Dictionary(); public override void ExposeData() { @@ -27,9 +28,16 @@ namespace Rimworld_Animations { Scribe_Values.Look(ref applySemenOnAnimationOrgasm, "applySemenOnOrgasm", false); Scribe_Values.Look(ref soundOverride, "rjwAnimSoundOverride", true); Scribe_Values.Look(ref shiverIntensity, "shiverIntensity", 2f); - //todo: save offsetsByDefName - + + Scribe_Collections.Look(ref offsets, "animationOffsets"); + Scribe_Collections.Look(ref rotation, "rotationOffsets"); + + + + //needs to be rewritten + //probably somewhere in options? + } } @@ -38,6 +46,7 @@ namespace Rimworld_Animations { public RJW_Animations(ModContentPack content) : base(content) { GetSettings(); + } public override void DoSettingsWindowContents(Rect inRect) {