From a9ad5d6b15dfa29397b38fbf8ccfc7118cce8565 Mon Sep 17 00:00:00 2001 From: c0ffee Date: Fri, 7 May 2021 18:58:41 -0700 Subject: [PATCH] Updates for HAR: fixes for offsets not working fixes for animations not starting --- 1.2/Assemblies/Rimworld-Animations.dll | Bin 59392 -> 59904 bytes Source/Patches/HarmonyPatch_AlienRace.cs | 8 +++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/1.2/Assemblies/Rimworld-Animations.dll b/1.2/Assemblies/Rimworld-Animations.dll index da4ab3d452b26128e9c399625cdd377b48185a13..0c115d3f4b6b85390a261cb5f960409eddd3c0be 100644 GIT binary patch delta 4464 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 YpV5Cv)M5hruZMNC-*n|BX&$ZqFS!^pxBvhE delta 4410 zcmZ9Q3tUun7RS&3-aB_5%nb7okoP>82SOA+AjAhqsHCN65~cX9fKD{Xit&Rx_-TLw{XqbqOIBFMC>3HJNeR>v6HvH?P&k?7VrDplg(Oo1_i#q@d zz(sn7IHI?)`uG}-e*&mrRXxDb#n=r^KbILCEp+xV&Bq>M0L*h%VmmrnqB$8Ey?Ucj zuC2wywd(+M^YU>^n7YR=V&pHxs4BI}W;s<8X;nR_r7ao#$u4>_!$qE>By&}~EOd~#vEt2T?cV$#@A_LMYgrv!J6u?iqXfCp}3AE8FYF@i6_$&#P}L( zv|0zJRMBb+bo0F5M!6&leB^3#Szw>5jb5$Dw{LXC=yh<@6Qj4l&YrC1-f(6qvN219 zw~dakOpa#uC6UaY&%OPlD=_Pso^5npOZ4c>|i6Sx6#u^qpM=c zPTH^Peo{{>s+@se+)qa6V7rI)X4A8N1kQ72R_S~KtNpsn?Bf%ddLr+ZGM{IQM z^jva)o}BJP-kDy4ESWKkGd_4|MsI;U8ocq;M}(Z9@6DbWxaeA`_dx1n>`Ge=gA-Tl zy|Cj6rk3|y9xFo{yu(#<&-U0xeHz^4YBe;v|A=bA1Z7{N`(1q>_?9aravGWcK+S4!k$ z7#0XQSHTR!WblPlKAC4IgGF2^CCXvX|ETx5Qqq*e@z6e2upGwK{93Ras<=`nQvpl4 zQcguBEUO79N61D~2~RKLN;^Dhk)aY6D~eC15}pb9*kmeURmgWPW+_G<3n@04N;t`t z(sm_W;!0_>629k3nM@_jssmPE8BHZL)UonPr&X|lE2UFEw1gCE)DO#)wt1s|cs_Ix z?3(cd4f$B3epny!u}1xHHl$diez=6H4}j9CAFgtz(y1SAbES0Zhq`*!n$oDBPFiq3 z*-l?r;6%Q;U_Mz-lWUyu+wp!Wz=2o*5i%p$L(rRcd_sU2ym!lVW=$eSudIoRKICRr z!NhJ7r^5l%@F?D|HL#uTtBFrkJK4io3hoy`Sx4BIg=Itw{kf(eQPcE=$tlb$z$-QCF0njTxY+sa0*hh0f&u!Y!g zv|I4GYGZ9Sd%CK1rtEU8g(bl55Pe}xY!C+U$N|81J;W^|xn(3Y(&R;t82;ogCU!B! z#5kWeEJ{x4?YTy}q0@bb_z1h5<%(PF8lgaZSraZ~iEd|vP$)KP?1EkFO}|(aZyn>U z7S=*h)C@sORwc~A^?ItV%O#^|L0vK#Naxf!GrvjFhy~c%I2fqVChPgrC)BF>YWMEqE}*9o7A%VV3x zLOkmH#mS_I&RiU&R=f6!bKy9BVR5dN#azJruZct|G$u&jpuKBxd`eeRvQ#7d-rh&j z61OK?N+xyq-EWpeOOX_fERpsAt4PE}G&#^u&E|X!XH^k+BwexR+moe2afA6gsX(&2 zj8dWWvh{}41$Jw@kWQ}QLSZyTahR5{F;R~G_Q_vKvt5UfKKl9+XW*velw2qT9M|RJIPIV0R(L)V z)W_kXBMowe3Gpg*t}q-Khjqu0@jNn1nB%AxayhevUG63^OE{&i7P5qqt|oDokPw%k zP9p3KW(n&tb1O{t+^^0O_8YIuS;FVWCOn&#Fi_7Db_USY3T{uPnlVRRz=O2p0q=0N zmWZxL)!ot{Te13+eAILr<2Uc!%{l=QMSVgVR@_xAL`es>CvSo@&i4+v<|Pz2@U9YmcZtagWfZLPp{`VH^MS^d;MU>{uG1h44jR(H3P+K#a0TgvYseHZ7}N0EkTIJxkK0Fp6)j`AWddgz zq@bl5#v$jxWaB~MLwLh@UO0wyii~;U$pCmwWn46fVdQJ;CgkHi4sy$RPEoRwk9#2S;|?@*}>V#31%M2nZwy> zVHU754$I+hrJVJgEu0;Sy$1`b=j`C@#D^BX;m z;Fj%uzi2rP$H@d2+@dExj4?cY1ZBhF@{#r)&(ZNCU() == null || !pawn.TryGetComp().isAnimating) return true; if (!(pawn.def is ThingDef_AlienRace alienProps) || invisible) return false; @@ -103,6 +103,8 @@ namespace Rimworld_Animations { num = 0; } + moffsetX += bodyOffset.x + crownOffset.x; + moffsetZ += bodyOffset.y + crownOffset.y; if (((ba.drawnInBed || ba.alignWithHead) ? pawnAnimator.headFacing : rotation) == Rot4.East) { moffsetX = -moffsetX; @@ -117,14 +119,14 @@ namespace Rimworld_Animations { Graphic addonGraphic = alienComp.addonGraphics[i]; addonGraphic.drawSize = (portrait && ba.drawSizePortrait != Vector2.zero ? ba.drawSizePortrait : ba.drawSize) * (ba.scaleWithPawnDrawsize ? alienComp.customDrawSize : Vector2.one) * 1.5f; - if (ba.drawnInBed || ba.alignWithHead && pawn.TryGetComp() != null && pawn.TryGetComp().isAnimating) { + if ((ba.drawnInBed || ba.alignWithHead) && pawn.TryGetComp() != null && pawn.TryGetComp().isAnimating) { Quaternion headQuatInAnimation = Quaternion.AngleAxis(pawnAnimator.headAngle, Vector3.up); Rot4 headRotInAnimation = pawnAnimator.headFacing; Vector3 headPositionInAnimation = pawnAnimator.getPawnHeadPosition() - pawn.Drawer.renderer.BaseHeadOffsetAt(pawnAnimator.headFacing).RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: headQuatInAnimation)) * 2f * 57.29578f); - GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: headRotInAnimation), loc: headPositionInAnimation + offsetVector.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: headQuatInAnimation)) * 2f * 57.29578f), + GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: headRotInAnimation), loc: headPositionInAnimation + (ba.alignWithHead ? headOffset : Vector3.zero) + offsetVector.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: headQuatInAnimation)) * 2f * 57.29578f), quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * headQuatInAnimation, mat: addonGraphic.MatAt(rot: pawnAnimator.headFacing), drawNow: portrait); }