From 7efb7923530b0e56e265196585d861d49c3f012d Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Wed, 5 Mar 2025 13:10:41 +0300 Subject: [PATCH 1/3] frigate cargo crate loot fix --- .../frigate/rooms/frigate_room_a.nbt | Bin 3942 -> 3916 bytes .../frigate/rooms/frigate_room_b.nbt | Bin 4409 -> 4381 bytes .../frigate/rooms/frigate_room_c.nbt | Bin 4097 -> 4071 bytes .../frigate/rooms/frigate_room_d.nbt | Bin 3388 -> 3364 bytes .../frigate/rooms/frigate_room_e.nbt | Bin 3163 -> 3132 bytes .../frigate/rooms/frigate_room_f.nbt | Bin 3855 -> 3829 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_a.nbt b/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_a.nbt index 478c171a72b4282c32fe2efa0b4d3ff4e12b39e0..cd5ad5874a32eab776aa003eb855efaa77b00f79 100644 GIT binary patch literal 3916 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 R5h1Iaa>Mgr$5JFLnn?fv literal 3942 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 diff --git a/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_b.nbt b/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_b.nbt index 98e586f0dcf923fdd5b242bb8bc9235dddfa6fd5..1715e99ba8c9c99dd8be0ba749c5009b826c479a 100644 GIT binary patch delta 3148 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 diff --git a/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_c.nbt b/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_c.nbt index a0cd64d4b366944e0d58360dafc30588d96790db..2ca375811004cb162e834087b2d4f46c5abf44d0 100644 GIT binary patch delta 2663 zcmZuw2~d;Q8Z96qh|m@ns6dKPR@r0~2xuvbl>lNvC_=ypvW6uF3=vYWlEHHAb7t=>Eext zayej@NfNYQ$I2@FLK$+Iq75mi7qsX+l%wVO_eAM(eprObqkUO3U^6+?4 zGh`cq-V14gH|PrTR4=$H=z5#wXJE1pc$9^7E9f4;<##IMf}FIKRrGP*9XvZl2L}1s zt7ke2;iM29YdVi-`FH3jxUR^!u2Aqf3a*KJ{tc=I>KSVCv(hSiQg^Eus=n0v zAB2+P|IWeue>P5E{7e47Aa|dFkR~JPBpLgDM%Mn^$ApZ0(OI+KoXx7+D`b?kl`VYC z(lg`_cvOU3kOlN{^%Yk)FsbD?@Fs$Gwp6WmP7xD!4}J`8`%K;+)#g*U82t zb!R8F*Dc=08}Zd5w@%4@0tiOVu%AID)MN992nkMAmG$oE?pp|11y=eL zdss=x6R~^DSm~XJi7O)WYVYAEJ4^?x0_*-1yQgkL-O!;qRbFUn^sU?GpLx8K3O`oYQ=ilg zewG-=V}L-PkMeno-q!j_x=qqdUS24D7-@TZ>pa#mb2@nV{$KAonEw(|?27*bLHh4u|u)ySjm?l39WM4X{|MrgD& zVo&BHd4`rMRo4s~GE&s8PNkVA{27DwgUopK#}`@duRZTY=y^X@G33Y};Qx@Fbi~EJ zz6|gG+OsS|PB9QO@G>t&wZFB#EiG1Wlzk!BPK} z*iT}NQ?d_Q>9t;}9DumXNU9ka-gQozX9t+c21!)_H)Tz}##0nBr|o9qH!DN@$uK3_ zVk>ZKw<<6r8zJQkcxsyy!g+g_X4;^Oi5q7NUoAii;}q^L7^#*p!?;RpmGTi+}p8FLH8u|9hg zY7N^4o70*=gr6X2GU=^&m60xIw1mZrD@>E4;OwFyNFzhQ?VwO}ENellYYxUt{t3A2 z!2yP+<^w%D`Hb)e6hWh&3YrJQNKq#(F-wY zYyL=J>0K1qKIOw8H185S>?~V2>t!;0h+1b)kDV5$h^Ajpx%E&e4Nb?Eueo`(9oH-* z2sFhTQ&UqtPyq;hjJ8?sw8PsT4=0M+s_AsPAoA=W8-;;m=gR6978j@N0?90ni5`ox zatul+p%XuwP&B-G7Bnq<`}>X-GlnG` zE3F!Oe)@D+WO}h)K%w#M#iX5!Y-+UvA;7cg@9Qk`I*xlbMS= zOK1+}+77sOADu)-2$rN{4VVL+@2{+P6)+i`T1P-5{QrOpTP>DjM$asX z>yte_J_aHCw<9lD{K$CEtw~Ed&mgQ)Fb{%KI|C9prs!swMw<*YP`(IQtj9G0&Qsi^ zxF|T`vQI7OD1jT>5!`w)a;*5cJ>H{_i%nBPPkKu?Kj`0xpy_!hJ$YORlI~+LI+W8G4zoNK8wJuOhWiKQ8BUV+-61r zM)dZ<8}!-|2yB}czeB+aFbS7GuFs9N&JVcddHhTQ`3Wy2Rnr!u(Nq?xtV&2?xYeuC zl1IpCpG<$KTLT~Z;Nt5?p(dy9Bite8kiaqR!E?`N){a^Pvn@CeIKA_itP>og-prd` zCAy4_l+?Xw-h1&{+QdmO40rwFp@WBw{WeIO(eJph?TOypFyBGS1AXBt=_u2*sBl!5 zOv7%yMBu`%iizel&y+0Xo*VQH7L+#6Q{PTZaAgx@y0jov$<;FazhgZ)h47i<``9-mjVtU2FQoYQf``m%RnV zrS9!^Of7s*=Vq_?j;&xuzG&?>_rRbjuXTRAsxKq4Nh^}wwem5s6}2$Y!Wdd)8wP6f zoNa2F>WJte$AXaVSRn;(wK9=a$&XuV5kq#K=O!;NE!6k0p~g1XV*+10#GNdHka;qS tXwk#EP$ai*Y56vMyzDh|H|;PV@iT_DM*XJmQR9Yk2u*RAdHsto{s2GDXW;+< delta 2649 zcmZ{k2~gA57RJjiNMmJ}RmBD?6rzD3Tfm|gDj_TavJ(&j${qu+u@Hc3kpfI^#0uF^W#4y z)=zTQ0{LGfT!MnmgS}LCU)lyaY@0Or&-1olln6S$AsqErCkxNT`nc1VFKjbE+0f(rpLQy=@DTnDYq`FQf&0C#7p9 z`48?X18L%lK$f^PPVu%5DE|>A#pf`1B%D-PTgna!0wQ{H>P;dEy$=4y0+A4tP)01i>rmAmXTXLikUTMbrVdmG(MgWpL2Y0%5bLm=gTnoXkY~TRgde;+VNy&$`zU+1Nb!9)n|$3r_u2$8^uVMBeG~ z;rgIU>-R~5`M(C^l#o_am?gh|SoHCv0ly8j-B7Ulic&wlYQFXFb&C8zXRWP{?xG)k z$b))B?f+1lKt+{@>Nz(`oLAou8NKx5!+xMd{3{&Db+1?9hyYM`y-AvxWY4(d(pU1{ ziufKL?AYfR%1$V8#|nntIdq&MtHhSfi2LrGMPU)iZp5)9RL{LpQJ-P2#QqVrdO(AJ zc0^}S1MGlnpQVpgmkT63%4^X}s)tuLhAj`6YyuS0C2sem6_IR493O@1U2If5!2n<+3)|1~BnSi(HzV)BR+Dnynw$>rvF@Xw6eK965Cg~v_ZUGod z`HDRP?nxOcjCYEJZQ`Ksc}LW>fq9-1yRPM_7g+S60VLP_`4^Rbgd7#=h2tT7LU- zJY^!iC3MqsqWJYaZ8tZ}YsWL3Er`FnD%W`T)HC6B)6G$FpbYo*y4G}iS5jiW5pnU1 zD^m!jbHd}okud>!O*>EXA-k7WMYqvl2lm+t@Y9ptf=>$Tsm23H(~w_FzZ~3VBbTQ{ zC4;NfxgMiWiN;hz!pnSXT;dbU<~|lRLLcn`&<+$>!U=iVW2JX>;Hg6H$a7Kn_8Vk@ zrk0i93jbXiu60Ih=lzb1zoQB}B?yB_VUf!!$>eF!d;%){ahG`|S+Lp2j@>+}Z?qZQ zZaJ9&7tN>d(yetdxtDDobGTqL!@y>uYLCmyMc&$)!-0B9=e%$`bEMv91+MGIcwaOig?1H;E(A{h| zwhpHt*naYv*h6e7kv>hT;}hJ|k=$xE+B!R4b9$85pI{<|H@mr8W?^RB6~XUc z;(h#KWvoZAza2YSm1DrNfTF8_ii9K}h3bUES~()k|Zwvm}hge1|TwCEC3h zO!X!4**otWSc~~ueLIIUWOAylswsZ&&aUzepgxmOMj2z^eF~2FgHE$7Z@Fvi zXjHfpez9u*<@>2`&L9~-1*@tMzf}=j=BiRmDWdKi{RoE&J%sbpfW2oP$yBi&;S;g< zg)BpoGQdPtRWdhB2-+cSz9QX(7s}LBSxi}MENo6Yen8mj2s9U6HBJ(EpWJS(tO}xj zr7-rRM2)p72{Zjya7ovA4fPh>3&k4rc}rp|;#M%~X1uHaBZvLZ*mn0} zpLC_iW#w@nZG6c}aL*?!v|J(Zy5HWvV9|@+v)L5)C>+=H;QSiCcYqU)Lg$ihdoug8 zb1a#gZ;7c)&g6I_X2@*jkYVLO$1FUa%!s}D0KP@yHg~1Vj}6|jYd4;(^V|;Q?V9I6 z16dsEnr)>=Oau4P9YoU~bKf`eMb4ODBrERc+70i=4T^1iC03yi`g%&vs9$GYn?}3D zE~)JZZr_F>$K!3X3G!9P<7qeNncrt~*HgWW%CG*C?K_Ax%wAmv4ZjR;%`<2a%)+k~ zSMG0bL$d+dkV%;Jl$S0)Kbav~8s?6L!T-^u;od+zV-bCL1?+9mmI@^Zhw z%4I3VG7wa&D=!R8k=lQjd;M5`quW7BBhJ9|iyPhh&UZO{TuwMGC`@nE-rvlaHrIL3 zTjP*yJiMp`yLs;;g~lQkSbZ28QOC7Ct!`WSG>$hd&~~#mGEL|6-PY=!W?#`SjJ;IV zUOI@pnA|VsDAvpujFR0IibT0aCXq3PTsdJE&kxnCm6Ulhx>cFruNy4V~H8kOs>S&`rmo(wn%W7763;(^GoWO(!i1WqulP=;Gffrilh` zr@?*9_PKUYTnbk$2tO>@Cm15*=$-BW_0Lg@r;QC`uzY{rU&#*;3B4bs1!tZDE4Y>2vZA9thSVEi;Bpp9n+s9n)cDPcm&5 zAH#j9ik6s6meUp93B%^Ve7KK;J=ZjvOkb`DO^muEl{$=Kkm=r?%7&9k*@5_uh70EY z?7fKByYZ&4pVm!uHVoPcoRXe3=rtga#a}h-#$%u;iGD*6gaa9d$wy~d(us5~%Boh_ zHSlwAbY5y#um*pZ%!?qVikI724iD3jZLe%4DJ{ahv~_~T~Oeph8nRNs4lM?I&F zvlyNUSp&{d%{I1YWqJB6pbl`u0(iA&f+@svpp|kb?`tMZa`ZQDHDV$A@b<-&rhPb{ zFE5ShGP^FH-fv7mm0SJ$$0jJ}mygiG6_UaO@TQDBD))lf;_^Wk)b=0*m23v-@2;YC(0~-YO?hQSXy8 z-(MqEZy4LfEbJB|!^v#<0M3+$Z&d+w?M_n%$ea`z1< zKCyX2dQl;|X(=E5^(jtC^ABLRlI9JdAmt;p9U7!0;RHy@cZY!O_!O|6*Wx@2^akvM zV)%w|S&2aK>31;s<|hpn9)~I6Hn7(v2$hKlX&fgR0Zk_j5p-D$*+_)!!3NlvfIBmI z0KOcr+zB=`VoQ<08E|2H|1j1?qdx_NO3;!FZwng3%Z{6XOav&eeu`sgZ^(Ma(d-mS zvHDDlqIhgm77%9M9VGzq7tj1V#}xo#fHFX2BmqP_NK?^a3ImiPfC6DM*>NsK0oDm1 z>vkS#A-3*7R=hhexsKk(RK(=8@4T?RkLOEVlz7CRD?wl)F%4P>!mLyDyP-`;uU%Vx z#aOqDo{Y&;My2_kfrBs&rs)Emm9#p+${CF+i(#gP8Vytd;W#LPFfu5C(%rAcx>rr$ zZJ)72P-%Pb&&A~B{@I-bueQ47iMsw!mEtmGf;OEpIYnHmIo?d1RR=>>@?JoLS~7dP z=P-yBLGJEAZt(!076rTdmxo}EiGlbWpw2;@Vd;YgZB7X+R`MmtpR~q|2CQy zc?!k^E9YpMtP%#K=%6b_Ggi-SMz>d|Eo%&VpkzC0K~^Np{Q^|MUrEXfmz55(M>q?U z56mKi{-klwN{}u@(SyWRTCd%ckd}U@Ruy!lBBI&VUPRnm|NQFjjI6{jSE}7CTtre7fX7 z4SbkOn#Rxzc%WwlM3wFUo55!$X6ygG?fZe$cVY?WK<-&;pbT8WR4tbRpIx6DNc4fw zJp48lnzOR*zW;{}EMC zrc^Co75Q^kWXkym<{~S8=r0gm9;&|VS6${8VHP=1RCzFBC7eeM zvgUc9Yln)~gx;Zb*vh%t>Yxy#!nKaGSg+E^*QybdCy$t0E7mOAre4C;)J{oR;}5y^ zSg%_b5Cc4CRBP&m)R|afPt>tx54J*S6_QuGz?pWL;nWq1D2g@CHh$WruU_?#%t;pO zzT86PcAj?GT4V(^j=|&W9kIrRRFL$HN+JhVnkIWtt;E|?O-1%3j>Gi=*JqR~S6_&C zhZ{YgT5-Bp)y(G?Y*y9wIx4r4H-cRaamt8cowxRyV7wQq)HWQKHX z+gNUX(%;%jmPTUN#um-ZHl{`+NKs2uJ$QMQoSa{#PWBZB%Zti%s?}W!hO(EJyF0o_ z!F@$FC$oBc_P9PEttEG+u6$OfEeax;Tng!@B=_}a2+KJMwV!nOVGm@jg>(4>>?L`7 zlG*t^o0<7H9aV#ad*%2qNxedCeHv1=OI|I*&SiC15#tb?ZYim<7Ru=AD45=<7B2s$-$1X$ z{-2DR_YAoGK5T}yud?o!-Wc~GJjMzS*N4$hPRA(-ok?hiYyO;~XJymZu(Cad3qxh| zfB5x_nat4i^hsg(*TIEc`^tX)JQ5#_skp}OE#k?cbsc0I=MC)qLi+xAbW~kd{JP4q zeP$zmboG(w!8bYbNx_CHas50d?_gM>(pa!ga`TA==7AYC!_0fUV{?6i4bFj?Nx5Hy z@=Lta8E{o`hri}8+@-;J4vp%`d$hX2q2;jMBS{m?HGBGHx8d0Bh+FI!Psf=@oWJtU rUCdA)QOo9qSjsss90=sq)|cZ%#q+%nupF`dvLpMH<7Opk*RKBoN&a^n literal 3388 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 diff --git a/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_e.nbt b/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_e.nbt index 516fa0596f62b19ae3f1b0c6e465cb4e37a8b106..1cf97bee8968596da639686d06801112ca5ee1c9 100644 GIT binary patch literal 3132 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 literal 3163 zcma)72~^VA8gF`)WrSsml%Vx&%t=$IMsbTyG&$`yYFY!D@Uq3q1{Vqy&l?l73^lVb zT%J>!rJ_80`P`pjK&jB;njw*j3o0fqxIpjzHOofdIgj(5%RTq|?stFR@4NT+H@?1j z-sJC7O|sOl?dV#DSUvK$GX*_f&hO{D#;&0?HUEC)AM;(86V`91m>&8NDr{eRM*Ke?Y^6C8RP@K-Zd4mK%>QKw`)kK*X+K`8%8@`#~Me{P9OT!0%NWdk7ZR?w81kjqSM14!hG8M zP51*Qrh(|&#+WHPI$Rk?jQ&wcGCJk;(_}3Fg(d&EA;|)#=PRu6@Wn^BJI^w-zj_6E zbf!HIhhJT5UW}M&zK51N1!0bUYxO19xf8dR(&gl+W45fy3J-eal&yki1fUZtT$jS* z7w1#ZQQ>=02jnLxIxbk&>k8LJ_l$Nn+*+Nz3=<$qQf?w*3ofmtC5cAjw`5~pc$Nw1 z*{u%`9Y7D8__UwU=N+5VE)|LZkS#-F-q`mwB?@oBwo7x(i9;X)2k6J4nT{tM~5qh)g7-e3*eO z+j?0DZhr@!bZw!}8PqSF0mosy0?p3hr56h4r|RW5*%9uJT;?>=J3}B0okd9t%Pdb- zlv(Q3XiQ8~p^hdYXg7q##C{NU@R*S?l0CQZI85tcCLSPR8vSSZGiTh!NK&TpO+2Pn?|Iq|qmIo69HqB>6aUttdn22& zVS7d%hKFn;7FpQ$g2|6`8%@R{CMUgZ2#{v$%7p4Jk zn=>qM3B`<2w7~WN5^!{9{S1P?2}B3B?L!s*;>4+rGxu+M0ighz00bj5KGqmhyH^;4 z=-$}o1OQi)apJ$ihSm(2Flb9hSKvz{Ca!XU)q@D@HYZr1;Q*vQ`~ep`N&=IRZsPvZ zT?a2QjUbRRo8LKRpkRUQRiJ4X;(zBQfX0GN0Hq;>a+&Qayo7-?1veqH8LHwuRK;h% zI?o4eHKefYDCtbXLlbwoFu|5`k_n}KS#mw?0-j#!T(AKLZ3T$WLx`vGfYbn~gfVgT zo3K4`m`8ygR~mdL{Mk!K0}#+x2wegjVVaQ&8WG)wZBy#gFC)lL z01A24pZRBa{snZT(`Y&9lH)Zbq$Qb7K!*nHmVlL!C}{J!w!DkjRruU=kaY04F0_6V ztkX&(khej6r>Fi5J;RUW0AH1N`^A}R^L5VX)406{n0s^qVkYtL04LY{q8Y<3Xd&Dk zI-ML3EkU(4LbaWns*QONTpoex3_mDsW)#R^4UnPOP})BSd-p*n%<@C>IDN`jKUC9f z6q9;6E3s^ly9kQTt$;H5LZ=L`gAkN1iZqY>Qz4T_Ov=eOg+LI{fq>vy*r&R54m9)| z?EZ5mwt#eMR^q&XITM5L6GZJdi8ZydV?XP4;8zbQi-yrx9w~#0$3hxhH`v#Xn@;=@ zEEzNi9WQEvH4No7HSk^z3UV#ShtIwfWGIU?!j=Gunyvf%sv{wqxhWO&;|c6 zi`1TGe15N@N|sgB`=+;%Ot0sVSY!uLg#TT2f>1B|YrsqH?vkG&j}h z{yC>p5}$W9tkE;u56R%_oGPIVxI)<;5nfvG#d$j!~EQ5w*Bv=TR zsmIZ)KVs31h|y-W+-SPnb0SU zZ3)Wv&E-VaxOtUdZX9e79h5e8RtfhQ)I2dHAC{J1FW>&&D!G}tGGw@*toY1WS8faQ z*9P2ULEhK~^+b}*koLP9TLv25{4kh&FL=atybZxoNKTrGioIE)9`OZ1YY$aY=jOj+ zpo&ICS}hy>SX6dqS0HkXwhxzb(n`_$_*{O*4tQsOj{3KV$C{5^UJMO8s@{pj>x{ldw{2^$j1=I0T#w# zYu4zkH*AS+J?x}L*BUs~HkP$euf91uVRkP%;;e&rtxLIXd+(()jU}{T_2KTi5Ea$n u-M^dE_js3XX|m+rn^N}gTbH6KGwKdwN>kw*9dL|K-_hcdj@X6FoA+P2IxZ0a diff --git a/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_f.nbt b/src/main/resources/data/overdrive_that_matters/structure/frigate/rooms/frigate_room_f.nbt index bab3d045482c8fcb616ac2b25c7106bddfd39d5a..3dd1387687bde9cf7c36aa818788bbec21e6a87a 100644 GIT binary patch literal 3829 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 literal 3855 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 From bc109e8020f95469f1b8cf9329811948fac6ef8b Mon Sep 17 00:00:00 2001 From: GearShocky Date: Wed, 5 Mar 2025 17:46:30 +0500 Subject: [PATCH 2/3] frogs --- .../render/entity/RogueAndroidRenderer.kt | 18 +++++++++- .../dbotthepony/mc/otm/entity/AndroidMelee.kt | 33 +++++++++++++------ .../dbotthepony/mc/otm/entity/BreadMonster.kt | 8 ++++- .../ru/dbotthepony/mc/otm/entity/Loader.kt | 13 +++++++- .../mc/otm/registry/game/MEntityTypes.kt | 4 +-- 5 files changed, 61 insertions(+), 15 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/entity/RogueAndroidRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/entity/RogueAndroidRenderer.kt index ad7c1a5d4..9f7340a4d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/entity/RogueAndroidRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/entity/RogueAndroidRenderer.kt @@ -1,4 +1,5 @@ package ru.dbotthepony.mc.otm.client.render.entity +import net.minecraft.client.model.HumanoidModel import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.core.ResourceLocation @@ -6,17 +7,32 @@ import net.minecraft.client.model.PlayerModel import net.minecraft.client.renderer.entity.EntityRendererProvider import net.minecraft.client.renderer.entity.HumanoidMobRenderer import net.minecraft.client.model.geom.ModelLayers +import net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer +import net.minecraft.client.renderer.entity.layers.ItemInHandLayer +import net.minecraft.client.resources.model.ModelManager import net.minecraft.resources.ResourceLocation import net.minecraft.world.entity.EntityType import net.minecraft.world.entity.Mob -class RogueAndroidRenderer(context: EntityRendererProvider.Context, private val entityType: EntityType, private val androidTexture: String) : +class RogueAndroidRenderer(context: EntityRendererProvider.Context, private val entityType: EntityType, private val androidTexture: String,private val modelManager: ModelManager) : HumanoidMobRenderer>( context, PlayerModel(context.bakeLayer(ModelLayers.PLAYER), false), 0.5f ) { + init { + addLayer(ItemInHandLayer(this, context.itemInHandRenderer)) + addLayer( + HumanoidArmorLayer( + this, + HumanoidModel(context.bakeLayer(ModelLayers.PLAYER_INNER_ARMOR)), + HumanoidModel(context.bakeLayer(ModelLayers.PLAYER_OUTER_ARMOR)), + modelManager + ) + ) + } + override fun getTextureLocation(entity: T): ResourceLocation { return ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/entity/android/$androidTexture.png") } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt index 0df65bc77..4a827f31a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt @@ -6,7 +6,7 @@ import net.minecraft.world.entity.EntityType import net.minecraft.world.entity.LivingEntity import net.minecraft.world.entity.ai.attributes.AttributeSupplier import net.minecraft.world.entity.ai.attributes.Attributes -import net.minecraft.world.entity.ai.goal.LeapAtTargetGoal +import net.minecraft.world.entity.ai.goal.AvoidEntityGoal import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal import net.minecraft.world.entity.ai.goal.MeleeAttackGoal import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal @@ -15,7 +15,9 @@ import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal import net.minecraft.world.entity.ai.navigation.GroundPathNavigation import net.minecraft.world.entity.ai.navigation.PathNavigation -import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.entity.animal.frog.Frog +import net.minecraft.world.entity.monster.* +import net.minecraft.world.entity.npc.Villager import net.minecraft.world.entity.player.Player import net.minecraft.world.item.ItemStack import net.minecraft.world.level.Level @@ -24,14 +26,19 @@ class AndroidMelee(type: EntityType, level: Level) : Monster(type, override fun registerGoals() { goalSelector.addGoal(8, RandomLookAroundGoal(this)) - goalSelector.addGoal(7, WaterAvoidingRandomStrollGoal(this, 0.8)) + goalSelector.addGoal(7, WaterAvoidingRandomStrollGoal(this, 0.6)) goalSelector.addGoal(8, LookAtPlayerGoal(this, Player::class.java, 8f)) - goalSelector.addGoal(3, NearestAttackableTargetGoal(this, LivingEntity::class.java , true, true)) - goalSelector.addGoal(3, NearestAttackableTargetGoal(this, Player::class.java , true, true)) + goalSelector.addGoal(3, NearestAttackableTargetGoal(this, LivingEntity::class.java, 10, true, true) { entity -> + entity is Player || + entity is Villager || + entity is AbstractIllager || + entity is Zombie || + entity is AbstractSkeleton + }) - goalSelector.addGoal(1, LeapAtTargetGoal(this, 0.4f)) - goalSelector.addGoal(2, MeleeAttackGoal(this, 1.3, true)) + goalSelector.addGoal(1, AvoidEntityGoal(this, Frog::class.java, 8.0F, 1.2, 1.5)) + goalSelector.addGoal(2, MeleeAttackGoal(this, 1.0, true)) targetSelector.addGoal(1, HurtByTargetGoal(this)) } @@ -40,7 +47,11 @@ class AndroidMelee(type: EntityType, level: Level) : Monster(type, } override fun getHurtSound(damageSource: net.minecraft.world.damagesource.DamageSource): SoundEvent { - return SoundEvents.IRON_GOLEM_HURT + return SoundEvents.HEAVY_CORE_BREAK + } + + override fun getDeathSound(): SoundEvent { + return SoundEvents.VAULT_BREAK } override fun createNavigation(level: Level): PathNavigation = GroundPathNavigation(this, level) @@ -48,9 +59,11 @@ class AndroidMelee(type: EntityType, level: Level) : Monster(type, companion object { fun createAttributes() : AttributeSupplier.Builder { return createMonsterAttributes() - .add(Attributes.MAX_HEALTH, 16.0) + .add(Attributes.MAX_HEALTH, 30.0) + .add(Attributes.ARMOR, 4.0) + .add(Attributes.SCALE, 1.1) .add(Attributes.MOVEMENT_SPEED, 0.3) - .add(Attributes.ATTACK_DAMAGE, 3.0) + .add(Attributes.ATTACK_DAMAGE, 4.0) } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/BreadMonster.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/BreadMonster.kt index f13fd15dc..512563d84 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/BreadMonster.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/BreadMonster.kt @@ -14,7 +14,11 @@ import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal import net.minecraft.world.entity.ai.navigation.GroundPathNavigation import net.minecraft.world.entity.ai.navigation.PathNavigation +import net.minecraft.world.entity.monster.AbstractIllager +import net.minecraft.world.entity.monster.AbstractSkeleton import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.entity.monster.Zombie +import net.minecraft.world.entity.npc.Villager import net.minecraft.world.entity.player.Player import net.minecraft.world.level.Level @@ -29,8 +33,10 @@ class BreadMonster(type: EntityType, level: Level) : Monster(type, goalSelector.addGoal(8, RandomLookAroundGoal(this)) goalSelector.addGoal(7, WaterAvoidingRandomStrollGoal(this, 0.8)) goalSelector.addGoal(8, LookAtPlayerGoal(this, Player::class.java, 8f)) - goalSelector.addGoal(3, NearestAttackableTargetGoal(this, LivingEntity::class.java , true, true)) goalSelector.addGoal(3, NearestAttackableTargetGoal(this, Player::class.java , true, true)) + goalSelector.addGoal(3, NearestAttackableTargetGoal(this, LivingEntity::class.java, 10, true, true) { entity -> + entity !is BreadMonster + }) goalSelector.addGoal(1, LeapAtTargetGoal(this, 0.4f)) goalSelector.addGoal(2, MeleeAttackGoal(this, 1.3, true)) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/Loader.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/Loader.kt index 38ecf9013..d0d3a5e50 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/Loader.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/Loader.kt @@ -12,6 +12,7 @@ import net.minecraft.sounds.SoundEvents import net.minecraft.world.entity.AnimationState import net.minecraft.world.entity.Entity import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.LivingEntity import net.minecraft.world.entity.ai.attributes.AttributeSupplier import net.minecraft.world.entity.ai.attributes.Attributes import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal @@ -22,7 +23,11 @@ import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal import net.minecraft.world.entity.ai.navigation.GroundPathNavigation import net.minecraft.world.entity.ai.navigation.PathNavigation +import net.minecraft.world.entity.monster.AbstractIllager +import net.minecraft.world.entity.monster.AbstractSkeleton import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.entity.monster.Zombie +import net.minecraft.world.entity.npc.Villager import net.minecraft.world.entity.player.Player import net.minecraft.world.level.Level import ru.dbotthepony.mc.otm.OverdriveThatMatters @@ -68,7 +73,13 @@ class Loader(type: EntityType, level: Level) : Monster(type, level) { goalSelector.addGoal(8, RandomLookAroundGoal(this)) goalSelector.addGoal(7, WaterAvoidingRandomStrollGoal(this, 0.8)) goalSelector.addGoal(8, LookAtPlayerGoal(this, Player::class.java, 8f)) - goalSelector.addGoal(3, NearestAttackableTargetGoal(this, Player::class.java , true, true)) + goalSelector.addGoal(3, NearestAttackableTargetGoal(this, LivingEntity::class.java, 10, true, true) { entity -> + entity is Player || + entity is Villager || + entity is AbstractIllager || + entity is Zombie || + entity is AbstractSkeleton + }) goalSelector.addGoal(2, MeleeAttackGoal(this, 1.0, true)) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt index af4a6b109..ebfa596c4 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt @@ -77,7 +77,7 @@ object MEntityTypes { private fun registerAttributes(event: EntityAttributeCreationEvent) { event.put(BREAD_MONSTER, BreadMonster.createAttributes().build()) event.put(LOADER, Loader.createAttributes().build()) - event.put(ANDROID_MELEE, Loader.createAttributes().build()) + event.put(ANDROID_MELEE, AndroidMelee.createAttributes().build()) } @Suppress("unchecked_cast") @@ -94,7 +94,7 @@ object MEntityTypes { EntityRenderers.register(LOADER, ::LoaderRenderer) EntityRenderers.register(ANDROID_MELEE) { context -> - RogueAndroidRenderer(context, ANDROID_MELEE, "melee") + RogueAndroidRenderer(context, ANDROID_MELEE, "melee",context.modelManager) } } } From c40f9a2c5789e0bfacfb2b51903fe906bfb1bdcd Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Thu, 6 Mar 2025 16:13:24 +0700 Subject: [PATCH 3/3] Make lootTable decoding not throw an exception when meeting unexpected data --- .../mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt index af0ef7c1c..e960ffe5c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/CargoCrateBlockEntity.kt @@ -103,7 +103,7 @@ class CargoCrateBlockEntity( super.loadAdditional(nbt, registry) if (nbt.contains(LOOT_TABLE_KEY, Tag.TAG_STRING.toInt())) { - lootTable = ResourceKey.create(Registries.LOOT_TABLE, ResourceLocation.tryParse(nbt.getString(LOOT_TABLE_KEY))) + lootTable = ResourceLocation.tryParse(nbt.getString(LOOT_TABLE_KEY))?.let { ResourceKey.create(Registries.LOOT_TABLE, it) } lootTableSeed = if (nbt.contains(LOOT_TABLE_SEED_KEY, Tag.TAG_LONG.toInt())) nbt.getLong(LOOT_TABLE_SEED_KEY) else 0L } }