From c800084a328842024ef3d88f4af309a9e989ad8e Mon Sep 17 00:00:00 2001 From: c0ffee Date: Mon, 22 Apr 2024 16:14:04 -0700 Subject: [PATCH 1/3] playable sounds --- 1.5/Assemblies/Rimworld-Animations.dll | Bin 38400 -> 39424 bytes 1.5/Defs/AnimationDefs/TestAnimation1.xml | 1 + .../AnimationWorker_KeyframesExtended.cs | 17 +++++++++ 1.5/Source/Comps/CompExtendedAnimator.cs | 34 ++++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index 9ecd0832967adcf3ee268bfdf5a63adf8d6041b8..fa7e05c51ae2a9885f86e44f30b3396044771f0c 100644 GIT binary patch delta 17276 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 delta 16646 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 diff --git a/1.5/Defs/AnimationDefs/TestAnimation1.xml b/1.5/Defs/AnimationDefs/TestAnimation1.xml index 466bbb4..60362c4 100644 --- a/1.5/Defs/AnimationDefs/TestAnimation1.xml +++ b/1.5/Defs/AnimationDefs/TestAnimation1.xml @@ -12,6 +12,7 @@ Rimworld_Animations.AnimationWorker_KeyframesExtended
  • + Fuck 30 0 true diff --git a/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs b/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs index 1b41241..0b74719 100644 --- a/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs +++ b/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs @@ -22,6 +22,23 @@ namespace Rimworld_Animations return base.OffsetAtTick(tick, parms); } + public SoundDef soundAtTick(int tick) + { + + //Verse.Keyframe keyframe = this.part.keyframes[0]; + Verse.Keyframe keyframe2 = this.part.keyframes[this.part.keyframes.Count - 1]; + foreach (Verse.Keyframe keyframe in this.part.keyframes) + { + if (tick == keyframe.tick) + { + return (keyframe as ExtendedKeyframe).sound; + } + + } + + return null; + } + //use extendedkeyframes to determine addon facing diff --git a/1.5/Source/Comps/CompExtendedAnimator.cs b/1.5/Source/Comps/CompExtendedAnimator.cs index 463dd3f..ed810fd 100644 --- a/1.5/Source/Comps/CompExtendedAnimator.cs +++ b/1.5/Source/Comps/CompExtendedAnimator.cs @@ -93,6 +93,9 @@ namespace Rimworld_Animations { StopAnimating(); } } + + CheckAndPlaySounds(); + } @@ -198,6 +201,37 @@ namespace Rimworld_Animations { } + public void CheckAndPlaySounds() + { + + PawnRenderNode rootNode = pawn.Drawer.renderer.renderTree.rootNode; + + //check if the rootnode has sounds; if so play it + if (rootNode.AnimationWorker is AnimationWorker_KeyframesExtended animWorker) + { + SoundDef sound = animWorker.soundAtTick(rootNode.tree.AnimationTick); + if (sound != null) + { + sound.PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); + } + + } + + //do the same for all the child nodes + foreach (PawnRenderNode node in rootNode.children) + { + if (node.AnimationWorker is AnimationWorker_KeyframesExtended childrenAnimWorker) + { + SoundDef sound = childrenAnimWorker.soundAtTick(node.tree.AnimationTick); + if (sound != null) + { + sound.PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); + } + + } + } + } + public bool AnimationMakesUseOfProp(AnimationPropDef animationProp) { // never true if not animating; anim props shouldn't be attached From 3f7a7bfdc3047f7eec3325f04c46354d22b20c5e Mon Sep 17 00:00:00 2001 From: c0ffee Date: Mon, 22 Apr 2024 17:31:20 -0700 Subject: [PATCH 2/3] better error handling for missing rootnodes or rendernode animationworkers --- 1.5/Assemblies/Rimworld-Animations.dll | Bin 39424 -> 39424 bytes 1.5/Source/Comps/CompExtendedAnimator.cs | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index fa7e05c51ae2a9885f86e44f30b3396044771f0c..0edf7e753ae470423c7657757e00b1ec14d27267 100644 GIT binary patch delta 2151 zcmY+GeN0nV7>9qiAGa0Gg;v_hM=K?Qlp)*>(ZN7b`BpTYUB)DSEp9pyqeZu|QFAGU zYNme(CB#h3%%VmXO^n6FEpEvI>C8eFm#E1!lCdS5*+*P5muzN^-E+?M(l#Nv&wYOH z``&ZQInXy@=$kN{JZ74_{3teb!X`778RA z)^bW=>p}Y`3v%FO6wSWv6p@3X6sk+1EsPS_oI#V@Q{0{u3i70I(Lj@k9jK9%!#shb zhP%cbgi`WRoh&2=r+78ma};APu4zPj<>FgCN$I{$86+3KCDrA@B-2$UKqd)~*=5QmZd}pmZSk%#A2W>jd&$Q`PIyO6<|E{zy`#A2EF=YZtkJB? zM+&j`1?JcU^_yj%g!zZ;Riqf*3X^<%2||n#pt1y}iuuA)*cfqFiXKK`EOfV!GPsw| zC(E%kh2#`^nNh-8mcEIU+AU%iX~qoM47 zoDL#mx9%31WdyalF1H9DP9!CLm|!#tuO~o!AS*!Uk3#nBAQjlUf)1o|FR8?NMttB( zT+v-OS&7px(j<4aILCFyvnCPS(a$K1anwrNG0cef+<|k95}3%pZP@|! zjk7L4WjwXKjxk0FMY!Oumv-R^LteNWrnNL0#faN4?Z&H|)D0A{?!iGuQ=sEJafy>a zAFUI&7!6=+Zo9M(jq6w!w(<7E&nSV*3u1jG=G^|mh{W!yjuQ!76q{0ZUYRP<@O^@K4q~rkZB_#*&qn6x{ zFQftdn&bxYSaVB+N(F;xYo)7*V1pp4^a~@tib4FTxh2e5*3;xOXJZrrcZIqW)Gl?5 zW`!~J@QR{Aqrv=2l_oaOF0%`|7f(rVMsb6q;C0dHq$a;y+@#X9=GvTJOHpLDu|naD zbDQcGG2#ysg@;iDPt<)7g)hk+MRokhx_7H>j;i0spUTG@$3L~%ZhzNb5I2R$bJ9-j j-vQeC{g`_=Pw0wQ4__AI86!`Oh7-QH{nR62$Y=Q<&5Ee! delta 2121 zcmY+_ZA?>F7zgnGZK17rF0?9AXlu(PqYh~+GR0X@1bGoOL`=xo#5jyPCQ)8oNW@%f z3z!YFl@hj07Rka0EHM)5%#v;HMbhlW4`xxaY;1$+HnMDCS!U*p$nJTuwEb|>AOGih z&be*xrSpoW^NQy6a|y>b*Zv#qwMs7p$7&^GNRqM>|G5lULz$ZOp=YIR=~&1oDW;Nf zuvfXdYLEzL*reG=o=lJcBVdBYnGNVplmJPmchRMWF16~Cq&pGnN#7)+e$J zOcCr$rj?uGvh8uI;FZ#-hE^i<##ULW;uYx8Oli}xKd!z$Dm_WZN#2dxbVZwi^Fnl1 z2F9Y5RN<(SNd_ik`Yf1^>9b%#a)q+I&IY5KUQvKukqr)}2pSU1#D;T1r*u~q0)saYfwH-u)b9+HKk&}FYh*}Y+DpLN*J6v5BtZDbv$nfT-! z%*A9msLrE(KCG~nlU&?m;*~Buij#gLI|DnP3+tF7hTP?Qi3?tZ6PcDD6I>V)dM8B( zH{^WU7(t(b>Io*kg&R3cLGyp9tB4zg(JU>|jSA6s+@^yEhhr)|=w%v!(@{e_xSOxg zEe7Cr93*+jf11nbc#-7e3=`jQ6V64m7P1Mgn`tG_yy#$}LxaSNtb(Pi5FRF)4U$3} zk7|VMz)S(?{(MX^{)mR}lVU8!j46R(3mry|lEh1;ss{rQKu2Y-vu>6jsVkg$!Hx*hXmFAA9WL90;`%@#>DT7_O+ znI!K+K&Z!LlWTAxrmqgeak@mMh^w!|)wuAJsA>##_?BrB6{}qG0ZbRtqfKHqL5F(O zZKv{K3|_e&jZFNY2hqV4!4>;0{XyJin#8Zk3;IK7+d=!3h%{m=mK*R5BX2x{X)g5J zs^uea712_f)fkSVoQZGWhya&FkJgA$rU0JLsFh!WZRg`Y9h%@|ir{1GF}VqSJX6?h z(TqV6(uYSgE*38}He-~De@)HMst;Cvm`8?Yn3*ETQ}3S^gw^LQy<_gB>ClQBLIaK| zZ7c3D4WQK6F1Nx_N-GDTXpLv(Hry1{8vEpStS{r?Un%YKY4k>QQSQL7&<`o^%4cw2 z=(ao|D@djP62uqUi8V}qtdu^GJ5dmm`B3yYQ`FFh=LEN^I*U_G{CfTH#Wecyim0?> zXt^IFF_i&K#8d|Gp{Q)aH93ImFJDOEKr zvZ~at)XLw4-cCKBX7fz^pxwC7 Date: Mon, 22 Apr 2024 17:38:30 -0700 Subject: [PATCH 3/3] better error handling for checkandplaysounds --- 1.5/Assemblies/Rimworld-Animations.dll | Bin 39424 -> 39424 bytes 1.5/Source/Comps/CompExtendedAnimator.cs | 19 ++++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index 0edf7e753ae470423c7657757e00b1ec14d27267..9f4b569a72fd5f663582ca287a2cf06d6a0a6dcb 100644 GIT binary patch delta 4800 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 H`O5zRW!o8T delta 4765 zcmY+I3s_ZEzQF%$ul+oGpZ9^o@tgyPzySsXOw33O6eW3NIL;l#Dbw&~Dt#klDT?0# z5y&1UY;`iTG#d-cs|Jlx)|cVX%PH+Mi@alTota|tre4!~wbc7xYo8F$_nqHazxDsG z=YB$Cx6s%vtbbJO-F?PvelR|p|LT0j%Wmb_ivfgYW(LfE>vCmZe z3Lrsc1;F8I0Ae2O7}r%P{HT)*bBg1c*&wf+3t;m~@m@Kz!7aJvXS@oyl~L4}skoK& zSr~j+$4tc<;--+{#jnx zExV<43k&P7UAxw`!C8<*&UPKm9;Zg{v&k?sf$>COA#z?kD}Uxolw|m$=LJCqYG>t7 zDPx_&xY}QfIsXx=M_vf6LO$wYt^V$3Jfg5x7eY-~{x;CU`6Tiqnejh4tyXpM8>3j2 ztM1f(=_uX5)kYvUp`H*R`gSZg`8tsoLc5XEa4H0@7_Vd5>0V`vhaU1KGF5mJ`%%L6 zM21)V?_harfR)e2zmMf*!B3HI`M*FWCwz^p<oM^}+X{jb?j( zkZd$}=Lek|bqN}7;(0LJz0Le0e@6aJ-42hYSalCOcIyrhM_RVP(XBh7@mI|H$TM=c z?gB`&Voy1G%<9`RobTx#_#mCvsk1^Kn_F%RlBl`=wkgifbuWDMYb)FD`iH5H4@Uo2 zPk^E0u3nAm;Glfi(=mNN(*3m*RXzkWY+Fty)YNW)I89X&7$hnQQp5 z4#U(~FDx?*dt=5jli(ybYY&sM;5$p<5ll^jhFmsED|{7~Y9zytF&hZw8mX|*{ItLy zonWLv-Ds9&4VD27-1^|Z5+)cKAl}S-;1kIN7dI=G3Cp=PfhRoG7zN=m*E6%>S2tMB z4K|%ypE^pP7B#YAzNL^HJSk?w2QhoWDMJp7&10SRL5Iq$jGMLA9GJn)+RYree<qar8 z4U0{N+@aV3V=^qh?RvXAU@14&?gQfvcsXV{kt0Saq>g8qY=Pex<#4#bvfki#Mg>H# zaJ4q^P8c!43Z`S~osbo?oX8nt8qDQpt+x_thGN%@O4t&!$GtZDZ{XFKwYkIg8PGed z-E25~gMA*oK~LUb-wxRf6(6>@v#A||QeU?H9uNyH8^CAA99Ye*2|A&`J_kCuSrfe% zUgXvX-ATukd%-BO+WpgUMVSZB;{M~OkL(N=+pFO+4_XcH2XP{cwZevQrTu>Ron?3( z%upA=5^jfp4ZjFpwT!T-ErKK5*1+8(X4)6Slu5i7e*HWMmE8K^?a%}E2jR_0z{a-* ztc63dAiG!8!u!S78`i=RZq{L{h0Mvn#ICBfP{gedZpQ1U4o*yAu|Bxqm*FA!F=m@0 z$LT|$m$29-C~+;fKLk_JaQsa`U90U&;s0Vm>gupBhu_{|rJi*zx37fmA$#850Ec7t zH|L-1t02N&wXm1Z?XTIRFoB!3q(&&=)(l?qhP@Hy4vRIxLS|90f=$pIOC67?t6?iQ zYrW0TIjmtbycWw$f^B*;d@?L^4SY2$a}At|Wj+Y+*w?`K!(uJ)Be!TXq>wylfr?VL zie@Os2XG7gi<`BI7C0Y^rSOt!IS)g>OXx55ESNqUH-_FASLOe{e=9E(-NeT11#e4)jLWNX|#81r+pCesQLZq0BR zuY*>|9TsbY{8(%N4^$iWK=4HdpzEtilcZ?BK*%!hN#qiFk8q9@ITnz4L~#FIm`A>J z|4Ud%kHwu8YH4ZsC!wC|Ng^d=m(xMdL3uEZz6ehRZ>O)qfw+I8-SAD~L>Pc~^cpO) zrDl*z;aZwO*jvkV&VDjid4x_UZv=J;?bx$C8|IO6e9msB1CBMcldkh^rU&3y+$VUs z&q+D~`yd$qXS$E7zPD&Vcr5TPJxFIq{z4DKqX}Ws1Zno;^h0_e_!aHsFT$++13gMt z$QR5DQ!_}mnN&LduIEINkfa5qpWc_WUrZ*%aYzjC32i5TP5MmSP9{Yd_uCmqhZ&E> z9Tz)!&H(Llp2YJ1IQ}6H&_U$~v$HfMs!M|cyU;fCoF1fK>LKi*vyY6xm)N6N%xtJf{%SYW!LGP?(1={=X&c1e?rxj<5j+@T`$xkg%J*Mhe1tPy;S~BGijLk@LzR zVYmH*!oHwStrvG=jYdxT!|Gb`V(=!lUEChbQU`G?ISTX1v`Cn27TKwFl(tJH>U>h@ ztWXJtXCT>)e?CivR48;VCWPGLYf-o3p?MOcMZONTM?4vP23!4}?p0HPop|gx{6*ai zgRUcLKi{VTf!*sf@U;J%I>2iNkyq7}K_MFXYJ~n_F@?LpDv?9Z9w&OSMv_ZL|dO z6KwUuIOz`CM2YW{3Qt0nO~v!A$|gV+nS;CsDd8o}%KuL0+Ok0haAboQG-MFcktr}5 znF(dcF`VN$i+O!HRAT)MUh{j-YIp!^7DET}A$ZC62O#vzPPK9R5R97D(YN=B(yy=G?*gu6+j#I=*qR%x%6?$ags*j+G;v zMVxav8yU@~rX@#xbQ}GQenV9;Uz{%fL3|7k|9LT4%9F-RCDJr$K)N8=NvQxQFS)|k{E0m2&fm)}n(7w}rCaFvzmFCFGYUJ9=(yDc|9X8Ma zc})!Cw~)A{WkiyrBum~xYULgH-HqS<+_U6flB$H!zaV=Rx3Ej~3zFOp{c4hM9>15= zk%F#`6Q0(#5Jy+$ba$r9ck6$5UdefUN@tJDb*z7Na#uye+kz2P3{PW|Crj`&uI-AC zj`5lm9WKw@*gubOv9N-bBkjrYq^7H-V=Xa{bfk7UHe9B{6S-aPr_Ye~T;=}(W_A(j diff --git a/1.5/Source/Comps/CompExtendedAnimator.cs b/1.5/Source/Comps/CompExtendedAnimator.cs index 9782ae9..442a0fb 100644 --- a/1.5/Source/Comps/CompExtendedAnimator.cs +++ b/1.5/Source/Comps/CompExtendedAnimator.cs @@ -217,19 +217,24 @@ namespace Rimworld_Animations { } - //do the same for all the child nodes - foreach (PawnRenderNode node in rootNode.children) + + if (rootNode?.children != null) { - if (node?.AnimationWorker is AnimationWorker_KeyframesExtended childrenAnimWorker) + foreach (PawnRenderNode node in rootNode?.children) { - SoundDef sound = childrenAnimWorker.soundAtTick(node.tree.AnimationTick); - if (sound != null) + if (node?.AnimationWorker is AnimationWorker_KeyframesExtended childrenAnimWorker) { - sound.PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); + SoundDef sound = childrenAnimWorker.soundAtTick(node.tree.AnimationTick); + if (sound != null) + { + sound.PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); + } + } - } } + //do the same for all the child nodes + } public bool AnimationMakesUseOfProp(AnimationPropDef animationProp)