From 9b881df465513b2ded5a9e19dbdd5f910ff6c6c2 Mon Sep 17 00:00:00 2001 From: epCode Date: Thu, 6 Jan 2022 21:55:01 +0000 Subject: [PATCH 01/27] Temporarily remove glitchy Elytra crash-damage If you fly in certain directions with this damage system, you will die. also if you speed up too fast. --- mods/PLAYER/mcl_playerplus/init.lua | 6 ------ 1 file changed, 6 deletions(-) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index 50fec2bd6..92af5c32f 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -173,12 +173,6 @@ minetest.register_globalstep(function(dtime) and (fly_node == "air" or fly_node == "ignore") if elytra.active then - if player_velocity.x < (player_velocity_old.x - 10) or player_velocity.x > (player_velocity_old.x + 10) and fly_node ~= "ignore" then - mcl_util.deal_damage(player, math.abs(player_velocity_old.x) * 0.2, {type = "fly_into_wall"}) - end - if player_velocity.z < (player_velocity_old.z - 10) or player_velocity.z > (player_velocity_old.z + 10) and fly_node ~= "ignore" then - mcl_util.deal_damage(player, math.abs(player_velocity_old.z) * 0.2, {type = "fly_into_wall"}) - end mcl_player.player_set_animation(player, "fly") if player_velocity.y < -1.5 then player:add_velocity({x=0, y=0.17, z=0}) From 1995055d0f2949bb766155360a76b658fd8a5ea0 Mon Sep 17 00:00:00 2001 From: Guy Liner Date: Sun, 16 Jan 2022 14:45:20 -0500 Subject: [PATCH 02/27] Removed lines about looking at Minecraft source code --- CONTRIBUTING.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a7383df79..612d8dc96 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -245,11 +245,6 @@ need to state their sources. These PRs also need Fleckenstein's approval before they are merged. You can use these sources: -* Minecraft code (Name the source file and line, however DONT post any -proprietary code). You can use -[MCP](https://minecraft.fandom.com/wiki/Programs_and_editors/Mod_Coder_Pack) -to decompile Minecraft or look at -[Minestorm](https://github.com/Minestom/Minestom) code. * Testing things inside of Minecraft (Attach screenshots / video footage of the results) * [Official Minecraft Wiki](https://minecraft.fandom.com/wiki/Minecraft_Wiki) From 4ae323f8f8e475780f845a2789ca30c01a186e72 Mon Sep 17 00:00:00 2001 From: Guy Liner Date: Sun, 16 Jan 2022 21:19:03 -0500 Subject: [PATCH 03/27] Added back line about Minestorm --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 612d8dc96..c2319ce5b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -247,6 +247,7 @@ You can use these sources: * Testing things inside of Minecraft (Attach screenshots / video footage of the results) +* Looking at [Minestorm](https://github.com/Minestom/Minestom) code. An open source Minecraft Server implementation * [Official Minecraft Wiki](https://minecraft.fandom.com/wiki/Minecraft_Wiki) (Include a link to the specific page you used) From 9792cb5391772bb7711b6380130f3b6740d4a3d1 Mon Sep 17 00:00:00 2001 From: Guy Liner Date: Tue, 18 Jan 2022 23:33:27 -0500 Subject: [PATCH 04/27] The project's name is Minestom, not Minestorm --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c2319ce5b..5cbd6bcfc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -247,7 +247,7 @@ You can use these sources: * Testing things inside of Minecraft (Attach screenshots / video footage of the results) -* Looking at [Minestorm](https://github.com/Minestom/Minestom) code. An open source Minecraft Server implementation +* Looking at [Minestom](https://github.com/Minestom/Minestom) code. An open source Minecraft Server implementation * [Official Minecraft Wiki](https://minecraft.fandom.com/wiki/Minecraft_Wiki) (Include a link to the specific page you used) From d2fa69d4ed0f613319c096aac042de6666e545d6 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Thu, 20 Jan 2022 10:01:59 +0100 Subject: [PATCH 05/27] obtimize glass detail images --- .../mcl_core/textures/default_glass_detail.png | Bin 4942 -> 120 bytes .../textures/mcl_core_glass_black_detail.png | Bin 4706 -> 113 bytes .../textures/mcl_core_glass_blue_detail.png | Bin 4710 -> 113 bytes .../textures/mcl_core_glass_brown_detail.png | Bin 4709 -> 113 bytes .../textures/mcl_core_glass_cyan_detail.png | Bin 4710 -> 113 bytes .../textures/mcl_core_glass_gray_detail.png | Bin 4703 -> 113 bytes .../textures/mcl_core_glass_green_detail.png | Bin 4708 -> 113 bytes .../mcl_core_glass_light_blue_detail.png | Bin 4708 -> 113 bytes .../textures/mcl_core_glass_lime_detail.png | Bin 4712 -> 113 bytes .../textures/mcl_core_glass_magenta_detail.png | Bin 4707 -> 113 bytes .../textures/mcl_core_glass_orange_detail.png | Bin 4712 -> 113 bytes .../textures/mcl_core_glass_pink_detail.png | Bin 4708 -> 113 bytes .../textures/mcl_core_glass_purple_detail.png | Bin 4710 -> 113 bytes .../textures/mcl_core_glass_red_detail.png | Bin 4706 -> 113 bytes .../textures/mcl_core_glass_silver_detail.png | Bin 4705 -> 113 bytes .../textures/mcl_core_glass_white_detail.png | Bin 4706 -> 113 bytes .../textures/mcl_core_glass_yellow_detail.png | Bin 4710 -> 113 bytes 17 files changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/ITEMS/mcl_core/textures/default_glass_detail.png b/mods/ITEMS/mcl_core/textures/default_glass_detail.png index 791309817e12424da6c346ac9e68cf0abb1ca2ba..6205f84a588ec196f612f886fef310a1baffb8a6 100644 GIT binary patch delta 102 zcmV-s0Ga>JCU}q-U;+aG003g07xDlA01Qw}R7C&)0N>y600030|Nlj*!36*S00DGT zPE!Ct=GbNc000_EL_t&t*JEHnfCCH$49p;kg@KWQ5Wt}r0FeR%aXZRPWB>pF07*qo IM6N<$f<>Gka{vGU literal 4942 zcmeHLYfuwc8$MhVxu{ew3Q`FxwphrOBqWh=4L3Cy5ewp_Y&M&)CCP?lfdGP_#bUK0 zf{J+gK2ebm6-A^{yijYQQY(tmqJW?%QZJ~q_`z3-bT%NxnQuDdkN)$W*_rG)@AI7Z zdCq&z%x04$JY=ecqXht9YFMZ!0svr5KBguBfZjV@5dfI9rbb2+5pXg^qs8Tz5~UC+ z8kB9I-Y%0KYm z&f0yiE~2}sd}q!fYb)BWRi_+mI8SycuGL@7NMj5=a6N)t3~-%=rZ=DL?d(>D7x9pX zxGi?ue&=ri+C3TPm&scEH-;c!%7mjPEcFKsg{J);=CebtboCWXYALbGTy;;TK3AOf@m2@lyv{rb z-eF^^U|eFZ`QdhFgI6}&De&jz&CJ30Ef>ZQIx@8Cv?#YW7S& z+HX~v_6cb}-dCE7&6`&GrEuyz;<9a4UcYfWq5H>uZBCXmtA9~ezIU){l4$Dgg{K?r znWh=-aqX%C*X6b{`|Ix8S})DqpLCNQ6%ALjlAtRVPh%?BHTdZxU!*#_TvPUcW07$? z&sKvlyi%VUyR;ARezm!K{>~>GqKr0Ve0z)+%e_)2?K@Xze>HZF$da47CB8i2*dAj) z)3!N{Co_#~qP@+yO|6%$ob3LPxkb2sx!TVt4R=3xI@~qWsp=B9W0Utl3?9Y&)IR4$ z=&>oEZkK7gCAX}7o90X1()t?HoY(e0&cEir-qPnY>q~AK{Dnl*_tr>rq4eXWN7ifz zUVh^c|F)~!R-bI!{E`Cg#wM$)4!A;jIi+H=hq`Z3bXW1B7_I-HZPZ%xdG?35FD(CR zVbH$P1NCK`pW3Tk3X0+{WZUogs#zOSn)s-EXinEY*#SOxQ+zMNFCproq$>#MmZI)_7BEGzErMI5bX-SjPZ=p2$-b?>Fy z@jeM*eE(PFy2e{=KFf7y77nc6b-$`6+$;2z>6X(SxsQID|0s~RzwF?A_mnU9Dr*WH zdjh*!)#$$lqZO++j_3)#Z7VzoP$Dg-eh;T6z^dDHT#L|5D#wN4G{;-;n z$kXeV=ax4&o&C?q537HV$olS+oOrJ9)|Ys9>xSZHQjvzDw zIz2f#nU?HH!?g-Jlh5bV87w-BMb*mWR9%Xifb~?hZZ1hN${|8^h!)cj7_O#}oUjy6 zB!m!TL7`Ay*Qe5m#pCp9-IxmquA=K<4V_72&{Zn>M1+nAN+SLqp^Hq>p!5h-hbL+g zG$;vG6LTk0$dGZoCQ++2$dMs*REerkHKC(3Y0Nj43<(oU#u20i3QVOjp!6!u8<_+q z|I4g5)Q~dk(dfyM!=+-OfHMf;BdKo4u`?zawniaMzuN&SCgDf293owz{zbP z#h_{eCi_$fF%9E-l|~S#MPUNhM&h_q2$2O)NTi{?Dc+--5{l^vT$@66{8-Niz>3kg z(IcS53{w<}p=|{)GP;NkPC`fR9G^nsV6_6338AqLc@4q-&t@S^4v)p=a;O{@(~HVR z*-R>r56h@*7Q$h3cuWLAMrDk%=x{la3~Nz;1*#^5Pza{d7}QYQ3|7uJh#t>QjzdYG z7%V20!KE_!kqm}_!xVUO+!-tZg8|XU1k=e={aUd%c^bsxiJpumOt=Qf+rUDN@>cQAuD6PJcD+@+v+J$mon3Dg@9cW3_&d8S{`%lS)iNQJ z4Eg$qp7eeOfKfIU7$^w~41E1x2mo$*>3PD?OMXsupRBBc?EE+9@MNX?JVNafnm@8V z5Kw9tlgRkGKQQjbwnNoCi}FckzV=6_(Hd(6)fVgTn&s@-lV7~KV6gVkb*O&B{fu*G z2ddM|2A`lMMepCwEL#yQ*lm64Yde?0FKGRUb%JP~{BdP*;rgDzn$L4jBs2GSr$4*a zbo7CE@}Oy#L&p%pT4*evuK} zSzt0*owa}YnKKW4!ksg%5_i-XO`Db#mv^egyW`HCj<#Aw(eN-htJHq?2Oe7w0GKXW z92o=v=r^XaF;Z;~I#VL{=d@_^X&e*#uaUVH!m diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_black_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_black_detail.png index 48bcb54c4887c96985dc6dec6ac85ca5c32d7e6d..9dac71149d27312b7d3f18f8cba1eae27bf26b3d 100644 GIT binary patch delta 95 zcmaE)QaC{(l98E#fkD+aSBZgvfi1u%#8naubPvyqWnf@nDhcunPMfgRdJ>2y;pyTS t!V#UEz`)EW#>U9U#>&X%)1bx5z;D8^@>k(QUIqpR22WQ%mvv4FO#s*a6-WR8 literal 4706 zcmeHLX;2f{7H(yI2r7(#f=Xym9I=z`PC^z*5C}`eAO=JfP&%DXXdsJ81A$RNL{L!? z6%_|(pnRw!qPWge+{ImM)B&B5MI1N8T^V=BR~-Fkhyg(VXW21vlpM=s=nXm*nMN?EEIq*> zOr#0`OxGW+owBQGtbM_a=^<-#z4Pl0@Vc_c73ZI@nxvBrR|=coHI%IzT6;7g$YX`~ zqa*XScUrh|cl@*^OS4y%P*r+rg!3==8jH&fg69uBZ;T!ElF}uuv#csFp1I>M-uOE< zqdK7+?hd-oSek&?N06Y_82tUS(|GgsRcUrvlo#i z&NRaL6rPDj* zjvd*u4!_ck1@qhs7FCJ@cc@O(tf=+kdY|4pGR}@&e9+S&rT*yNEtmcqS@d$_a88@z zrf6s7asLVMQs${;g_cL07Q1}UDQi1}<|ZcHsbf+0P0zzmCoeDYsr3D(ULiQR;YuBA zn{)j9G4DjNPm2V34!pdC+wIoip6wMKj&1SThx4j)D?(S}MI6hF@uU2z0(|BVudo{7 zd}qJS*}J212V=<#+1?Bw#d~7uF2voj|9zn0rZD2BgJpQBPx)<7e(aQ>;FND@*tFOJ z!Lj8h?7d^gzARf1WwT8_E(G_r1BgPh2}EbeOQC_U6WA z;;eJ^Z;%Ij?(e>M_}ArCd)6ktI?(j^yQX)?=H-&w;;8ftl=7o+8<9?f4bkI2GY2u%UCgr4> zetvH|H(wm&QCWN`tlg{giS60r#f7h3U%PuEo7s4^y$k>x+{l@i0d>=OsP{4 zOp`_r(C`m1=`lQ&pco25O=?Bple!}ygH(#ZXCXHT0P#D9cNz)pICJ|`n6>5z_dYA<=%qCQ-2#k|OF@kjlg27>Om@pJ#A~R4> zY{&37C{;qaB($5tpj3&#WQx)YS**;=OlBsVsWYfqh(I7!H^gyH&t-8kPyuvk)fC(r8${ zJ&aUH2KCP##+WQU!IBe3UAh4$LNW*~<<*-)iTC*H(+z3na+ElWNFy|amNK#sCh|qd zFsUr6$AgwYO=|RJFOx?9g(XF*K8y85HS~_suzK&nYCmexBfno3D3 zg&Y-^2Xokd5TA!35Qp%CA-;l(Kq$-?pd20>^;30GDRE(_&Y;045lCt6T^ogs_v`0kz$!qi<~U0WcHG*2-Y=C&1Lcvlc3mO*rB&@+W6V_G$#6oK6x^2vq# zo5d0c_%O^>q7cC*P>6$|Fr;8}*boLI9D#t(<+GJMa~VA>MxBbv#0*5Bn$S`rFpSjb z&DAi*n5F#oOY6*Jg4PK}5ePvclpTZcgdDz*4g11~5Qafkcfl-rSAVM5pWY2JS#M3c z40;^{^yy-Dl1oCxcK)oM8@!7A{nMg7H#(#s(e z-_MdKJKj1rJD|1YyXHd{`7;*(q-q*kk+P;_QOL=d?5Xw#!A0WEBwIGh{!<`ba>6*L z<;3Z0b+*4e7r(mKeoiT~el7W9`X+amXV%XeHdPs0eFpB#EB6%pjO4cG)fXpBOPF`7 zJTtDX%+srEozFnWqBkzFGuAoVmzq}c%cpS9xyqSpzHWAGg!9$^`Q%`5bC)1;&U*?`4QSni_ z*5UV(_nd_Z15E)NbrUTP{XF5``lfi?WAmU1D-SHW0oW8C4gX=+HBoEJ z02l5V&Ib&?S^@xowIU)+0&oFOz=lV1KL7ymAAR_ABLEEehJN}1>&u4%0ANE&Wg#|q z>|F=LBkSz#VgUdcFO>ww@XzC`SFfIgR{$^)Wm`L}A|zi7C0HjTFr45O^n#may<*$2 omfTbc|ASj%|Je<>m-8hk05r<&FT(|E5c+m34T+R&4@%1WKZ@Jo`~Uy| diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_blue_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_blue_detail.png index 0d026ce7cc6208391d81cd3d574311d62af03973..13d0e83b2fb803a0e5724c4cc2ea7cd7fbb8ffc4 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_brown_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_brown_detail.png index e012b08f2d12c72f373911780a55e53486ddf7fe..d342045b1495a655e868dbc68223d5926f9737cd 100644 GIT binary patch delta 95 zcmaE=QaC{(l98E#fkD+aSBZgvfi1u%#5K*wIL*g+wO}F>0|Nt7NswP~+JvpvlVTYd z7$iJh978ywlM@)2`NY^5`Pf()*?bzbSQ+?D7*_r&e8|hdz`)??>gTe~DWM4f`otBp literal 4709 zcmeHLdr%YS7GFyRL>|%>Q50EMxmdY*>?Q${OL!(gsNoS%5V5e?-Gr5F5|RZ1R}m2v zWJIxw%B6@RqD3ses+Lmlg5K6g)hiX10wVQs+wlo1;_J=^M4ah#hClkBXJ%)1zjMy- zobx;9`)0l^jEV@gvvIKj0KiTbCQ$$YFo}7rEdc;<>wAp?zz6-=vGKG5%>?xZor=^D zAf2TrK*B_-0KjzZZfW4gU+36LpO!0&b7$wbrg66x91nDBYSPryAfDboHtk{hJBv$m93Q2nYtFmYB@VuVTGj47(T8ulx3OpT99qdv~O8Q_!<=iXDnc}a!yisWVU()6y)?7+S!tBT1*Gyb>r9NahCmdK0OtZ}>D zf63wU+Nyv}FN>XCD2tO@)`8CMt5;apdG5*naG)e9M(;GKt-vt7WOcK)rge9Jw;Z%e zIT0XTRuOnGYXT_Qn$TlA!8+HaP*JTp8RN4^;>hJC0`^I*(tTTkfOk~Y zd9tWB&O1}rHO>1(_1-$K)UJfzU5y!YGM9G3l~31sUp>8>to;}D{gFBc&GzWk#Ujl> zN>yY9lD7P;h#J%!x_=n+yi2q<-uvcx*OTw-e=glMzjXh%nrBODyW80Nx*s|0xhP%d zpnxxEm(-VuXV2OHv7HJywRcj%BCvV&t>n@#!+SvIvxb&+9;fw+l~;FxmU)E7WvN3( zVdT!hdtV=O_l*2yAo9oRfTzKR?&FPBUcKs+>8(G-ObI-fcj>6}lj0^Z)?0pV;A+Ef z{YwTe4bJL!9JF4R?-%5@WBrBK;VC`cYf5u0SiUvu7Oq@77Xa*B$k=!~UOrER=_ode z>y!lBMCk!WeEm&&6iX#&P)Vpstr)uB&;)@bE{5U+a;{t-Or(%u*#;seJ0cd#PQ`>c zvvH?NxO@5SKE+2u{8i!fHbQH&g>Nzl*%b_UF zXb&ST&7l9>!x)>TCpZeis7p6sgfxTD(z8ZG;Mj=2KHZ=(mxE&*LPJo5mNs%=HvCS= zP?$w`9Fj4WluaGdd9yr60k4$NEj}W@9r)B8d)5XVQ~N z#1Io-gzGR87nxr%B^SnUm5Sv>pa_ePpa{zc=MgN7fHBw$M{rE38U-cO8fjFE5e$@x z(z8ht7x7?~&G*&7>aUL$WXIJP>ebiorxNVKsBMI#ZV|o>CM%E zbIeqJ`fe_nDFnk47lBzY!a{hlu(wFS74Z>IE-d15AZP`0+kxU{q7 zKkW_H=O6h!y?y62F1H+z+*r7K+T@3p58HNE8@oL059F24^z)b@xRckqJ~1var?)&a z{`$6=v$k#Zuy-taHhDq9Rwvudrj0)3(Sp;?3bxuum$u+Dr_0AYmZRL-y1yI0yag)b zTR)mz5ET{Z=pJ8i;j0oQ6!<*a;dO5BmLIA&)LMrWkKeQ-DC5QTP zvAbIGg1;)!-sE4U3%6)I8gRR;V-e<7;}Ed%+qK<*)tct8ii7RquFi|sI-1ljFJA&@ zZyV0|PrqCO0Dz_Pvrq{j0A>PK-lX6q000y8VGE4_F!5vN83&Y=PXPeHik8WxRyS>( zCn0n96qlm_0Q^HH35@kQgU#!MBd|(<3rAVkPpy>Z`>_%&Q(!JPaaK^DKx4UK-_*|B nREf_^m&G5XwdG#SmmmNTGQ%#lMy&XpxgE=-5t98u$$9?=q*(1} diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan_detail.png index 92dedaa84466fe4034c8fc258e81a96d84d4aae4..6b907f54d3d2bc0d316f964edfb1f4ea85884bd6 100644 GIT binary patch delta 95 zcmaE+QaC{(l98E#fkD+aSBZgvfi1u%#MP&MrceD$yTcQvGB7YOl?3?(r%l*uJt>xf zfkDF4#W92HrR-B7)M>-7_@I#!SPEP=NB;R$-Ky?B=Y02^ z@1A?BZZD6Gj&ySw=>hVx6J;sqrd1|QIiYb%8emJDRde=!=kR^DZ#r&#PEK3dnRIlo?+@$T4|KHc;CmlU=+^ExO)c*pZnHLTJW?dU zy$&mL>*f_^O}>+YUC*1SN{u;RedUqg`2U`CyRxg=Y2S&aafXvQBe_O+5>j>XYg?t0 zTW!2GMw`O%@N_LJOm821e21i>ae}-eu+}}NQyO&UT*TkTnJ7yWk~<>c2I<+;#hMc#^bm+bltb?rQZV#op#r0jp83^4X9e;O|%8 zXe_LrEwmU~KN21gleCr zl*N?r(ibUYHv^<(2=~`kTwvE^?gwR7zcCO^5>kw~>@Go{pDKM{$FW zg%Ji7$+GH<0E3_qs}aM~NE%d;8cHvQ9v(ajffONzW((vTxiOqfp`x-(WL#FX63=I-}tvaKQq%qK{)9THrRSemAQN0;uKC>av?n0-Dp?G;L7;Z3;Ai_de99U|l zGI>z23m9Y~)Tlxd(Mw?>)M6-wrj00@ZLwHb7Cy^h(y+NAk%-OVv3We$M5tl&0zHjc zVZC`AL(#(_AFvX%8)^eA;<*;!PoiejB9m~c{>N$Tlw{V52%FW#78(%Q=*a5kwWb)=p)v$-tp zTT@2L zLuJ(&SrkQ}JdOathyVmu;UYeasCWUeh){`OwMs+^g(?n#sJQ(oVoa2V(qr2GSus=u zMW6^53q(X*1Xc@02#knC2rLpITsVLepu&YD&I!N+?NkJgMi@*wj21(b4%3iqqh4b- zFoL6Du`)5lV{zVmiPd7X+F;U&q3M)9!}`Xcq;zB)jWKF+0}u{RC=B56kwB3E=@&hV zG?^)bp5f$jSiGJTm}Oy#A@wxI^r;x?s}c=2kr-_-DGdg#7-CWanMiwkgF!uu5=EJ5 zgJ}WN@x47i1=IAr^=ttxWjBGKy=_qp@0rAmWs-zF|2`9*g6TCRA%=Q80%F3NFst=g4lh>Rj+1$F?!eHuf_XG-U;vJdMCV>>z(jku6M$Fx!wuy<$5RlnOrV! zEdNR5 z66rwi?Nf$L%1!ucrqdUlz6ceiNE|h&B|B$K;Y=rQP15MZL1B*^8_u4UU64-gp07w5 z)_y!ar1i$9*AF}9CM>T~U;D5$b!~CJv{9Kg)AbOPAKaDf%;)ic6Uhqd&HuPj|9#6r z=X1XV|K4%$G$9}SRC0Sx#YZC^4}N^9qTJl->%J>{)7W6&j|KO#8$M5*ow%rdlO_Jv zhOy%|toL;vR`_hhtc3Mmu4}BT0yoVNoc30*G=YZnS<}3lYke1Eoa*h9&0pRHRq+kO z$LGh!h7I$H&p*GdSOtZ>nBnniN&C8!yC{%T5Q_pQZ`4$kEZxeq1`Dhqv4 zs9Wsn_*qivyuJ4y;@4_611~kVrlvhVBS?P!MOSLv&@m1-t{rR4h>Lr&{wLE?iO+DjSE+=9o3Aq*?^`F z)0vP_&BXu!3|38xlmG%?EZ`)h1U3Kwh8Uyfm;qqu2h4B)Hg5V5001XiCYL(harO4} zb4(cavKat?Ph^rXW#AdSt7`Lx??N4tRi&QE{Ln(@g$cE;=T*tcwGp{@(=NM$bNF=* nE&0ahg1UjXD;>&)EGGaUs>bbS?@{YtGPh%yG+I(KB{};KgAnog diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_gray_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_gray_detail.png index f7daeba1984614baa75a8e35ad9b4145351a8140..4dbc15680bbc0e19b57fdf1e740163d0990cf3bd 100644 GIT binary patch delta 95 zcmcbwQaC{(l98E#fkD+aSBZgvfi1u%#MK83PD@3AB$!Hq{DRXaY_*;g%fP@O;pyTS t!V#UEz`)EW#>U9U#>&X%)1bx5z;D8^@>k(QUIqpR22WQ%mvv4FO#lEe70dtt literal 4703 zcmeHLdsGu=79RwGqNt$ALxpiz#n&V=d5~lvJQE}$G(tp#P?=07VSr@f%m4x3s4eQQ z3MwMPinfZ@#dhh@)uOd7DqXSlS>1xDtM$E#tcuo0?U{gx=j`b@{?Y&Voipbo-@W&D z@BMxE`_7qJp-r0V=@H-o0Dz|^UX=_0z%c%CcLe|-=+SE&00ulL)}?XDcp+$GXcLu3 zf?Sb}1W7w(0swpK{ff+nHgNFrE3?%bvo!82Ze$_i_UMgQg4^cO3m?R`*8SjeeDS~t z_XSbq`{qQNpD$7U$ezggC}-lJM!o!DNDV{mWI0=&_79-2Q9e0HaGBBjP3gB*wcdRv6JATXV#d1_zycr zoO*_d-q~_sXIpaD$m8{u(2g#bLk)g`%a`3h0EHFgH>dg~%t`$@X@lSX@npdH?6dnW z)?oUR2giL(pS%=}{8?~(L!-;#(VNC^*7;w%+PWk&>qd)jYh8W9hcEJ0Z*s#Y3_ofJ zJ6LnBG3ccK)Fs)SlT#nAQj~bgO7!dfTp`J++Pi^QGZs!iGBZjWd}6L@(tyT5@7-s& zY>p~8U9x25bNN!^^$}5}$libYdk+Jo-rHmTJuFY<{+Y9O>AfkNW(@;p2HMKMigy}y zt1@7V-~HIx{x@C11md;YiE{Ih7|$=6)c*#xtX7`aNp|PVNV)iVef+=F2@_MVCFhN= zShveZ%5T|Vz-*UHw?EnB}C9+rf=|xZ4T3Gvleg zt^>PV9~l$0bsnk7v{5^b?$HWgpYkSWDUI-)q2P#B@e z2#;_(X1CZZB!`1`OP-a*>`KVNi&H2Rk(I;ku$2ww zDY`jSBug-qjiYEQ$aCTbI-gTQkOv5YZ|bwy5)*srt!$491Z@%8ahnhoAVP~p*f)aZ z)CJt{N3gmg8!1dCSvsE~NOb{e<%0WC7>V9^TRxNLXvath$vo0RS~*sT3ea~_PSqr8 zdn0%W%#_9Eh_YL3?|5>Q>8)7rbi-R5?es0gZn5?9zT^F-cZah>BTPjT`FwdAl@j9f zV@8^wjF{u6ffUI_q(}mXqA~+4k&pQzmayUPyN(gnV+buRMmLYMDW^^>2r-b;DKt9qj-e7q5ro>Y$M>9qI z#P`g63~uiJ*L?)?D2E9I9b=2(M0XMvFCdMMM7<^=8@HNCqY~&m9p3z-GCDuQcirg zmcne3*9j4!Fe-vYVjU{OBq%0UOh!-)K_FpI!$SU4zv(!fKMjeAeKqNJ=yMJ5w~Hev zSrr%I5iab#u6i{4gVD1We=PcwychcAdN1_L^%Gt~*L$H~uJ^+4$>s6(g@?2n zl~5rR8PPV4_67i_bbX#{XL_)qif~Sh6%|)l4^EbLJTR!03n0N5B7Gb4ESw<(%Yfuj@zV zMqX~8cj=Jxvh)?ZOl^L(ITdB4>SMa%nS&2Pr4f&_+{GgC6NP4F6Fa}Xsrh1~`>Fp$ zJiT@MgfY?end;i?9iv8ex^|x5v7NmfGUV?i)ng+<0;RW0j;_(q(l5MTU6^)t)7aom zl_5jCR{b(EHNDbj@CJLiyn2T8gm1FIET`wDCiq;~AF>EXcGpi~Yi@#uw4>gCD%EPE zy~d@Lp8mYd07bu;G4%D~>l?q@zIL~J-0Ferx5gB_yt?RNV}@9UJ{Ujn)2J7#EQ;8*k2X}Ql^q*>3`Jr7cGw*7>J@PE7Sj?r z`a&510Ir6FsVYDUj0N0el=Kw<03X=mXR`n>XgL2k0aew0006jgnnbnRjlsUdCWb8f zU~(J)0AU(cv`*eaJnrn&5VZh;YTdu|uT?LLfc37~D1zvNV;)KKT-W~1zkPA8O8zP! ibHLp5i_a`mi2xwF-7}|X$YGd&JJzU^RC{8wN`3?WI@vM+ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_green_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_green_detail.png index fb54f942be2872a83811ec6a18cde6045b39d3f6..03b9943f12313f565f67774b41398285e5d969ce 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_lime_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_lime_detail.png index 963933572563e7d08979c1c002c688f0b4aee0d9..8b80407d3ca5e6bb271cdb10912dd6e693ded83a 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange_detail.png index 4894833f1f20d23b89b273b462e9bee265ccf99f..930992769a3f188200b55cba43384d33fa10397c 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_purple_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_purple_detail.png index a3128409438a9e82d6367e4d6e9f84fcd2736d7e..a5685731ffb409efe57b7b2e749d766fefadadf6 100644 GIT binary patch delta 95 zcmaE+QaC{(l98E#fkD+aSBZgvfi1u%#I@djQ@#DBm#h^z3=9lRB|(0{X%n_uPl{z= zV36>1aSY*zPEKH8<`ZLMIslAktzT%{oJv`Kkwl*2ifaA%B^dsq*pCRc4nON_c(JV@z5dm3_(N1?u>LK?(EWl zF_#Yi*w>wMFfGS?>d=AKl7`*6vuA9X<+iu}W_F%IRMS4y*KKa^lSy%u-7?YAiY3oI zdh_??n+p#vOo0#Jg@-Wp2!)9FW;A!u6#E#o=Kt_vbiRrMe!P#WVeQ zzTsK&^>N$FWu0$t%qTwJI6l?RP|<#}H}eJIr=8W)VCXthUEf=DD6)omEn8juq&N9)kku|;hEnWdH4#_lIJ z3Dxt!nl%^g*RX<5+z-mh8hgVp{g!j2WLVFouhY|5k4I5P)}@ z&GnoRKGQ1Qw#fNP&RW2nJ8gc=g+!_Cx5L9Ww$EHIa0KV?)#qh}SWkG2Y?-@x>vu;t zKTTf~s{#wcmtS#D7sqWs(B!+oeWm$G{Je(4MaL8?x5pg56;piSV3XqLl!zm$)>}u* zP0L^Yr}b&w$_HPTaZ4Ihb&C=zDpeZ|7aJ#zTXEO4tvGRa>FL|8i<-O7zWRb_GgofN z=664wKJN9!qc@7``ENsKm0n+xe5YMo-l^#vwMZk6A)Xwr{pNUSx1!^GH{7?@ZSl=F zp!2wnq76&_v2jFo(t&dhXNAtgmX8|Ibk+Ux4-wPdAFhkmmUT(L2wjH!ZG4sAiT_re zZac^5l5;QhI-kTJWlrduerkN%nvkcnPNv*c^*C(#x+&G((;Thues!Y0WnpK|m1|Ym zErp@SC#J=urTYYU6l7lwZu5NM)SYJcuk#*`UHk6oDxaC3?ou&$05IB(jEth96kmxk zorZzpIwip{Y4iYX-o7S1iX{*fs3g>+RswaFpMgLUmp}`73Phm~B;v`C6$T<=MQ9|p zA^{WOkgt!uw@GZ$=rsg|f+kI()+jbfAPcToYZTMVObE1uPze$!N)ZMI>I?+PWpEh? zEHjbGY{>BUTDN=gbNg~QMp)J&F0Bw`|LCYuc#a20G! z)l#Sl)*3x&h<*$yVZ;oio+5Qxkj6xnx+F>hLG~aBzN=58S11PIwZ;JzFr9{JLiJ1* z17T`3%%K@ZN|sFhafUH6RZlR(38OB_fDy7}LQ8oLg}|}Fe0`E3(Lx8um_#C>A+(f{ z$zrfR*fLnI2pi0xB~X(Zy(P<}(SHz0k*fD%eZYqHSm+Eb#H7&=;(ieQj=Lq;qLEmt z!;SE5KT#2jEhKOu%tZtun2Tdv7*%pvFs9_HP`&_Rqau6=lw511 zP%TE#P$rF@L6W$bgLC*QM1a8@HVc8dm_P&z1#A&46!C-{6ysq+9ySDGu7OmOS~PKJ zRWuY%;$k7H#JM5?AIA8E5awbWB`o9$F_?{V_&X>oy|Wo*SL*1w4nO(yy~GU&qMQLUQ5CD6cx zyh|bfPqTP@j86~*3S*dv4|7#QAuK`!e3-8ip%~65P!6}B_#lc=r=n6&1L3bGw3Gx2 zCN+8s8*rLM%IOx;gV8DR1g#UoX2C2r%;rS01Y#an%;n5LSYiZ$m;;2F^r?Qw*qc5L z3dK-O`U8es1N7};NeY(+`Ph3i2d}FE&HiK?=*6FFpEmg@`y|&#*(bR^%09{UQT9o$ zkFrm4eU$x?T=wr@cnB>nfl?q}pHuBCrviZ0dNMFDOdc5c?lS=ZOv_!JD+#IebFW?+ zaS(F09<|9r2RQvDJ*Hs3&9-(gE*TOY>u%k+?rV>%`8KZV#S>$#{eK-^ zRaYm!CY#-}G(6tv!MWwWEq7M_yJC2HOy+m0=Fj&p`zAL-Rvo!wzQa#YhR=&QTMnD^ zQY7D0XjeP7P9G9&1b|WF=*J4!z2|cP z0Bk6^LT2;G!PSvJqx=#18~}h>a;bl$uogRd@^1bGKdU(9e#bbDUzY9am@K@bK0sgL*LCiJ>nO$RiRxb4gjh8(XU)va<%l^v0N4^Jr)qR?spU@{B!^S diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_red_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_red_detail.png index db44333b236b889c978025fa5d52a1a98badb03d..587fbdbdd49fd444ee8e07ff6edb75ec25de881b 100644 GIT binary patch delta 95 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 p=}@=I)DciQ=l*+7 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_silver_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_silver_detail.png index 8ff77440aa60fc1195c826381b8b67223208fe09..49d444b80fd94a61e405bf962e61cc29b540cc3b 100644 GIT binary patch delta 95 zcmaE;QaC{(l98E#fkD+aSBZgvfi1u%#C0YZL>%fl&cMLHR1)MDoHk*r^`uw^1_lXF w7sn8e=;Q%1x@=#a*K)lIj5wt6rswANl83)z!;6=ey^8 z_uN}`dxat@!qMKt9smGGS)?=?003v^vaL zzdQf9QaTdq0&jNQi!YxHmUq4ZPehD8zxmSrZHm&+nh4vn!O!9^M%Q%Qb-CD4^$H)m zD1dUkRNngLxi&X3u6|7YhE6T6QcRvOxJX4Xx=$ZhU}AG4$4?9J%b z>X#iAzJ77}S6j|c+*#k|oH5k!!<_@qrJd(SHwC;-yM0fcU*2(QdF-6TO+n?{Ln}XT zh!1bD-pFp-^zpPybKMUp^F;f7+t-|YINm4q*X(=EjgE6Sax}9GJgvEU$Jz_uo~zL8 z_T(R2mod%Zw{<^cUqcVM+X_lvKdwiceJb;pEU-$?Uc*UBDfcffetyY|XR1+*%Wdd* zxG<`G5qv7ZUYeh@Cnu?%*R012H;nxv+wLn~)gjv#1xe>``mw5bwNG+~3_kp^OZB<( z4Z-PWaAv5R*GeJCzZrGvu57c7k(c($g@qv z59D56z89$i&V=UQ@tBiel(4TzNhanso-iQ$ zl`1XPc=G#dH-TyR?qj15qWr1xX6c1I(Zr&OKkaf?+^wzNkWW}CE$a@M?n@vNWeJ09G2_D$P_9v(?G^#M#bWp3vdwu1_jy& zn8jv|UPICt%dAP&8pUP_XyFxWjbi3A2V_}X=miomUanw;=?o+bWut5u3O7^f2pDM3 z3NR2VakO+wFNJ|nNx&4E){8kDlgY$3@z^?pn!^=|L>w65AP8h2RFE-4OJin8YaGK+ z^l(T?BW|GdG^NwB7*0&7OQR(qXwPD?-sY##%jJFaT4S#YxK6_{V|osk4RbUaPX7oa z9iC4AeS|SKLr-#|Nuw^!fRo|rq?R7jpMt>q;`M2UR7*Jo&LLAt4XLG#94?#t-jES8 zxuP$Ekw8sp^p+^IM*p5CO{w0A^+WTQm|&b$A++o=hqM zneoMh4yOpQbV{3Me&-rXX~-BFW7OpOqc9>6@_8uYj|gDVJEvKs!AR+} z3?~<6BSMRXnHHuPQcGh@pGv^KD#c+25~Fp7Se-6a0x}7(m`F=|vjTc1C6Y4IIztB2 z@x47Cim7|vdX_*cWihc>mbMjRc+Vh4ES)4Q3G|up6illo2?^NSA#X#d|2J9w0s+hy z2_aO4av_vZA`qs+d5{PvFoaL|BN);nTOW&2r=m@mfecZTT3P}|P#V3Z8rFD=loQ_1 z#gsxaI>87R;vx{ji{%Q$e7=~6PK3E)7zR1L1#_5H{kGx&W;Mv={Wa-v=(i0pyNe|# zS~?}rK7iA=UG-}A52JT3{#kq&WI*^J*MRUrt^whLTm!-fxdwy}at#Q7Czt)Z0}rVs zB%lcl3M5hF761%dMumkbWMN@%{}2Gc_=3+1B$3C1y-p^@Yyn4F56iPtRYkc@qEuvbf|qqu&JyqZnYM1~d7~1nLmpb4XlRg~4WIftDLQ4ujbjUg zuC{)9<%reNIV-+ZwYXQzFD}RpKN*`j)8R)jH}Gk)9S`9>6Up+98$WA3e!A(f-LH=W z|7>foCFC|Qq`%MJ>goE(=Fx?%TZ~tIo%ZCEjt=zwnBSgrVr4>H!lE0crub_mqsNr2 z^K}}L|I&5VoOL4|)|d;0r8D@oZqaPDP`7Z_w2>DN`Yy)c>YbB}Ww%+%_!BNZxe7(d zh_UgxXSNq8!H`!ohIeP(So_~CtE%m$d~IE{F*N=4wZ#t)&*cfY_s3ap4t|xdS?pky zJ+C5hf5!v7Wmh@yMtyDSg3daAa_8!&^J9j24{B}s`D9v5%=4_eQ5D^?wT_nxUZcwr zoXkO+byKa590+b(-!d2X-ZnhA@KD}wfbH_1Bfr_(B)Qsp_HxTnwMSPMP~T>#3-Y>H z004lEa$1BG-~*!pTLH!I0svsBK617Z0EYdGxds92OWgqgu%%`4aNAoBZq5R*1-#}8 z0KjCKG$dA7hnI?sDi15`tQFazSq%ULKBcZB!TH(Q*F8q8-;MFIh=z8XgfTULG_||r gZnpVyoKN8(;LZ-G84gXyOw8$679J(t6`Gv$7e9*X3;+NC diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_white_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_white_detail.png index baddd95eb50e521fff4980e00b182639fa1c9206..e7e0db92d08c9f7c14c0b0ec193609130bea2d33 100644 GIT binary patch delta 95 zcmaE)QaC{(l98E#fkD+aSBZgvfi1u%#PvTIgw}k`VPIfjDhcunPMfgRdQvO{1A~O8 wi(?2!baDa%GoKh6BOeO za0VU^byVE-J;fc=H!d}ff{d~Vu81oP&kY$~bwGrwS5w80`NyfcRo#8Q^WAg4d+x2e zy(T;?#LmXW1^@s%S!kdF0D!U7u(kvM!1ebY7yw4LXGBJm3OJ3X(-SH@8KaTuI*f)H zaTNd<@4ehM_elM8+uZvxLEExCR#xko+lyY6Tzk!^m(9`NTHVl9Q?z~jq4PfeuA4kw zo?CvP)6AK7@TWcLn&Yat^1{oL9DjLQyRld=>Ui#UfBKlWBoV*eyu5hhqJw`3W z(zfTBvzzPus<*%0yjuQxj{j08hsi<97Wuz)aF9-Db!dHhOs~-{-hJq$T10T#e-A5g z%p|+&kGf?9A8!2+`lHJu>FCT!C*RL|7*hH3*M%Jsoevi!eH1@g7t^V* zZ_ALk@e9jxmruyeE0y>iR8>`MI^@ptxUzS0v<+wDX*avX>hs6<-27)){@b#N+-7Bq zh)E%QgnLftxCpz z$Jp#?U6QCb`Jx;tJhLa3SWI$! zeA4RYCsVSJ&w!d1@$42m^Uy-i;zyw3!evqJWv}3n`BAx| z3md9zJtC*SEm{$7wO=vr`IWVZU5X>LcR_8$@&0VmC*{oN7Drcwfcx-KlW*)~1qRXPz`P zD5NrCMeU2JeoKlIm}bndRlW@)M>uhAFY?Il={1tZoGNU-D8x`4|Qa8v@$=gFCJT>zGVhi2%ph>WmEBqIqCp`ee{ z#@i@1YIGWmglR@iveqCrN3Ij z0jc@LD1qRp*z_nAs8l?Z!-6;%iwAMpFb@(5F#*IEaJeD@2W6`S*Z?Y-)Zs8Adg zV>~5~k6|dpVzY!0mxpp8A&My>1m-e191(}dwZsAZvw!L%ey^{E8xjWB9-;s8AclY~B!Ad)2@l>m*3G_^O)yLVAS zaRW){)2WW{>v?}z-TT(N1(I=-i$*iGtr$jnCo#aO7-~wO--RT=S~Z4Bz`hRo9D@I! z#exw5tb$cMNW@pMAue0Rhm^324Z$1?;iG&32ZfQr>;^(bronp5PmO6w2^fNFbf#)( z(@au+Js6#qfKfUz*(`{~hS;1)mO#v7i@8ECCQHm@f{ea`8Pu-+T(LK`8|3nVn)Ct& z90SzpVhU0O21{+c8U4pqpJsot^{vHUYr~Ta$%f?`k`2o>Bpa4%NH#3jkZf44A=#hF zW%K32gK1F-mc*L&&pZ7a8jIw-y5^)8#iRX2F?1k zSdn1=@WK+Grp9j@&X}!Su;wRK{rHl^tp#~Omm)Lf*`5aTq@D5B95&~_BH7w1!_vm8 zD|MCDzjR37J#D>;$}QgqK8V>h!KvM{y=GUrp~-Xf;hbVOspn)~YfkmXxcPC*9~P%Y zHy63N7j5?(ZJ+T`eS*M9p@*^KZ{gn7OZFhGFLunlifD z!6Pp`+|PbWbl%Oq1xnDbYwnnytcTnFQ@&}Rb?^p@?@IksKQ(8*sf^_aSg)p9l=*h$ zYcg%kvKN*tI{xxCQh(q_;16~4tfY_Ec<~>%bS6fOavjlFfBsTRM8w;yYm-WPWZUfS z7JTBaiW_b8DI;c?o%xsV(;fA(i0ke#zMD_2y$@KeJ|FtSkvd6JMZh(~l=XC=B@Hbs(i~#^feMOBCz>eba003B#GI@~IV_WC3 zT&CHHi#q`Tm?;bNixgf%KK1lux|msHt;zP!x&c67C*H#L&Ckwmak1ZV5awi|H(D*@ o+%G<>Yjwygvs^dTWAg~0>gbpi-GMPTsoSwEC@k=Re|*mW01C3}!~g&Q diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow_detail.png index 83eedf08ba3242e137825a002e6aed13fbe086fb..b3fc7c8933760046e65e536cd552c125bf75fcee 100644 GIT binary patch delta 95 zcmV-l0HFWoByo@!Spfq8001RDZ6W{w00vM@R7K_GGv(zo(zICW00002bW%=JW{|Zz zl3f4*02oO`K~xA^V_*OS4i*Lh4h97Q226k|1pp5;0IB+M;SB%)002ovPDHLkV1oXE B8I1q{ literal 4710 zcmeHLdr%Ws7hgo4iUJius~=&}g5r`l36X^NBPs|16%Zer-Az~_*^n$GXhj9I2t^(~ zKt4pMRa8W%q6N`H1qKzZRY6pQ`bKMg^}`op?QB5BnQuDdAN`Nt%$?cYd(Q8i^SkHX znY$Z9Ljo<#Cz}HRU?C3jlK=ojf1V&*-owt2MLwtET%Z1l*q9`Msv3#AU&-hdO zYu@#1cdyCaTUY+wy(1k(d2?K{XHPCU-=34Nc0coQy65EiFGww8UTX9&i>f+beY4}w z&DM!EeOb9V709Z`v3D=Nv~>`fC;;ntSEN;gX!KuU>!e zoatHr_EERxiG78Eg<6Nx&QSxT*R8T?Q>T8LZxm9dh^>g&0`prebF~S_!qWm>Vj#jq z7*@Bqucu@wZu8TIQ*(14E@?R8bg^JuUGL2*wrxZ7Ks-;lTavOd#Un0wS!>Y`nM-H- zEUEGrZd2DVluZ+uN1X0=#Oo$lC*9fb$CVDl#qhm6-W~63yV{91MeX>7l=d{^m|4f2 z+&G0MrW-D_)IQ6-u?V~*-TYPflo*rhF$cbW35bVbM6>qUvS^n**g zub)UJu8%I*bM)GQVQdt->Yx#$`&P` zX@1LmSo7fUxt}g=s;ntk^72^M<5gX6PA*)WzcA|9?}zSIRHlU2SEsajmIl~zML{iI z_4|Ha@gldhHiT1XU{~%#Q?3KPEJ}+?nz=qLhS6rhD{*cTTgW!2+L>_s9jOreLdUfxMP1nBNS(acqdpNj1TF7mN2d$;}9llGR+cHSVG4ECl@Nc#R209Z`MBO=Mj;CTXsP`JV< zA;nyE3Kc-X!&9e%kvNQ`NijLD6oOCc8$cS43c*F(U`DXY7mLM%R;sb^l_3$x$~eRw z1wBRP9y)0bDD=5l?fz%0YemOR3-#tNm3=C)3sWytCsCbsO5B~ySqD`!J@NRkQ$Xinq(yj z>ma4Zk)jyn@WV8S8ds4xp`=lqu#`w7g&=57qtV{yr%(k4f1p=thEzZZ1ziWL=uB4z zU7?^4_t233N#s9!Xd;qT7+r#Ch(tAl`6ppY(s4KiihS@_C931~<)8>1i^mk0lGM^A@1;|yKCvWm*+;QHsfL=-moq#OokI12_Y>>)wd;-b8VURe zB#}x_>?Z`N_yUwba8#gwWNjrVFvMqa*^rEdvN0ZmAw_r$Jr#-w0tmGNCWRobfaMrn zrIhO@D8U8Zp<*G(ave0)e+i9;Ng1J52*G){GEw)@Gy+#(;Ur9{$#ml|SUf)0oy}%* z_&m3dMhh{u1}BshCzIjI8mxv|7OEIbNy1d03PGmcL#I#)eAO6C66y$oh!=uX0yN4~ z-`+Hj!9@weH6)=OrC)2CSbE&7)$|!0n&#Grc=B6eZ?Ns zZU_z@uF0Umuw#HaUGz>8zW|ZB2mQlwHKf_UjG?vocQF#=voIppXJJIH&%%gYpM?>* zJ_{pqeHQ*nF7uBU9!!Y}K`rPhk~no01AxJL+}Af$?CbmfHvs@R=dI2Y1~qw2X;~J& z8?-SRlW8j38#2+)f3$6-kJZfd=&}VSn;$xH@E}Rd6r;}6H2bUtCbse=Q)7(0pBgrw zJ14&2KWAW>B-ZNo&k3GA-K(yjFiel$xKGw)SGrTNYWGUM0%c~a2(P1yK%Yi}2v+MQcr8nDS|OPNp7z>PIe>ld?m z%*S6D?ecn)rC2l8aNUy9rAHn;LAnm^1pboWm=o9E#$DdOxo<`I7<+^6uEv(c@bDLF z+oqPj6Bk%q%^TpXj~S=)+(pbWJn^GfZ&BA`#J+sISN^fg-vEbqagBFI?+t zkWYU57C76hZu6XSIS&8;W9i&LKY$B3046+~`xXEIGgVNO1^~u~C^+tgR*Aq2+KT0sz2lv7dJYzYY1izn!1GZd7BlmqVj$?L@2o8r7uImc~X^w&}Uf v>PcRQWTfFitDAjsq*-&AVZayGrvc#TjB#m8ZIez?w_~w?h~Gh<<*9!I Date: Thu, 20 Jan 2022 22:55:36 +0100 Subject: [PATCH 06/27] `walkover` fixes --- mods/CORE/walkover/init.lua | 38 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/mods/CORE/walkover/init.lua b/mods/CORE/walkover/init.lua index 4d712c308..eb9de4218 100644 --- a/mods/CORE/walkover/init.lua +++ b/mods/CORE/walkover/init.lua @@ -2,47 +2,45 @@ local get_connected_players = minetest.get_connected_players local get_node = minetest.get_node -local vector_add = vector.add +local vector = vector local ceil = math.ceil local pairs = pairs walkover = {} -walkover.registered_globals = {} - -function walkover.register_global(func) - table.insert(walkover.registered_globals, func) -end local on_walk = {} local registered_globals = {} +walkover.registered_globals = registered_globals + +function walkover.register_global(func) + table.insert(registered_globals, func) +end + minetest.register_on_mods_loaded(function() for name,def in pairs(minetest.registered_nodes) do if def.on_walk_over then on_walk[name] = def.on_walk_over end end - for _,func in ipairs(walkover.registered_globals) do --cache registered globals - table.insert(registered_globals, func) - end end) local timer = 0 minetest.register_globalstep(function(dtime) - timer = timer + dtime; + timer = timer + dtime if timer >= 0.3 then - for _,player in pairs(get_connected_players()) do - local pp = player:get_pos() - pp.y = ceil(pp.y) - local loc = vector_add(pp, {x=0,y=-1,z=0}) - if loc then - local nodeiamon = get_node(loc) - if nodeiamon then - if on_walk[nodeiamon.name] then - on_walk[nodeiamon.name](loc, nodeiamon, player) + for _, player in pairs(get_connected_players()) do + local ppos = player:get_pos() + ppos.y = ceil(ppos.y) + local npos = vector.add(ppos, vector.new(0, -1, 0)) + if npos then + local node = get_node(npos) + if node then + if on_walk[node.name] then + on_walk[node.name](npos, node, player) end for i = 1, #registered_globals do - registered_globals[i](loc, nodeiamon, player) + registered_globals[i](npos, node, player) end end end From 90f9f2d98d3005681286edfa1c3f16621ac61a42 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Fri, 21 Jan 2022 09:05:01 +0100 Subject: [PATCH 07/27] nothing, but gitea is bad From ffa9d2d0fd7ba72a84d9a2f754ac7aa22b657779 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 8 Feb 2022 10:58:25 +0100 Subject: [PATCH 08/27] add basic chains and lantern model and API --- mods/ITEMS/mcl_lanterns/init.lua | 161 ++++++++++++++++++ mods/ITEMS/mcl_lanterns/mod.conf | 6 + .../models/mcl_lanterns_chain.obj | 24 +++ .../models/mcl_lanterns_lantern_floor.obj | 106 ++++++++++++ mods/ITEMS/mcl_lanterns/register.lua | 8 + .../textures/mcl_lanterns_chain.png | Bin 0 -> 224 bytes .../textures/mcl_lanterns_chain_inv.png | Bin 0 -> 217 bytes .../textures/mcl_lanterns_lantern.png | Bin 0 -> 8789 bytes .../textures/mcl_lanterns_lantern_inv.png | Bin 0 -> 5736 bytes 9 files changed, 305 insertions(+) create mode 100644 mods/ITEMS/mcl_lanterns/init.lua create mode 100644 mods/ITEMS/mcl_lanterns/mod.conf create mode 100644 mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj create mode 100644 mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj create mode 100644 mods/ITEMS/mcl_lanterns/register.lua create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua new file mode 100644 index 000000000..d59bb558e --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -0,0 +1,161 @@ +local S = minetest.get_translator("mcl_lanterns") +local modpath = minetest.get_modpath("mcl_lanterns") + +mcl_lanterns = {} + + +function mcl_lanterns.register_lantern(name, def) + local itemstring_floor = "mcl_lanterns:"..name.."_floor" + local itemstring_ceiling = "mcl_lanterns:"..name.."_ceiling" + + minetest.register_node(itemstring_floor, { + description = def.description, + drawtype = "mesh", + mesh = "mcl_lanterns_lantern_floor.obj", + inventory_image = def.texture_inv, + wield_image = def.texture_inv, + tiles = {{ + name = def.texture, + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + use_texture_alpha = "clip", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + light_source = def.light_level, + groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1}, + selection_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875}, + {-0.125, -0.0625, -0.125, 0.125, 0.0625, 0.125}, + {-0.0625, -0.5, -0.0625, 0.0625, 0.1875, 0.0625}, + }, + }, + collision_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875}, + {-0.125, -0.0625, -0.125, 0.125, 0.0625, 0.125}, + {-0.0625, -0.5, -0.0625, 0.0625, 0.1875, 0.0625}, + }, + }, + --sounds = default.node_sound_wood_defaults(), + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local def = minetest.registered_nodes[node.name] + if def and def.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return def.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + local above = pointed_thing.above + local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) + local fakestack = itemstack + if wdir == 0 then + fakestack:set_name(itemstring_ceiling) + elseif wdir == 1 then + fakestack:set_name(itemstring_floor) + end + + itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) + itemstack:set_name(itemstring_floor) + + return itemstack + end, + --floodable = true, + --on_flood = on_flood, + on_rotate = false + }) + + minetest.register_node(itemstring_ceiling, { + drawtype = "mesh", + mesh = "mcl_lanterns_lantern_floor.obj", + tiles = {{ + name = def.texture, + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + use_texture_alpha = "clip", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + light_source = def.light_level, + groups = {dig_immediate=3, not_in_creative_inventory=1}, + drop = itemstring_floor, + selection_box = { + type = "wallmounted", + wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8}, + }, + --sounds = default.node_sound_wood_defaults(), + --floodable = true, + --on_flood = on_flood, + on_rotate = false + }) +end + +minetest.register_node("mcl_lanterns:chain", { + description = S("Chain"), + _doc_items_longdesc = S("Chains are metallic decoration blocks."), + inventory_image = "mcl_lanterns_chain_inv.png", + tiles = {"mcl_lanterns_chain.png"}, + drawtype = "mesh", + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = "clip", + mesh = "mcl_lanterns_chain.obj", + is_ground_content = false, + sunlight_propagates = true, + collision_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, + } + }, + groups = {pickaxey = 1, deco_block = 1}, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:get_pos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y - 1 == p1.y then + param2 = 20 + elseif p0.x - 1 == p1.x then + param2 = 16 + elseif p0.x + 1 == p1.x then + param2 = 12 + elseif p0.z - 1 == p1.z then + param2 = 8 + elseif p0.z + 1 == p1.z then + param2 = 4 + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + _mcl_blast_resistance = 6, + _mcl_hardness = 5, +}) + +dofile(modpath.."/register.lua") \ No newline at end of file diff --git a/mods/ITEMS/mcl_lanterns/mod.conf b/mods/ITEMS/mcl_lanterns/mod.conf new file mode 100644 index 000000000..104722123 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/mod.conf @@ -0,0 +1,6 @@ +name = mcl_lanterns +description = Add lanterns and chains to MineClone2 +depends = +optional_depends = +author = AFCMS +title = MineClone2 Lanterns \ No newline at end of file diff --git a/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj new file mode 100644 index 000000000..94a7b8971 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj @@ -0,0 +1,24 @@ +# Blender v3.0.1 OBJ File: 'chain.blend' +# www.blender.org +o Plane +v 0.066291 0.500000 0.066291 +v 0.066291 -0.500000 0.066291 +v -0.066291 0.500000 -0.066291 +v -0.066291 -0.500000 -0.066291 +v -0.066291 0.500000 0.066291 +v -0.066291 -0.500000 0.066291 +v 0.066291 0.500000 -0.066291 +v 0.066291 -0.500000 -0.066291 +vt -0.000000 1.000000 +vt 0.000000 -0.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.187500 -0.000000 +vt 0.375000 -0.000000 +vt 0.375000 1.000000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 5/5/2 6/6/2 8/7/2 7/8/2 diff --git a/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj new file mode 100644 index 000000000..a6125886a --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj @@ -0,0 +1,106 @@ +# Blender v3.0.1 OBJ File: 'lantern.blend' +# www.blender.org +o Cube +v 0.187500 -0.062500 -0.187500 +v 0.187500 -0.500000 -0.187500 +v 0.187500 -0.062500 0.187500 +v 0.187500 -0.500000 0.187500 +v -0.187500 -0.062500 -0.187500 +v -0.187500 -0.500000 -0.187500 +v -0.187500 -0.062500 0.187500 +v -0.187500 -0.500000 0.187500 +v 0.125000 0.062500 -0.125000 +v 0.125000 -0.062500 -0.125000 +v 0.125000 0.062500 0.125000 +v 0.125000 -0.062500 0.125000 +v -0.125000 0.062500 -0.125000 +v -0.125000 -0.062500 -0.125000 +v -0.125000 0.062500 0.125000 +v -0.125000 -0.062500 0.125000 +v 0.066291 0.187500 0.066291 +v 0.066291 0.062500 0.066291 +v -0.066291 0.187500 -0.066291 +v -0.066291 0.062500 -0.066291 +v -0.066291 0.187500 0.066291 +v -0.066291 0.062500 0.066291 +v 0.066291 0.187500 -0.066291 +v 0.066291 0.062500 -0.066291 +vt 0.000000 0.062500 +vt 0.375000 0.062500 +vt 0.375000 0.437500 +vt 0.000000 0.437500 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt -0.000000 0.437500 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt 0.000000 0.437500 +vt 0.562500 0.125000 +vt 0.937500 0.125000 +vt 0.937500 0.250000 +vt 0.562500 0.250000 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt 0.000000 0.437500 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt -0.000000 0.437500 +vt 0.062500 0.125000 +vt 0.312500 0.125000 +vt 0.312500 0.375000 +vt 0.062500 0.375000 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.500000 0.770833 +vt 0.500000 0.770833 +vt 0.500000 0.770833 +vt 0.500000 0.770833 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.687500 0.937500 +vt 0.687500 0.812500 +vt 0.875000 0.812500 +vt 0.875000 0.937500 +vt 0.687500 0.937500 +vt 0.687500 0.812500 +vt 0.875000 0.812500 +vt 0.875000 0.937500 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +s off +f 1/1/1 5/2/1 7/3/1 3/4/1 +f 4/5/2 3/6/2 7/7/2 8/8/2 +f 8/9/3 7/10/3 5/11/3 6/12/3 +f 6/13/4 2/14/4 4/15/4 8/16/4 +f 2/17/5 1/18/5 3/19/5 4/20/5 +f 6/21/6 5/22/6 1/23/6 2/24/6 +f 9/25/1 13/26/1 15/27/1 11/28/1 +f 12/29/2 11/30/2 15/31/2 16/32/2 +f 16/33/3 15/34/3 13/35/3 14/36/3 +f 14/37/4 10/38/4 12/39/4 16/40/4 +f 10/41/5 9/42/5 11/43/5 12/44/5 +f 14/45/6 13/46/6 9/47/6 10/48/6 +f 17/49/7 18/50/7 20/51/7 19/52/7 +f 21/53/8 22/54/8 24/55/8 23/56/8 diff --git a/mods/ITEMS/mcl_lanterns/register.lua b/mods/ITEMS/mcl_lanterns/register.lua new file mode 100644 index 000000000..a2c513eb2 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/register.lua @@ -0,0 +1,8 @@ +local S = minetest.get_translator("mcl_lanterns") + +mcl_lanterns.register_lantern("lantern", { + description = S("Lantern"), + texture = "mcl_lanterns_lantern.png", + texture_inv = "mcl_lanterns_lantern_inv.png", + light_level = 15, +}) \ No newline at end of file diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png new file mode 100755 index 0000000000000000000000000000000000000000..ee523c9226d618aa4cb6c31a11a3130f5a464495 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4zno)T;l9p8gwEk^p$Q0V@_g2Q-{l1>zGwi z@Aw!B$~!zJ95KsYyDcmAiGt?@mtBUNFWxJAly*(+s`Z}wBb7smKQuk=C!1%P X=Z%n-=TjLN7#KWV{an^LB{Ts5eacSO literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png new file mode 100755 index 0000000000000000000000000000000000000000..61a300fede1736bbafa7e07d7b106756b9c18edf GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4v!UEBNu&{sqK98AveyI5R`u-1o!X+y!+r(z@aP!~a-`}(F9?U%O{r!E( zclY+5{_*#BIol>)1vZ{X4l38AeOhwVt;HlHB-lK43W|y@nTctzF$mq#{u{dX{4@pz O1_n=8KbLh*2~7ZS$VFNJ literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png new file mode 100755 index 0000000000000000000000000000000000000000..c9cc5b9958c962387a6ee72e277c225a5673fb7a GIT binary patch literal 8789 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 Date: Tue, 8 Feb 2022 22:56:20 +0100 Subject: [PATCH 09/27] add lanterns, crafts, placement mechanism, doc entries --- mods/ITEMS/mcl_lanterns/init.lua | 94 +++++++++++----- mods/ITEMS/mcl_lanterns/mod.conf | 2 +- .../models/mcl_lanterns_lantern_ceiling.obj | 104 ++++++++++++++++++ .../models/mcl_lanterns_lantern_floor.obj | 30 +++-- mods/ITEMS/mcl_lanterns/register.lua | 18 +++ .../textures/mcl_lanterns_chain.png | Bin 224 -> 205 bytes .../textures/mcl_lanterns_chain_inv.png | Bin 217 -> 202 bytes .../textures/mcl_lanterns_lantern.png | Bin 8789 -> 8614 bytes .../textures/mcl_lanterns_lantern_inv.png | Bin 5736 -> 5669 bytes .../textures/mcl_lanterns_soul_lantern.png | Bin 0 -> 8642 bytes .../mcl_lanterns_soul_lantern_inv.png | Bin 0 -> 5677 bytes 11 files changed, 205 insertions(+), 43 deletions(-) create mode 100644 mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_ceiling.obj mode change 100755 => 100644 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png mode change 100755 => 100644 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png mode change 100755 => 100644 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png mode change 100755 => 100644 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png create mode 100644 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_soul_lantern.png create mode 100644 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_soul_lantern_inv.png diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua index d59bb558e..e6707b075 100644 --- a/mods/ITEMS/mcl_lanterns/init.lua +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -3,27 +3,39 @@ local modpath = minetest.get_modpath("mcl_lanterns") mcl_lanterns = {} +--[[ +TODO: +- add lantern specific sounds +- remove the hack arround walmounted nodes +]] function mcl_lanterns.register_lantern(name, def) local itemstring_floor = "mcl_lanterns:"..name.."_floor" local itemstring_ceiling = "mcl_lanterns:"..name.."_ceiling" + local sounds = mcl_sounds.node_sound_metal_defaults() + minetest.register_node(itemstring_floor, { description = def.description, + _doc_items_longdesc = def.longdesc, drawtype = "mesh", mesh = "mcl_lanterns_lantern_floor.obj", inventory_image = def.texture_inv, wield_image = def.texture_inv, - tiles = {{ + tiles = { + { name = def.texture, animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} - }}, + } + }, use_texture_alpha = "clip", paramtype = "light", paramtype2 = "wallmounted", + place_param2 = 1, + node_placement_prediction = "", sunlight_propagates = true, light_source = def.light_level, - groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1}, + groups = {pickaxey = 1, attached_node = 1, deco_block = 1, lantern = 1}, selection_box = { type = "fixed", fixed = { @@ -40,19 +52,16 @@ function mcl_lanterns.register_lantern(name, def) {-0.0625, -0.5, -0.0625, 0.0625, 0.1875, 0.0625}, }, }, - --sounds = default.node_sound_wood_defaults(), + sounds = sounds, on_place = function(itemstack, placer, pointed_thing) - local under = pointed_thing.under - local node = minetest.get_node(under) - local def = minetest.registered_nodes[node.name] - if def and def.on_rightclick and - not (placer and placer:is_player() and - placer:get_player_control().sneak) then - return def.on_rightclick(under, node, placer, itemstack, - pointed_thing) or itemstack + local new_stack = mcl_util.call_on_rightclick(itemstack, placer, pointed_thing) + if new_stack then + return new_stack end + local under = pointed_thing.under local above = pointed_thing.above + local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) local fakestack = itemstack if wdir == 0 then @@ -61,38 +70,61 @@ function mcl_lanterns.register_lantern(name, def) fakestack:set_name(itemstring_floor) end - itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) + local success + itemstack, success = minetest.item_place(fakestack, placer, pointed_thing, wdir) itemstack:set_name(itemstring_floor) + if success then + minetest.sound_play(sounds.place, {pos = under, gain = 1}, true) + end + return itemstack end, - --floodable = true, - --on_flood = on_flood, - on_rotate = false + on_rotate = false, + _mcl_hardness = 3.5, + _mcl_blast_resistance = 3.5, }) minetest.register_node(itemstring_ceiling, { + description = def.description, + _doc_items_create_entry = false, drawtype = "mesh", - mesh = "mcl_lanterns_lantern_floor.obj", - tiles = {{ + mesh = "mcl_lanterns_lantern_ceiling.obj", + tiles = { + { name = def.texture, animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} - }}, + } + }, use_texture_alpha = "clip", paramtype = "light", paramtype2 = "wallmounted", + place_param2 = 0, + node_placement_prediction = "", sunlight_propagates = true, light_source = def.light_level, - groups = {dig_immediate=3, not_in_creative_inventory=1}, + groups = {pickaxey = 1, attached_node = 1, deco_block = 1, lantern = 1, not_in_creative_inventory = 1}, drop = itemstring_floor, selection_box = { - type = "wallmounted", - wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8}, + type = "fixed", + fixed = { + {-0.1875, 0, -0.1875, 0.1875, 0.4375, 0.1875}, + {-0.125, -0.125, -0.125, 0.125, 0, 0.125}, + {-0.0625, -0.5, -0.0625, 0.0625, -0.125, 0.0625}, + }, }, - --sounds = default.node_sound_wood_defaults(), - --floodable = true, - --on_flood = on_flood, - on_rotate = false + collision_box = { + type = "fixed", + fixed = { + {-0.1875, 0, -0.1875, 0.1875, 0.4375, 0.1875}, + {-0.125, -0.125, -0.125, 0.125, 0, 0.125}, + {-0.0625, -0.5, -0.0625, 0.0625, -0.125, 0.0625}, + }, + }, + sounds = sounds, + on_rotate = false, + _mcl_hardness = 3.5, + _mcl_blast_resistance = 3.5, }) end @@ -121,6 +153,7 @@ minetest.register_node("mcl_lanterns:chain", { } }, groups = {pickaxey = 1, deco_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), on_place = function(itemstack, placer, pointed_thing) if pointed_thing.type ~= "node" then return itemstack @@ -158,4 +191,13 @@ minetest.register_node("mcl_lanterns:chain", { _mcl_hardness = 5, }) +minetest.register_craft({ + output = "mcl_lanterns:chain", + recipe = { + {"mcl_core:iron_nugget"}, + {"mcl_core:iron_ingot"}, + {"mcl_core:iron_nugget"}, + }, +}) + dofile(modpath.."/register.lua") \ No newline at end of file diff --git a/mods/ITEMS/mcl_lanterns/mod.conf b/mods/ITEMS/mcl_lanterns/mod.conf index 104722123..746ffcb15 100644 --- a/mods/ITEMS/mcl_lanterns/mod.conf +++ b/mods/ITEMS/mcl_lanterns/mod.conf @@ -1,6 +1,6 @@ name = mcl_lanterns description = Add lanterns and chains to MineClone2 -depends = +depends = mcl_sounds optional_depends = author = AFCMS title = MineClone2 Lanterns \ No newline at end of file diff --git a/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_ceiling.obj b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_ceiling.obj new file mode 100644 index 000000000..7079aa7cb --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_ceiling.obj @@ -0,0 +1,104 @@ +# Blender v3.0.1 OBJ File: 'lantern.blend' +# www.blender.org +o Lantern_Ceiling +v 0.187500 -0.000000 0.187500 +v 0.187500 0.437500 0.187500 +v 0.187500 0.000000 -0.187500 +v 0.187500 0.437500 -0.187500 +v -0.187500 -0.000000 0.187500 +v -0.187500 0.437500 0.187500 +v -0.187500 0.000000 -0.187500 +v -0.187500 0.437500 -0.187500 +v 0.125000 -0.125000 0.125000 +v 0.125000 -0.000000 0.125000 +v 0.125000 -0.125000 -0.125000 +v 0.125000 0.000000 -0.125000 +v -0.125000 -0.125000 0.125000 +v -0.125000 -0.000000 0.125000 +v -0.125000 -0.125000 -0.125000 +v -0.125000 0.000000 -0.125000 +v 0.066291 -0.500000 -0.066291 +v 0.066291 -0.125000 -0.066291 +v -0.066291 -0.500000 0.066291 +v -0.066291 -0.125000 0.066291 +v -0.066291 -0.500000 -0.066291 +v -0.066291 -0.125000 -0.066291 +v 0.066291 -0.500000 0.066291 +v 0.066291 -0.125000 0.066291 +vt 0.000000 0.062500 +vt 0.375000 0.062500 +vt 0.375000 0.437500 +vt 0.000000 0.437500 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt -0.000000 0.437500 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt 0.000000 0.437500 +vt 0.000000 0.062500 +vt 0.375000 0.062500 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt 0.000000 0.437500 +vt 0.375000 0.437500 +vt 0.375000 0.875000 +vt -0.000000 0.875000 +vt -0.000000 0.437500 +vt 0.062500 0.125000 +vt 0.312500 0.125000 +vt 0.312500 0.375000 +vt 0.062500 0.375000 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.500000 0.770833 +vt 0.500000 0.770833 +vt 0.500000 0.770833 +vt 0.500000 0.770833 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.312500 0.875000 +vt 0.312500 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.875000 +vt 0.687500 0.625000 +vt 0.687500 0.250000 +vt 0.875000 0.250000 +vt 0.875000 0.625000 +vt 0.687500 1.000000 +vt 0.687500 0.625000 +vt 0.875000 0.625000 +vt 0.875000 1.000000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 1/1/1 5/2/1 7/3/1 3/4/1 +f 4/5/2 3/6/2 7/7/2 8/8/2 +f 8/9/3 7/10/3 5/11/3 6/12/3 +f 6/13/4 2/14/4 4/5/4 8/8/4 +f 2/15/5 1/16/5 3/17/5 4/18/5 +f 6/19/6 5/20/6 1/21/6 2/22/6 +f 9/23/1 13/24/1 15/25/1 11/26/1 +f 12/27/2 11/28/2 15/29/2 16/30/2 +f 16/31/3 15/32/3 13/33/3 14/34/3 +f 14/35/4 10/36/4 12/37/4 16/38/4 +f 10/39/5 9/40/5 11/41/5 12/42/5 +f 14/43/6 13/44/6 9/45/6 10/46/6 +f 17/47/7 18/48/7 20/49/7 19/50/7 +f 21/51/8 22/52/8 24/53/8 23/54/8 diff --git a/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj index a6125886a..c90ece680 100644 --- a/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj +++ b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj @@ -1,6 +1,6 @@ # Blender v3.0.1 OBJ File: 'lantern.blend' # www.blender.org -o Cube +o Lantern_Floor v 0.187500 -0.062500 -0.187500 v 0.187500 -0.500000 -0.187500 v 0.187500 -0.062500 0.187500 @@ -37,10 +37,8 @@ vt 0.375000 0.437500 vt 0.375000 0.875000 vt -0.000000 0.875000 vt 0.000000 0.437500 -vt 0.562500 0.125000 -vt 0.937500 0.125000 -vt 0.937500 0.250000 -vt 0.562500 0.250000 +vt 0.000000 0.062500 +vt 0.375000 0.062500 vt 0.375000 0.437500 vt 0.375000 0.875000 vt -0.000000 0.875000 @@ -93,14 +91,14 @@ s off f 1/1/1 5/2/1 7/3/1 3/4/1 f 4/5/2 3/6/2 7/7/2 8/8/2 f 8/9/3 7/10/3 5/11/3 6/12/3 -f 6/13/4 2/14/4 4/15/4 8/16/4 -f 2/17/5 1/18/5 3/19/5 4/20/5 -f 6/21/6 5/22/6 1/23/6 2/24/6 -f 9/25/1 13/26/1 15/27/1 11/28/1 -f 12/29/2 11/30/2 15/31/2 16/32/2 -f 16/33/3 15/34/3 13/35/3 14/36/3 -f 14/37/4 10/38/4 12/39/4 16/40/4 -f 10/41/5 9/42/5 11/43/5 12/44/5 -f 14/45/6 13/46/6 9/47/6 10/48/6 -f 17/49/7 18/50/7 20/51/7 19/52/7 -f 21/53/8 22/54/8 24/55/8 23/56/8 +f 6/13/4 2/14/4 4/5/4 8/8/4 +f 2/15/5 1/16/5 3/17/5 4/18/5 +f 6/19/6 5/20/6 1/21/6 2/22/6 +f 9/23/1 13/24/1 15/25/1 11/26/1 +f 12/27/2 11/28/2 15/29/2 16/30/2 +f 16/31/3 15/32/3 13/33/3 14/34/3 +f 14/35/4 10/36/4 12/37/4 16/38/4 +f 10/39/5 9/40/5 11/41/5 12/42/5 +f 14/43/6 13/44/6 9/45/6 10/46/6 +f 17/47/7 18/48/7 20/49/7 19/50/7 +f 21/51/8 22/52/8 24/53/8 23/54/8 diff --git a/mods/ITEMS/mcl_lanterns/register.lua b/mods/ITEMS/mcl_lanterns/register.lua index a2c513eb2..76d48f50d 100644 --- a/mods/ITEMS/mcl_lanterns/register.lua +++ b/mods/ITEMS/mcl_lanterns/register.lua @@ -2,7 +2,25 @@ local S = minetest.get_translator("mcl_lanterns") mcl_lanterns.register_lantern("lantern", { description = S("Lantern"), + longdesc = S("Lanterns are light sources which can be placed on the top or the bottom of most blocks."), texture = "mcl_lanterns_lantern.png", texture_inv = "mcl_lanterns_lantern_inv.png", light_level = 15, +}) + +mcl_lanterns.register_lantern("soul_lantern", { + description = S("Soul Lantern"), + longdesc = S("Lanterns are light sources which can be placed on the top or the bottom of most blocks."), + texture = "mcl_lanterns_soul_lantern.png", + texture_inv = "mcl_lanterns_soul_lantern_inv.png", + light_level = 10, +}) + +minetest.register_craft({ + output = "mcl_lanterns:lantern_floor", + recipe = { + {"mcl_core:iron_nugget", "mcl_core:iron_nugget", "mcl_core:iron_nugget"}, + {"mcl_core:iron_nugget", "mcl_torches:torch" , "mcl_core:iron_nugget"}, + {"mcl_core:iron_nugget", "mcl_core:iron_nugget", "mcl_core:iron_nugget"}, + }, }) \ No newline at end of file diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png old mode 100755 new mode 100644 index ee523c9226d618aa4cb6c31a11a3130f5a464495..01725114a6c7eba66c7abf561e57563b46171c7f GIT binary patch delta 149 zcmaFBc$RU3gcu7m0|Ud`yN`kx7#J9fgWR1M)}51iInhD8gg?M1#Fc@8L0MT@M@Prh z)b#)V|BE|Q*Mk(61o;IsI6S+N2I3@nySuRTXWR^AU|`Vlba4#fxSpJlkdnf{tn8}D z;q1uZWXz$Z?HK73U|J!0c>G_f`~+| zJ6x(7?hXKOcZf)k#5QZKwrXYMAW4u!x-qlS-ge?<)+W_Eynn=bV*4?L%AdlQUik(| Wc1hS&gy)q20000-9ba4#fxSpKgz{JE9&}Ptc wkY%z_NQ03G3x{@Ei=oKJ7eNl!S=kucTNy8x@cZgBFfcH9y85}Sb4q9e0HbLu$N&HU delta 161 zcmV;S0AByf0oehN7$^t^0000V^Z#K00004VQb$4nuFf3k00006VoOIv0RI600RN!9 zr<0K`D{fgyL_t(I%VS`m6;M`I{*O%K0!;WMO-)VzQ{)OA9UX!OFyXWP`}gkz4Z&%^ z_wU~s?%uu2`2G8L2C@wx1`OgrB-R^Dgls1}78n>921zV%a&po(7AOV)651>MRjtpK P00000NkvXXu0mjfa_2tw diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png old mode 100755 new mode 100644 index c9cc5b9958c962387a6ee72e277c225a5673fb7a..f9936e0fbb05622646be067e889c7d7b6227445d GIT binary patch delta 253 zcmVQA$uT`t{^9W03=XMR7C&)0LV)+YyVdBP=W|H8nN=|Nk+RjKcr`00?waPE!E<{QUg<{QQT(RUZHV00Cl4 zM??!B*Tld8004YRL_t&-(_`RVHGu&PIA$~ei4_bCoik@JFmQ1&Ff#mrOXm21ys}QVu7R!1ZJ*U1!2tS?1D(Gm@x~Yc;(D4h}6m%P{yiN zD;ZD$9``gVN}#!Ca+oDV@#IuZh!su78gz5dK!gtf0_ROe_v7JA00000NkvXXu0mjf D`7vcy delta 428 zcmV;d0aN~_L)Ao(7zqdl0000OU;0y{D6tnII~E0cuG^ zK~zY`?UpZ3!$26uf9)E`D~dS741wjy47a%%1O~x(0Lz!)6YwR_sL2_!kW69bV1f`9 zXfVuFP;r5zDT1^#Tbt10ppUr|chCF0f9}aS0LGX^L;$eXGMmjDeh4qUlwZrBwN8{$ zgki{hK6e0It#uY%L=X|Q)=3e6fl`X;bn2`qxH|M>f72maeBC=3*;WxjsxS=*;E4!F z*HNqNz%qd`CdsGj0oZBDl*f6cLnCR30R2Eh2)owv?cMaFFr}Qj#)= z$jTtO`M#$lWk}yhzCLczq*Z~pte`GYZ8(3#4=%RX;;r3vULM~8IJvLr2dBYDi{PWa zAKV;o#QvUwPM>HrVgK^2h97kL@N}EmS~Wjd_%NC@e$e>AzxRXYf6)978bA0wJ^`#P Wd9>vG3V#3q002ovPDHK)LSTaYoy*(+ diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png old mode 100755 new mode 100644 index 1e81819ba95fb37c446bc5b37278432023322031..8bdc8095fc5de299ae0cbc348ff585c0b16bb0e0 GIT binary patch delta 182 zcmV;n07?JoETt@v7zqRe0002(-QrTQAwU(Aa}_9m9#BkFMF0Q*L<#ZPrR)Fz z06s}XK~xCWV_-lA& k6NJGXrfigestXMO0Ify}bsvJfM*si-07*qoM6N<$g5q>W-v9sr delta 247 zcmVy{D6tUKJ~UxJg7o zR5;6HV4yY7(b4&@qoebmY|Y3tS-{lP6t89`LN56J{X1R@81ZT5}dBqtSKEH&7q1~46%tU*ElarId zeeY*xWG|q*h@cBDS1SBv(A8s3V31H_VA#EeLAU(@Gs)4&Afd*<@ZuK3=ZEibDq+DD x1D_whW8mGr1|wF8_JY;2Ps|JqpBM%|001+GLyO0j;pqSX002ovPDHLkV1f}Ccvk=b diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_soul_lantern.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_soul_lantern.png new file mode 100644 index 0000000000000000000000000000000000000000..6e20058ea35d03bcdd7c225d2c372ee7be934f82 GIT binary patch literal 8642 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 Ic~Ihi0lCZx+yDRo literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_soul_lantern_inv.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_soul_lantern_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..55624c7492d8bbab96bc7c7e44b566868f2335b6 GIT binary patch literal 5677 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 DuN!6u literal 0 HcmV?d00001 From 9cc088c940dd36bb3885c7a4bfe14176826e2b22 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 8 Feb 2022 23:00:45 +0100 Subject: [PATCH 10/27] fix lantern light value to fit minetest limit --- mods/ITEMS/mcl_lanterns/register.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_lanterns/register.lua b/mods/ITEMS/mcl_lanterns/register.lua index 76d48f50d..efdd1ed98 100644 --- a/mods/ITEMS/mcl_lanterns/register.lua +++ b/mods/ITEMS/mcl_lanterns/register.lua @@ -5,7 +5,7 @@ mcl_lanterns.register_lantern("lantern", { longdesc = S("Lanterns are light sources which can be placed on the top or the bottom of most blocks."), texture = "mcl_lanterns_lantern.png", texture_inv = "mcl_lanterns_lantern_inv.png", - light_level = 15, + light_level = 14, }) mcl_lanterns.register_lantern("soul_lantern", { From 8ca3d311fd38e6fce65cc285ca97a12a94ee6efa Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 9 Feb 2022 12:20:54 +0100 Subject: [PATCH 11/27] nothing From e138d998efac2044d2b667fcf366a2831ff0df41 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Thu, 20 Jan 2022 22:55:36 +0100 Subject: [PATCH 12/27] `walkover` fixes --- mods/CORE/walkover/init.lua | 38 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/mods/CORE/walkover/init.lua b/mods/CORE/walkover/init.lua index 4d712c308..eb9de4218 100644 --- a/mods/CORE/walkover/init.lua +++ b/mods/CORE/walkover/init.lua @@ -2,47 +2,45 @@ local get_connected_players = minetest.get_connected_players local get_node = minetest.get_node -local vector_add = vector.add +local vector = vector local ceil = math.ceil local pairs = pairs walkover = {} -walkover.registered_globals = {} - -function walkover.register_global(func) - table.insert(walkover.registered_globals, func) -end local on_walk = {} local registered_globals = {} +walkover.registered_globals = registered_globals + +function walkover.register_global(func) + table.insert(registered_globals, func) +end + minetest.register_on_mods_loaded(function() for name,def in pairs(minetest.registered_nodes) do if def.on_walk_over then on_walk[name] = def.on_walk_over end end - for _,func in ipairs(walkover.registered_globals) do --cache registered globals - table.insert(registered_globals, func) - end end) local timer = 0 minetest.register_globalstep(function(dtime) - timer = timer + dtime; + timer = timer + dtime if timer >= 0.3 then - for _,player in pairs(get_connected_players()) do - local pp = player:get_pos() - pp.y = ceil(pp.y) - local loc = vector_add(pp, {x=0,y=-1,z=0}) - if loc then - local nodeiamon = get_node(loc) - if nodeiamon then - if on_walk[nodeiamon.name] then - on_walk[nodeiamon.name](loc, nodeiamon, player) + for _, player in pairs(get_connected_players()) do + local ppos = player:get_pos() + ppos.y = ceil(ppos.y) + local npos = vector.add(ppos, vector.new(0, -1, 0)) + if npos then + local node = get_node(npos) + if node then + if on_walk[node.name] then + on_walk[node.name](npos, node, player) end for i = 1, #registered_globals do - registered_globals[i](loc, nodeiamon, player) + registered_globals[i](npos, node, player) end end end From 7fbdd71081be124516e7a209084954fcd0fc0f83 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Thu, 20 Jan 2022 10:01:59 +0100 Subject: [PATCH 13/27] obtimize glass detail images --- .../mcl_core/textures/default_glass_detail.png | Bin 4942 -> 120 bytes .../textures/mcl_core_glass_black_detail.png | Bin 4706 -> 113 bytes .../textures/mcl_core_glass_blue_detail.png | Bin 4710 -> 113 bytes .../textures/mcl_core_glass_brown_detail.png | Bin 4709 -> 113 bytes .../textures/mcl_core_glass_cyan_detail.png | Bin 4710 -> 113 bytes .../textures/mcl_core_glass_gray_detail.png | Bin 4703 -> 113 bytes .../textures/mcl_core_glass_green_detail.png | Bin 4708 -> 113 bytes .../mcl_core_glass_light_blue_detail.png | Bin 4708 -> 113 bytes .../textures/mcl_core_glass_lime_detail.png | Bin 4712 -> 113 bytes .../textures/mcl_core_glass_magenta_detail.png | Bin 4707 -> 113 bytes .../textures/mcl_core_glass_orange_detail.png | Bin 4712 -> 113 bytes .../textures/mcl_core_glass_pink_detail.png | Bin 4708 -> 113 bytes .../textures/mcl_core_glass_purple_detail.png | Bin 4710 -> 113 bytes .../textures/mcl_core_glass_red_detail.png | Bin 4706 -> 113 bytes .../textures/mcl_core_glass_silver_detail.png | Bin 4705 -> 113 bytes .../textures/mcl_core_glass_white_detail.png | Bin 4706 -> 113 bytes .../textures/mcl_core_glass_yellow_detail.png | Bin 4710 -> 113 bytes 17 files changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/ITEMS/mcl_core/textures/default_glass_detail.png b/mods/ITEMS/mcl_core/textures/default_glass_detail.png index 791309817e12424da6c346ac9e68cf0abb1ca2ba..6205f84a588ec196f612f886fef310a1baffb8a6 100644 GIT binary patch delta 102 zcmV-s0Ga>JCU}q-U;+aG003g07xDlA01Qw}R7C&)0N>y600030|Nlj*!36*S00DGT zPE!Ct=GbNc000_EL_t&t*JEHnfCCH$49p;kg@KWQ5Wt}r0FeR%aXZRPWB>pF07*qo IM6N<$f<>Gka{vGU literal 4942 zcmeHLYfuwc8$MhVxu{ew3Q`FxwphrOBqWh=4L3Cy5ewp_Y&M&)CCP?lfdGP_#bUK0 zf{J+gK2ebm6-A^{yijYQQY(tmqJW?%QZJ~q_`z3-bT%NxnQuDdkN)$W*_rG)@AI7Z zdCq&z%x04$JY=ecqXht9YFMZ!0svr5KBguBfZjV@5dfI9rbb2+5pXg^qs8Tz5~UC+ z8kB9I-Y%0KYm z&f0yiE~2}sd}q!fYb)BWRi_+mI8SycuGL@7NMj5=a6N)t3~-%=rZ=DL?d(>D7x9pX zxGi?ue&=ri+C3TPm&scEH-;c!%7mjPEcFKsg{J);=CebtboCWXYALbGTy;;TK3AOf@m2@lyv{rb z-eF^^U|eFZ`QdhFgI6}&De&jz&CJ30Ef>ZQIx@8Cv?#YW7S& z+HX~v_6cb}-dCE7&6`&GrEuyz;<9a4UcYfWq5H>uZBCXmtA9~ezIU){l4$Dgg{K?r znWh=-aqX%C*X6b{`|Ix8S})DqpLCNQ6%ALjlAtRVPh%?BHTdZxU!*#_TvPUcW07$? z&sKvlyi%VUyR;ARezm!K{>~>GqKr0Ve0z)+%e_)2?K@Xze>HZF$da47CB8i2*dAj) z)3!N{Co_#~qP@+yO|6%$ob3LPxkb2sx!TVt4R=3xI@~qWsp=B9W0Utl3?9Y&)IR4$ z=&>oEZkK7gCAX}7o90X1()t?HoY(e0&cEir-qPnY>q~AK{Dnl*_tr>rq4eXWN7ifz zUVh^c|F)~!R-bI!{E`Cg#wM$)4!A;jIi+H=hq`Z3bXW1B7_I-HZPZ%xdG?35FD(CR zVbH$P1NCK`pW3Tk3X0+{WZUogs#zOSn)s-EXinEY*#SOxQ+zMNFCproq$>#MmZI)_7BEGzErMI5bX-SjPZ=p2$-b?>Fy z@jeM*eE(PFy2e{=KFf7y77nc6b-$`6+$;2z>6X(SxsQID|0s~RzwF?A_mnU9Dr*WH zdjh*!)#$$lqZO++j_3)#Z7VzoP$Dg-eh;T6z^dDHT#L|5D#wN4G{;-;n z$kXeV=ax4&o&C?q537HV$olS+oOrJ9)|Ys9>xSZHQjvzDw zIz2f#nU?HH!?g-Jlh5bV87w-BMb*mWR9%Xifb~?hZZ1hN${|8^h!)cj7_O#}oUjy6 zB!m!TL7`Ay*Qe5m#pCp9-IxmquA=K<4V_72&{Zn>M1+nAN+SLqp^Hq>p!5h-hbL+g zG$;vG6LTk0$dGZoCQ++2$dMs*REerkHKC(3Y0Nj43<(oU#u20i3QVOjp!6!u8<_+q z|I4g5)Q~dk(dfyM!=+-OfHMf;BdKo4u`?zawniaMzuN&SCgDf293owz{zbP z#h_{eCi_$fF%9E-l|~S#MPUNhM&h_q2$2O)NTi{?Dc+--5{l^vT$@66{8-Niz>3kg z(IcS53{w<}p=|{)GP;NkPC`fR9G^nsV6_6338AqLc@4q-&t@S^4v)p=a;O{@(~HVR z*-R>r56h@*7Q$h3cuWLAMrDk%=x{la3~Nz;1*#^5Pza{d7}QYQ3|7uJh#t>QjzdYG z7%V20!KE_!kqm}_!xVUO+!-tZg8|XU1k=e={aUd%c^bsxiJpumOt=Qf+rUDN@>cQAuD6PJcD+@+v+J$mon3Dg@9cW3_&d8S{`%lS)iNQJ z4Eg$qp7eeOfKfIU7$^w~41E1x2mo$*>3PD?OMXsupRBBc?EE+9@MNX?JVNafnm@8V z5Kw9tlgRkGKQQjbwnNoCi}FckzV=6_(Hd(6)fVgTn&s@-lV7~KV6gVkb*O&B{fu*G z2ddM|2A`lMMepCwEL#yQ*lm64Yde?0FKGRUb%JP~{BdP*;rgDzn$L4jBs2GSr$4*a zbo7CE@}Oy#L&p%pT4*evuK} zSzt0*owa}YnKKW4!ksg%5_i-XO`Db#mv^egyW`HCj<#Aw(eN-htJHq?2Oe7w0GKXW z92o=v=r^XaF;Z;~I#VL{=d@_^X&e*#uaUVH!m diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_black_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_black_detail.png index 48bcb54c4887c96985dc6dec6ac85ca5c32d7e6d..9dac71149d27312b7d3f18f8cba1eae27bf26b3d 100644 GIT binary patch delta 95 zcmaE)QaC{(l98E#fkD+aSBZgvfi1u%#8naubPvyqWnf@nDhcunPMfgRdJ>2y;pyTS t!V#UEz`)EW#>U9U#>&X%)1bx5z;D8^@>k(QUIqpR22WQ%mvv4FO#s*a6-WR8 literal 4706 zcmeHLX;2f{7H(yI2r7(#f=Xym9I=z`PC^z*5C}`eAO=JfP&%DXXdsJ81A$RNL{L!? z6%_|(pnRw!qPWge+{ImM)B&B5MI1N8T^V=BR~-Fkhyg(VXW21vlpM=s=nXm*nMN?EEIq*> zOr#0`OxGW+owBQGtbM_a=^<-#z4Pl0@Vc_c73ZI@nxvBrR|=coHI%IzT6;7g$YX`~ zqa*XScUrh|cl@*^OS4y%P*r+rg!3==8jH&fg69uBZ;T!ElF}uuv#csFp1I>M-uOE< zqdK7+?hd-oSek&?N06Y_82tUS(|GgsRcUrvlo#i z&NRaL6rPDj* zjvd*u4!_ck1@qhs7FCJ@cc@O(tf=+kdY|4pGR}@&e9+S&rT*yNEtmcqS@d$_a88@z zrf6s7asLVMQs${;g_cL07Q1}UDQi1}<|ZcHsbf+0P0zzmCoeDYsr3D(ULiQR;YuBA zn{)j9G4DjNPm2V34!pdC+wIoip6wMKj&1SThx4j)D?(S}MI6hF@uU2z0(|BVudo{7 zd}qJS*}J212V=<#+1?Bw#d~7uF2voj|9zn0rZD2BgJpQBPx)<7e(aQ>;FND@*tFOJ z!Lj8h?7d^gzARf1WwT8_E(G_r1BgPh2}EbeOQC_U6WA z;;eJ^Z;%Ij?(e>M_}ArCd)6ktI?(j^yQX)?=H-&w;;8ftl=7o+8<9?f4bkI2GY2u%UCgr4> zetvH|H(wm&QCWN`tlg{giS60r#f7h3U%PuEo7s4^y$k>x+{l@i0d>=OsP{4 zOp`_r(C`m1=`lQ&pco25O=?Bple!}ygH(#ZXCXHT0P#D9cNz)pICJ|`n6>5z_dYA<=%qCQ-2#k|OF@kjlg27>Om@pJ#A~R4> zY{&37C{;qaB($5tpj3&#WQx)YS**;=OlBsVsWYfqh(I7!H^gyH&t-8kPyuvk)fC(r8${ zJ&aUH2KCP##+WQU!IBe3UAh4$LNW*~<<*-)iTC*H(+z3na+ElWNFy|amNK#sCh|qd zFsUr6$AgwYO=|RJFOx?9g(XF*K8y85HS~_suzK&nYCmexBfno3D3 zg&Y-^2Xokd5TA!35Qp%CA-;l(Kq$-?pd20>^;30GDRE(_&Y;045lCt6T^ogs_v`0kz$!qi<~U0WcHG*2-Y=C&1Lcvlc3mO*rB&@+W6V_G$#6oK6x^2vq# zo5d0c_%O^>q7cC*P>6$|Fr;8}*boLI9D#t(<+GJMa~VA>MxBbv#0*5Bn$S`rFpSjb z&DAi*n5F#oOY6*Jg4PK}5ePvclpTZcgdDz*4g11~5Qafkcfl-rSAVM5pWY2JS#M3c z40;^{^yy-Dl1oCxcK)oM8@!7A{nMg7H#(#s(e z-_MdKJKj1rJD|1YyXHd{`7;*(q-q*kk+P;_QOL=d?5Xw#!A0WEBwIGh{!<`ba>6*L z<;3Z0b+*4e7r(mKeoiT~el7W9`X+amXV%XeHdPs0eFpB#EB6%pjO4cG)fXpBOPF`7 zJTtDX%+srEozFnWqBkzFGuAoVmzq}c%cpS9xyqSpzHWAGg!9$^`Q%`5bC)1;&U*?`4QSni_ z*5UV(_nd_Z15E)NbrUTP{XF5``lfi?WAmU1D-SHW0oW8C4gX=+HBoEJ z02l5V&Ib&?S^@xowIU)+0&oFOz=lV1KL7ymAAR_ABLEEehJN}1>&u4%0ANE&Wg#|q z>|F=LBkSz#VgUdcFO>ww@XzC`SFfIgR{$^)Wm`L}A|zi7C0HjTFr45O^n#may<*$2 omfTbc|ASj%|Je<>m-8hk05r<&FT(|E5c+m34T+R&4@%1WKZ@Jo`~Uy| diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_blue_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_blue_detail.png index 0d026ce7cc6208391d81cd3d574311d62af03973..13d0e83b2fb803a0e5724c4cc2ea7cd7fbb8ffc4 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_brown_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_brown_detail.png index e012b08f2d12c72f373911780a55e53486ddf7fe..d342045b1495a655e868dbc68223d5926f9737cd 100644 GIT binary patch delta 95 zcmaE=QaC{(l98E#fkD+aSBZgvfi1u%#5K*wIL*g+wO}F>0|Nt7NswP~+JvpvlVTYd z7$iJh978ywlM@)2`NY^5`Pf()*?bzbSQ+?D7*_r&e8|hdz`)??>gTe~DWM4f`otBp literal 4709 zcmeHLdr%YS7GFyRL>|%>Q50EMxmdY*>?Q${OL!(gsNoS%5V5e?-Gr5F5|RZ1R}m2v zWJIxw%B6@RqD3ses+Lmlg5K6g)hiX10wVQs+wlo1;_J=^M4ah#hClkBXJ%)1zjMy- zobx;9`)0l^jEV@gvvIKj0KiTbCQ$$YFo}7rEdc;<>wAp?zz6-=vGKG5%>?xZor=^D zAf2TrK*B_-0KjzZZfW4gU+36LpO!0&b7$wbrg66x91nDBYSPryAfDboHtk{hJBv$m93Q2nYtFmYB@VuVTGj47(T8ulx3OpT99qdv~O8Q_!<=iXDnc}a!yisWVU()6y)?7+S!tBT1*Gyb>r9NahCmdK0OtZ}>D zf63wU+Nyv}FN>XCD2tO@)`8CMt5;apdG5*naG)e9M(;GKt-vt7WOcK)rge9Jw;Z%e zIT0XTRuOnGYXT_Qn$TlA!8+HaP*JTp8RN4^;>hJC0`^I*(tTTkfOk~Y zd9tWB&O1}rHO>1(_1-$K)UJfzU5y!YGM9G3l~31sUp>8>to;}D{gFBc&GzWk#Ujl> zN>yY9lD7P;h#J%!x_=n+yi2q<-uvcx*OTw-e=glMzjXh%nrBODyW80Nx*s|0xhP%d zpnxxEm(-VuXV2OHv7HJywRcj%BCvV&t>n@#!+SvIvxb&+9;fw+l~;FxmU)E7WvN3( zVdT!hdtV=O_l*2yAo9oRfTzKR?&FPBUcKs+>8(G-ObI-fcj>6}lj0^Z)?0pV;A+Ef z{YwTe4bJL!9JF4R?-%5@WBrBK;VC`cYf5u0SiUvu7Oq@77Xa*B$k=!~UOrER=_ode z>y!lBMCk!WeEm&&6iX#&P)Vpstr)uB&;)@bE{5U+a;{t-Or(%u*#;seJ0cd#PQ`>c zvvH?NxO@5SKE+2u{8i!fHbQH&g>Nzl*%b_UF zXb&ST&7l9>!x)>TCpZeis7p6sgfxTD(z8ZG;Mj=2KHZ=(mxE&*LPJo5mNs%=HvCS= zP?$w`9Fj4WluaGdd9yr60k4$NEj}W@9r)B8d)5XVQ~N z#1Io-gzGR87nxr%B^SnUm5Sv>pa_ePpa{zc=MgN7fHBw$M{rE38U-cO8fjFE5e$@x z(z8ht7x7?~&G*&7>aUL$WXIJP>ebiorxNVKsBMI#ZV|o>CM%E zbIeqJ`fe_nDFnk47lBzY!a{hlu(wFS74Z>IE-d15AZP`0+kxU{q7 zKkW_H=O6h!y?y62F1H+z+*r7K+T@3p58HNE8@oL059F24^z)b@xRckqJ~1var?)&a z{`$6=v$k#Zuy-taHhDq9Rwvudrj0)3(Sp;?3bxuum$u+Dr_0AYmZRL-y1yI0yag)b zTR)mz5ET{Z=pJ8i;j0oQ6!<*a;dO5BmLIA&)LMrWkKeQ-DC5QTP zvAbIGg1;)!-sE4U3%6)I8gRR;V-e<7;}Ed%+qK<*)tct8ii7RquFi|sI-1ljFJA&@ zZyV0|PrqCO0Dz_Pvrq{j0A>PK-lX6q000y8VGE4_F!5vN83&Y=PXPeHik8WxRyS>( zCn0n96qlm_0Q^HH35@kQgU#!MBd|(<3rAVkPpy>Z`>_%&Q(!JPaaK^DKx4UK-_*|B nREf_^m&G5XwdG#SmmmNTGQ%#lMy&XpxgE=-5t98u$$9?=q*(1} diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan_detail.png index 92dedaa84466fe4034c8fc258e81a96d84d4aae4..6b907f54d3d2bc0d316f964edfb1f4ea85884bd6 100644 GIT binary patch delta 95 zcmaE+QaC{(l98E#fkD+aSBZgvfi1u%#MP&MrceD$yTcQvGB7YOl?3?(r%l*uJt>xf zfkDF4#W92HrR-B7)M>-7_@I#!SPEP=NB;R$-Ky?B=Y02^ z@1A?BZZD6Gj&ySw=>hVx6J;sqrd1|QIiYb%8emJDRde=!=kR^DZ#r&#PEK3dnRIlo?+@$T4|KHc;CmlU=+^ExO)c*pZnHLTJW?dU zy$&mL>*f_^O}>+YUC*1SN{u;RedUqg`2U`CyRxg=Y2S&aafXvQBe_O+5>j>XYg?t0 zTW!2GMw`O%@N_LJOm821e21i>ae}-eu+}}NQyO&UT*TkTnJ7yWk~<>c2I<+;#hMc#^bm+bltb?rQZV#op#r0jp83^4X9e;O|%8 zXe_LrEwmU~KN21gleCr zl*N?r(ibUYHv^<(2=~`kTwvE^?gwR7zcCO^5>kw~>@Go{pDKM{$FW zg%Ji7$+GH<0E3_qs}aM~NE%d;8cHvQ9v(ajffONzW((vTxiOqfp`x-(WL#FX63=I-}tvaKQq%qK{)9THrRSemAQN0;uKC>av?n0-Dp?G;L7;Z3;Ai_de99U|l zGI>z23m9Y~)Tlxd(Mw?>)M6-wrj00@ZLwHb7Cy^h(y+NAk%-OVv3We$M5tl&0zHjc zVZC`AL(#(_AFvX%8)^eA;<*;!PoiejB9m~c{>N$Tlw{V52%FW#78(%Q=*a5kwWb)=p)v$-tp zTT@2L zLuJ(&SrkQ}JdOathyVmu;UYeasCWUeh){`OwMs+^g(?n#sJQ(oVoa2V(qr2GSus=u zMW6^53q(X*1Xc@02#knC2rLpITsVLepu&YD&I!N+?NkJgMi@*wj21(b4%3iqqh4b- zFoL6Du`)5lV{zVmiPd7X+F;U&q3M)9!}`Xcq;zB)jWKF+0}u{RC=B56kwB3E=@&hV zG?^)bp5f$jSiGJTm}Oy#A@wxI^r;x?s}c=2kr-_-DGdg#7-CWanMiwkgF!uu5=EJ5 zgJ}WN@x47i1=IAr^=ttxWjBGKy=_qp@0rAmWs-zF|2`9*g6TCRA%=Q80%F3NFst=g4lh>Rj+1$F?!eHuf_XG-U;vJdMCV>>z(jku6M$Fx!wuy<$5RlnOrV! zEdNR5 z66rwi?Nf$L%1!ucrqdUlz6ceiNE|h&B|B$K;Y=rQP15MZL1B*^8_u4UU64-gp07w5 z)_y!ar1i$9*AF}9CM>T~U;D5$b!~CJv{9Kg)AbOPAKaDf%;)ic6Uhqd&HuPj|9#6r z=X1XV|K4%$G$9}SRC0Sx#YZC^4}N^9qTJl->%J>{)7W6&j|KO#8$M5*ow%rdlO_Jv zhOy%|toL;vR`_hhtc3Mmu4}BT0yoVNoc30*G=YZnS<}3lYke1Eoa*h9&0pRHRq+kO z$LGh!h7I$H&p*GdSOtZ>nBnniN&C8!yC{%T5Q_pQZ`4$kEZxeq1`Dhqv4 zs9Wsn_*qivyuJ4y;@4_611~kVrlvhVBS?P!MOSLv&@m1-t{rR4h>Lr&{wLE?iO+DjSE+=9o3Aq*?^`F z)0vP_&BXu!3|38xlmG%?EZ`)h1U3Kwh8Uyfm;qqu2h4B)Hg5V5001XiCYL(harO4} zb4(cavKat?Ph^rXW#AdSt7`Lx??N4tRi&QE{Ln(@g$cE;=T*tcwGp{@(=NM$bNF=* nE&0ahg1UjXD;>&)EGGaUs>bbS?@{YtGPh%yG+I(KB{};KgAnog diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_gray_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_gray_detail.png index f7daeba1984614baa75a8e35ad9b4145351a8140..4dbc15680bbc0e19b57fdf1e740163d0990cf3bd 100644 GIT binary patch delta 95 zcmcbwQaC{(l98E#fkD+aSBZgvfi1u%#MK83PD@3AB$!Hq{DRXaY_*;g%fP@O;pyTS t!V#UEz`)EW#>U9U#>&X%)1bx5z;D8^@>k(QUIqpR22WQ%mvv4FO#lEe70dtt literal 4703 zcmeHLdsGu=79RwGqNt$ALxpiz#n&V=d5~lvJQE}$G(tp#P?=07VSr@f%m4x3s4eQQ z3MwMPinfZ@#dhh@)uOd7DqXSlS>1xDtM$E#tcuo0?U{gx=j`b@{?Y&Voipbo-@W&D z@BMxE`_7qJp-r0V=@H-o0Dz|^UX=_0z%c%CcLe|-=+SE&00ulL)}?XDcp+$GXcLu3 zf?Sb}1W7w(0swpK{ff+nHgNFrE3?%bvo!82Ze$_i_UMgQg4^cO3m?R`*8SjeeDS~t z_XSbq`{qQNpD$7U$ezggC}-lJM!o!DNDV{mWI0=&_79-2Q9e0HaGBBjP3gB*wcdRv6JATXV#d1_zycr zoO*_d-q~_sXIpaD$m8{u(2g#bLk)g`%a`3h0EHFgH>dg~%t`$@X@lSX@npdH?6dnW z)?oUR2giL(pS%=}{8?~(L!-;#(VNC^*7;w%+PWk&>qd)jYh8W9hcEJ0Z*s#Y3_ofJ zJ6LnBG3ccK)Fs)SlT#nAQj~bgO7!dfTp`J++Pi^QGZs!iGBZjWd}6L@(tyT5@7-s& zY>p~8U9x25bNN!^^$}5}$libYdk+Jo-rHmTJuFY<{+Y9O>AfkNW(@;p2HMKMigy}y zt1@7V-~HIx{x@C11md;YiE{Ih7|$=6)c*#xtX7`aNp|PVNV)iVef+=F2@_MVCFhN= zShveZ%5T|Vz-*UHw?EnB}C9+rf=|xZ4T3Gvleg zt^>PV9~l$0bsnk7v{5^b?$HWgpYkSWDUI-)q2P#B@e z2#;_(X1CZZB!`1`OP-a*>`KVNi&H2Rk(I;ku$2ww zDY`jSBug-qjiYEQ$aCTbI-gTQkOv5YZ|bwy5)*srt!$491Z@%8ahnhoAVP~p*f)aZ z)CJt{N3gmg8!1dCSvsE~NOb{e<%0WC7>V9^TRxNLXvath$vo0RS~*sT3ea~_PSqr8 zdn0%W%#_9Eh_YL3?|5>Q>8)7rbi-R5?es0gZn5?9zT^F-cZah>BTPjT`FwdAl@j9f zV@8^wjF{u6ffUI_q(}mXqA~+4k&pQzmayUPyN(gnV+buRMmLYMDW^^>2r-b;DKt9qj-e7q5ro>Y$M>9qI z#P`g63~uiJ*L?)?D2E9I9b=2(M0XMvFCdMMM7<^=8@HNCqY~&m9p3z-GCDuQcirg zmcne3*9j4!Fe-vYVjU{OBq%0UOh!-)K_FpI!$SU4zv(!fKMjeAeKqNJ=yMJ5w~Hev zSrr%I5iab#u6i{4gVD1We=PcwychcAdN1_L^%Gt~*L$H~uJ^+4$>s6(g@?2n zl~5rR8PPV4_67i_bbX#{XL_)qif~Sh6%|)l4^EbLJTR!03n0N5B7Gb4ESw<(%Yfuj@zV zMqX~8cj=Jxvh)?ZOl^L(ITdB4>SMa%nS&2Pr4f&_+{GgC6NP4F6Fa}Xsrh1~`>Fp$ zJiT@MgfY?end;i?9iv8ex^|x5v7NmfGUV?i)ng+<0;RW0j;_(q(l5MTU6^)t)7aom zl_5jCR{b(EHNDbj@CJLiyn2T8gm1FIET`wDCiq;~AF>EXcGpi~Yi@#uw4>gCD%EPE zy~d@Lp8mYd07bu;G4%D~>l?q@zIL~J-0Ferx5gB_yt?RNV}@9UJ{Ujn)2J7#EQ;8*k2X}Ql^q*>3`Jr7cGw*7>J@PE7Sj?r z`a&510Ir6FsVYDUj0N0el=Kw<03X=mXR`n>XgL2k0aew0006jgnnbnRjlsUdCWb8f zU~(J)0AU(cv`*eaJnrn&5VZh;YTdu|uT?LLfc37~D1zvNV;)KKT-W~1zkPA8O8zP! ibHLp5i_a`mi2xwF-7}|X$YGd&JJzU^RC{8wN`3?WI@vM+ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_green_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_green_detail.png index fb54f942be2872a83811ec6a18cde6045b39d3f6..03b9943f12313f565f67774b41398285e5d969ce 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_lime_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_lime_detail.png index 963933572563e7d08979c1c002c688f0b4aee0d9..8b80407d3ca5e6bb271cdb10912dd6e693ded83a 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange_detail.png index 4894833f1f20d23b89b273b462e9bee265ccf99f..930992769a3f188200b55cba43384d33fa10397c 100644 GIT binary patch delta 95 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_purple_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_purple_detail.png index a3128409438a9e82d6367e4d6e9f84fcd2736d7e..a5685731ffb409efe57b7b2e749d766fefadadf6 100644 GIT binary patch delta 95 zcmaE+QaC{(l98E#fkD+aSBZgvfi1u%#I@djQ@#DBm#h^z3=9lRB|(0{X%n_uPl{z= zV36>1aSY*zPEKH8<`ZLMIslAktzT%{oJv`Kkwl*2ifaA%B^dsq*pCRc4nON_c(JV@z5dm3_(N1?u>LK?(EWl zF_#Yi*w>wMFfGS?>d=AKl7`*6vuA9X<+iu}W_F%IRMS4y*KKa^lSy%u-7?YAiY3oI zdh_??n+p#vOo0#Jg@-Wp2!)9FW;A!u6#E#o=Kt_vbiRrMe!P#WVeQ zzTsK&^>N$FWu0$t%qTwJI6l?RP|<#}H}eJIr=8W)VCXthUEf=DD6)omEn8juq&N9)kku|;hEnWdH4#_lIJ z3Dxt!nl%^g*RX<5+z-mh8hgVp{g!j2WLVFouhY|5k4I5P)}@ z&GnoRKGQ1Qw#fNP&RW2nJ8gc=g+!_Cx5L9Ww$EHIa0KV?)#qh}SWkG2Y?-@x>vu;t zKTTf~s{#wcmtS#D7sqWs(B!+oeWm$G{Je(4MaL8?x5pg56;piSV3XqLl!zm$)>}u* zP0L^Yr}b&w$_HPTaZ4Ihb&C=zDpeZ|7aJ#zTXEO4tvGRa>FL|8i<-O7zWRb_GgofN z=664wKJN9!qc@7``ENsKm0n+xe5YMo-l^#vwMZk6A)Xwr{pNUSx1!^GH{7?@ZSl=F zp!2wnq76&_v2jFo(t&dhXNAtgmX8|Ibk+Ux4-wPdAFhkmmUT(L2wjH!ZG4sAiT_re zZac^5l5;QhI-kTJWlrduerkN%nvkcnPNv*c^*C(#x+&G((;Thues!Y0WnpK|m1|Ym zErp@SC#J=urTYYU6l7lwZu5NM)SYJcuk#*`UHk6oDxaC3?ou&$05IB(jEth96kmxk zorZzpIwip{Y4iYX-o7S1iX{*fs3g>+RswaFpMgLUmp}`73Phm~B;v`C6$T<=MQ9|p zA^{WOkgt!uw@GZ$=rsg|f+kI()+jbfAPcToYZTMVObE1uPze$!N)ZMI>I?+PWpEh? zEHjbGY{>BUTDN=gbNg~QMp)J&F0Bw`|LCYuc#a20G! z)l#Sl)*3x&h<*$yVZ;oio+5Qxkj6xnx+F>hLG~aBzN=58S11PIwZ;JzFr9{JLiJ1* z17T`3%%K@ZN|sFhafUH6RZlR(38OB_fDy7}LQ8oLg}|}Fe0`E3(Lx8um_#C>A+(f{ z$zrfR*fLnI2pi0xB~X(Zy(P<}(SHz0k*fD%eZYqHSm+Eb#H7&=;(ieQj=Lq;qLEmt z!;SE5KT#2jEhKOu%tZtun2Tdv7*%pvFs9_HP`&_Rqau6=lw511 zP%TE#P$rF@L6W$bgLC*QM1a8@HVc8dm_P&z1#A&46!C-{6ysq+9ySDGu7OmOS~PKJ zRWuY%;$k7H#JM5?AIA8E5awbWB`o9$F_?{V_&X>oy|Wo*SL*1w4nO(yy~GU&qMQLUQ5CD6cx zyh|bfPqTP@j86~*3S*dv4|7#QAuK`!e3-8ip%~65P!6}B_#lc=r=n6&1L3bGw3Gx2 zCN+8s8*rLM%IOx;gV8DR1g#UoX2C2r%;rS01Y#an%;n5LSYiZ$m;;2F^r?Qw*qc5L z3dK-O`U8es1N7};NeY(+`Ph3i2d}FE&HiK?=*6FFpEmg@`y|&#*(bR^%09{UQT9o$ zkFrm4eU$x?T=wr@cnB>nfl?q}pHuBCrviZ0dNMFDOdc5c?lS=ZOv_!JD+#IebFW?+ zaS(F09<|9r2RQvDJ*Hs3&9-(gE*TOY>u%k+?rV>%`8KZV#S>$#{eK-^ zRaYm!CY#-}G(6tv!MWwWEq7M_yJC2HOy+m0=Fj&p`zAL-Rvo!wzQa#YhR=&QTMnD^ zQY7D0XjeP7P9G9&1b|WF=*J4!z2|cP z0Bk6^LT2;G!PSvJqx=#18~}h>a;bl$uogRd@^1bGKdU(9e#bbDUzY9am@K@bK0sgL*LCiJ>nO$RiRxb4gjh8(XU)va<%l^v0N4^Jr)qR?spU@{B!^S diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_red_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_red_detail.png index db44333b236b889c978025fa5d52a1a98badb03d..587fbdbdd49fd444ee8e07ff6edb75ec25de881b 100644 GIT binary patch delta 95 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 p=}@=I)DciQ=l*+7 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_silver_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_silver_detail.png index 8ff77440aa60fc1195c826381b8b67223208fe09..49d444b80fd94a61e405bf962e61cc29b540cc3b 100644 GIT binary patch delta 95 zcmaE;QaC{(l98E#fkD+aSBZgvfi1u%#C0YZL>%fl&cMLHR1)MDoHk*r^`uw^1_lXF w7sn8e=;Q%1x@=#a*K)lIj5wt6rswANl83)z!;6=ey^8 z_uN}`dxat@!qMKt9smGGS)?=?003v^vaL zzdQf9QaTdq0&jNQi!YxHmUq4ZPehD8zxmSrZHm&+nh4vn!O!9^M%Q%Qb-CD4^$H)m zD1dUkRNngLxi&X3u6|7YhE6T6QcRvOxJX4Xx=$ZhU}AG4$4?9J%b z>X#iAzJ77}S6j|c+*#k|oH5k!!<_@qrJd(SHwC;-yM0fcU*2(QdF-6TO+n?{Ln}XT zh!1bD-pFp-^zpPybKMUp^F;f7+t-|YINm4q*X(=EjgE6Sax}9GJgvEU$Jz_uo~zL8 z_T(R2mod%Zw{<^cUqcVM+X_lvKdwiceJb;pEU-$?Uc*UBDfcffetyY|XR1+*%Wdd* zxG<`G5qv7ZUYeh@Cnu?%*R012H;nxv+wLn~)gjv#1xe>``mw5bwNG+~3_kp^OZB<( z4Z-PWaAv5R*GeJCzZrGvu57c7k(c($g@qv z59D56z89$i&V=UQ@tBiel(4TzNhanso-iQ$ zl`1XPc=G#dH-TyR?qj15qWr1xX6c1I(Zr&OKkaf?+^wzNkWW}CE$a@M?n@vNWeJ09G2_D$P_9v(?G^#M#bWp3vdwu1_jy& zn8jv|UPICt%dAP&8pUP_XyFxWjbi3A2V_}X=miomUanw;=?o+bWut5u3O7^f2pDM3 z3NR2VakO+wFNJ|nNx&4E){8kDlgY$3@z^?pn!^=|L>w65AP8h2RFE-4OJin8YaGK+ z^l(T?BW|GdG^NwB7*0&7OQR(qXwPD?-sY##%jJFaT4S#YxK6_{V|osk4RbUaPX7oa z9iC4AeS|SKLr-#|Nuw^!fRo|rq?R7jpMt>q;`M2UR7*Jo&LLAt4XLG#94?#t-jES8 zxuP$Ekw8sp^p+^IM*p5CO{w0A^+WTQm|&b$A++o=hqM zneoMh4yOpQbV{3Me&-rXX~-BFW7OpOqc9>6@_8uYj|gDVJEvKs!AR+} z3?~<6BSMRXnHHuPQcGh@pGv^KD#c+25~Fp7Se-6a0x}7(m`F=|vjTc1C6Y4IIztB2 z@x47Cim7|vdX_*cWihc>mbMjRc+Vh4ES)4Q3G|up6illo2?^NSA#X#d|2J9w0s+hy z2_aO4av_vZA`qs+d5{PvFoaL|BN);nTOW&2r=m@mfecZTT3P}|P#V3Z8rFD=loQ_1 z#gsxaI>87R;vx{ji{%Q$e7=~6PK3E)7zR1L1#_5H{kGx&W;Mv={Wa-v=(i0pyNe|# zS~?}rK7iA=UG-}A52JT3{#kq&WI*^J*MRUrt^whLTm!-fxdwy}at#Q7Czt)Z0}rVs zB%lcl3M5hF761%dMumkbWMN@%{}2Gc_=3+1B$3C1y-p^@Yyn4F56iPtRYkc@qEuvbf|qqu&JyqZnYM1~d7~1nLmpb4XlRg~4WIftDLQ4ujbjUg zuC{)9<%reNIV-+ZwYXQzFD}RpKN*`j)8R)jH}Gk)9S`9>6Up+98$WA3e!A(f-LH=W z|7>foCFC|Qq`%MJ>goE(=Fx?%TZ~tIo%ZCEjt=zwnBSgrVr4>H!lE0crub_mqsNr2 z^K}}L|I&5VoOL4|)|d;0r8D@oZqaPDP`7Z_w2>DN`Yy)c>YbB}Ww%+%_!BNZxe7(d zh_UgxXSNq8!H`!ohIeP(So_~CtE%m$d~IE{F*N=4wZ#t)&*cfY_s3ap4t|xdS?pky zJ+C5hf5!v7Wmh@yMtyDSg3daAa_8!&^J9j24{B}s`D9v5%=4_eQ5D^?wT_nxUZcwr zoXkO+byKa590+b(-!d2X-ZnhA@KD}wfbH_1Bfr_(B)Qsp_HxTnwMSPMP~T>#3-Y>H z004lEa$1BG-~*!pTLH!I0svsBK617Z0EYdGxds92OWgqgu%%`4aNAoBZq5R*1-#}8 z0KjCKG$dA7hnI?sDi15`tQFazSq%ULKBcZB!TH(Q*F8q8-;MFIh=z8XgfTULG_||r gZnpVyoKN8(;LZ-G84gXyOw8$679J(t6`Gv$7e9*X3;+NC diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_white_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_white_detail.png index baddd95eb50e521fff4980e00b182639fa1c9206..e7e0db92d08c9f7c14c0b0ec193609130bea2d33 100644 GIT binary patch delta 95 zcmaE)QaC{(l98E#fkD+aSBZgvfi1u%#PvTIgw}k`VPIfjDhcunPMfgRdQvO{1A~O8 wi(?2!baDa%GoKh6BOeO za0VU^byVE-J;fc=H!d}ff{d~Vu81oP&kY$~bwGrwS5w80`NyfcRo#8Q^WAg4d+x2e zy(T;?#LmXW1^@s%S!kdF0D!U7u(kvM!1ebY7yw4LXGBJm3OJ3X(-SH@8KaTuI*f)H zaTNd<@4ehM_elM8+uZvxLEExCR#xko+lyY6Tzk!^m(9`NTHVl9Q?z~jq4PfeuA4kw zo?CvP)6AK7@TWcLn&Yat^1{oL9DjLQyRld=>Ui#UfBKlWBoV*eyu5hhqJw`3W z(zfTBvzzPus<*%0yjuQxj{j08hsi<97Wuz)aF9-Db!dHhOs~-{-hJq$T10T#e-A5g z%p|+&kGf?9A8!2+`lHJu>FCT!C*RL|7*hH3*M%Jsoevi!eH1@g7t^V* zZ_ALk@e9jxmruyeE0y>iR8>`MI^@ptxUzS0v<+wDX*avX>hs6<-27)){@b#N+-7Bq zh)E%QgnLftxCpz z$Jp#?U6QCb`Jx;tJhLa3SWI$! zeA4RYCsVSJ&w!d1@$42m^Uy-i;zyw3!evqJWv}3n`BAx| z3md9zJtC*SEm{$7wO=vr`IWVZU5X>LcR_8$@&0VmC*{oN7Drcwfcx-KlW*)~1qRXPz`P zD5NrCMeU2JeoKlIm}bndRlW@)M>uhAFY?Il={1tZoGNU-D8x`4|Qa8v@$=gFCJT>zGVhi2%ph>WmEBqIqCp`ee{ z#@i@1YIGWmglR@iveqCrN3Ij z0jc@LD1qRp*z_nAs8l?Z!-6;%iwAMpFb@(5F#*IEaJeD@2W6`S*Z?Y-)Zs8Adg zV>~5~k6|dpVzY!0mxpp8A&My>1m-e191(}dwZsAZvw!L%ey^{E8xjWB9-;s8AclY~B!Ad)2@l>m*3G_^O)yLVAS zaRW){)2WW{>v?}z-TT(N1(I=-i$*iGtr$jnCo#aO7-~wO--RT=S~Z4Bz`hRo9D@I! z#exw5tb$cMNW@pMAue0Rhm^324Z$1?;iG&32ZfQr>;^(bronp5PmO6w2^fNFbf#)( z(@au+Js6#qfKfUz*(`{~hS;1)mO#v7i@8ECCQHm@f{ea`8Pu-+T(LK`8|3nVn)Ct& z90SzpVhU0O21{+c8U4pqpJsot^{vHUYr~Ta$%f?`k`2o>Bpa4%NH#3jkZf44A=#hF zW%K32gK1F-mc*L&&pZ7a8jIw-y5^)8#iRX2F?1k zSdn1=@WK+Grp9j@&X}!Su;wRK{rHl^tp#~Omm)Lf*`5aTq@D5B95&~_BH7w1!_vm8 zD|MCDzjR37J#D>;$}QgqK8V>h!KvM{y=GUrp~-Xf;hbVOspn)~YfkmXxcPC*9~P%Y zHy63N7j5?(ZJ+T`eS*M9p@*^KZ{gn7OZFhGFLunlifD z!6Pp`+|PbWbl%Oq1xnDbYwnnytcTnFQ@&}Rb?^p@?@IksKQ(8*sf^_aSg)p9l=*h$ zYcg%kvKN*tI{xxCQh(q_;16~4tfY_Ec<~>%bS6fOavjlFfBsTRM8w;yYm-WPWZUfS z7JTBaiW_b8DI;c?o%xsV(;fA(i0ke#zMD_2y$@KeJ|FtSkvd6JMZh(~l=XC=B@Hbs(i~#^feMOBCz>eba003B#GI@~IV_WC3 zT&CHHi#q`Tm?;bNixgf%KK1lux|msHt;zP!x&c67C*H#L&Ckwmak1ZV5awi|H(D*@ o+%G<>Yjwygvs^dTWAg~0>gbpi-GMPTsoSwEC@k=Re|*mW01C3}!~g&Q diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow_detail.png index 83eedf08ba3242e137825a002e6aed13fbe086fb..b3fc7c8933760046e65e536cd552c125bf75fcee 100644 GIT binary patch delta 95 zcmV-l0HFWoByo@!Spfq8001RDZ6W{w00vM@R7K_GGv(zo(zICW00002bW%=JW{|Zz zl3f4*02oO`K~xA^V_*OS4i*Lh4h97Q226k|1pp5;0IB+M;SB%)002ovPDHLkV1oXE B8I1q{ literal 4710 zcmeHLdr%Ws7hgo4iUJius~=&}g5r`l36X^NBPs|16%Zer-Az~_*^n$GXhj9I2t^(~ zKt4pMRa8W%q6N`H1qKzZRY6pQ`bKMg^}`op?QB5BnQuDdAN`Nt%$?cYd(Q8i^SkHX znY$Z9Ljo<#Cz}HRU?C3jlK=ojf1V&*-owt2MLwtET%Z1l*q9`Msv3#AU&-hdO zYu@#1cdyCaTUY+wy(1k(d2?K{XHPCU-=34Nc0coQy65EiFGww8UTX9&i>f+beY4}w z&DM!EeOb9V709Z`v3D=Nv~>`fC;;ntSEN;gX!KuU>!e zoatHr_EERxiG78Eg<6Nx&QSxT*R8T?Q>T8LZxm9dh^>g&0`prebF~S_!qWm>Vj#jq z7*@Bqucu@wZu8TIQ*(14E@?R8bg^JuUGL2*wrxZ7Ks-;lTavOd#Un0wS!>Y`nM-H- zEUEGrZd2DVluZ+uN1X0=#Oo$lC*9fb$CVDl#qhm6-W~63yV{91MeX>7l=d{^m|4f2 z+&G0MrW-D_)IQ6-u?V~*-TYPflo*rhF$cbW35bVbM6>qUvS^n**g zub)UJu8%I*bM)GQVQdt->Yx#$`&P` zX@1LmSo7fUxt}g=s;ntk^72^M<5gX6PA*)WzcA|9?}zSIRHlU2SEsajmIl~zML{iI z_4|Ha@gldhHiT1XU{~%#Q?3KPEJ}+?nz=qLhS6rhD{*cTTgW!2+L>_s9jOreLdUfxMP1nBNS(acqdpNj1TF7mN2d$;}9llGR+cHSVG4ECl@Nc#R209Z`MBO=Mj;CTXsP`JV< zA;nyE3Kc-X!&9e%kvNQ`NijLD6oOCc8$cS43c*F(U`DXY7mLM%R;sb^l_3$x$~eRw z1wBRP9y)0bDD=5l?fz%0YemOR3-#tNm3=C)3sWytCsCbsO5B~ySqD`!J@NRkQ$Xinq(yj z>ma4Zk)jyn@WV8S8ds4xp`=lqu#`w7g&=57qtV{yr%(k4f1p=thEzZZ1ziWL=uB4z zU7?^4_t233N#s9!Xd;qT7+r#Ch(tAl`6ppY(s4KiihS@_C931~<)8>1i^mk0lGM^A@1;|yKCvWm*+;QHsfL=-moq#OokI12_Y>>)wd;-b8VURe zB#}x_>?Z`N_yUwba8#gwWNjrVFvMqa*^rEdvN0ZmAw_r$Jr#-w0tmGNCWRobfaMrn zrIhO@D8U8Zp<*G(ave0)e+i9;Ng1J52*G){GEw)@Gy+#(;Ur9{$#ml|SUf)0oy}%* z_&m3dMhh{u1}BshCzIjI8mxv|7OEIbNy1d03PGmcL#I#)eAO6C66y$oh!=uX0yN4~ z-`+Hj!9@weH6)=OrC)2CSbE&7)$|!0n&#Grc=B6eZ?Ns zZU_z@uF0Umuw#HaUGz>8zW|ZB2mQlwHKf_UjG?vocQF#=voIppXJJIH&%%gYpM?>* zJ_{pqeHQ*nF7uBU9!!Y}K`rPhk~no01AxJL+}Af$?CbmfHvs@R=dI2Y1~qw2X;~J& z8?-SRlW8j38#2+)f3$6-kJZfd=&}VSn;$xH@E}Rd6r;}6H2bUtCbse=Q)7(0pBgrw zJ14&2KWAW>B-ZNo&k3GA-K(yjFiel$xKGw)SGrTNYWGUM0%c~a2(P1yK%Yi}2v+MQcr8nDS|OPNp7z>PIe>ld?m z%*S6D?ecn)rC2l8aNUy9rAHn;LAnm^1pboWm=o9E#$DdOxo<`I7<+^6uEv(c@bDLF z+oqPj6Bk%q%^TpXj~S=)+(pbWJn^GfZ&BA`#J+sISN^fg-vEbqagBFI?+t zkWYU57C76hZu6XSIS&8;W9i&LKY$B3046+~`xXEIGgVNO1^~u~C^+tgR*Aq2+KT0sz2lv7dJYzYY1izn!1GZd7BlmqVj$?L@2o8r7uImc~X^w&}Uf v>PcRQWTfFitDAjsq*-&AVZayGrvc#TjB#m8ZIez?w_~w?h~Gh<<*9!I Date: Wed, 9 Feb 2022 18:19:46 +0100 Subject: [PATCH 14/27] attemp to fix lanterns placement --- mods/ITEMS/mcl_lanterns/init.lua | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua index e6707b075..aee6981d0 100644 --- a/mods/ITEMS/mcl_lanterns/init.lua +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -9,6 +9,53 @@ TODO: - remove the hack arround walmounted nodes ]] +local function check_placement(node, wdir) + local nn = node.name + local def = minetest.registered_nodes[nn] + + if not def then + return false + else + if wdir == 0 then + if nn ~= "mcl_core:ice" and + nn ~= "mcl_nether:soul_sand" and + nn ~= "mcl_mobspawners:spawner" and + nn ~= "mcl_core:barrier" and + nn ~= "mcl_end:chorus_flower" and + nn ~= "mcl_end:chorus_flower_dead" and + (not def.groups.anvil) and + (not def.groups.wall) and + (not def.groups.glass) and + ((not def.groups.solid) or (not def.groups.opaque)) then + return false + else + return true + end + else --assuming wdir == 1 + if nn ~= "mcl_core:ice" and + nn ~= "mcl_nether:soul_sand" and + nn ~= "mcl_mobspawners:spawner" and + nn ~= "mcl_core:barrier" and + nn ~= "mcl_end:chorus_flower" and + nn ~= "mcl_end:chorus_flower_dead" and + nn ~= "mcl_end:end_rod" and + nn ~= "mcl_core:grass_path" and + (not def.groups.anvil) and + (not def.groups.wall) and + (not def.groups.glass) and + (not def.groups.fence) and + (not def.groups.fence_gate) and + (not def.groups.soil) and + (not def.groups.pane) and + ((not def.groups.solid) or (not def.groups.opaque)) then + return false + else + return true + end + end + end +end + function mcl_lanterns.register_lantern(name, def) local itemstring_floor = "mcl_lanterns:"..name.."_floor" local itemstring_ceiling = "mcl_lanterns:"..name.."_ceiling" @@ -61,9 +108,15 @@ function mcl_lanterns.register_lantern(name, def) local under = pointed_thing.under local above = pointed_thing.above + local node = minetest.get_node(under) local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) local fakestack = itemstack + + if check_placement(node, wdir) == false then + return itemstack + end + if wdir == 0 then fakestack:set_name(itemstring_ceiling) elseif wdir == 1 then From 8817d51d64b8820be775de9eb8c491dc3a149f5e Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 9 Feb 2022 22:11:50 +0100 Subject: [PATCH 15/27] minecraft like lanterns placement limitations --- mods/ITEMS/mcl_lanterns/init.lua | 86 +++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 30 deletions(-) diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua index aee6981d0..d7a5312a4 100644 --- a/mods/ITEMS/mcl_lanterns/init.lua +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -9,6 +9,33 @@ TODO: - remove the hack arround walmounted nodes ]] +local allowed_non_solid_nodes_floor = { + "mcl_core:ice", + "mcl_nether:soul_sand", + "mcl_mobspawners:spawner", + "mcl_core:barrier", + "mcl_end:chorus_flower", + "mcl_end:chorus_flower_dead", + "mcl_end:end_rod", + "mcl_end:dragon_egg", + "mcl_portals:end_portal_frame_eye", +} + +local allowed_non_solid_groups_floor = {"anvil", "wall", "glass", "fence", "fence_gate", "pane"} + +local allowed_non_solid_nodes_ceiling = { + "mcl_core:ice", + "mcl_nether:soul_sand", + "mcl_mobspawners:spawner", + "mcl_core:barrier", + "mcl_end:chorus_flower", + "mcl_end:chorus_flower_dead", + "mcl_end:end_rod", + "mcl_core:grass_path", +} + +local allowed_non_solid_groups_ceiling = {"anvil", "wall", "glass", "fence", "fence_gate", "soil", "pane", "end_portal_frame"} + local function check_placement(node, wdir) local nn = node.name local def = minetest.registered_nodes[nn] @@ -16,41 +43,40 @@ local function check_placement(node, wdir) if not def then return false else + --wdir: + --0: ceiling + --1: floor if wdir == 0 then - if nn ~= "mcl_core:ice" and - nn ~= "mcl_nether:soul_sand" and - nn ~= "mcl_mobspawners:spawner" and - nn ~= "mcl_core:barrier" and - nn ~= "mcl_end:chorus_flower" and - nn ~= "mcl_end:chorus_flower_dead" and - (not def.groups.anvil) and - (not def.groups.wall) and - (not def.groups.glass) and - ((not def.groups.solid) or (not def.groups.opaque)) then - return false - else + if def.groups.solid or def.groups.opaque then return true + else + for _,i in ipairs(allowed_non_solid_nodes_ceiling) do + if nn == i then + return true + end + end + for _,j in ipairs(allowed_non_solid_groups_ceiling) do + if def.groups[j] then + return true + end + end + return false end else --assuming wdir == 1 - if nn ~= "mcl_core:ice" and - nn ~= "mcl_nether:soul_sand" and - nn ~= "mcl_mobspawners:spawner" and - nn ~= "mcl_core:barrier" and - nn ~= "mcl_end:chorus_flower" and - nn ~= "mcl_end:chorus_flower_dead" and - nn ~= "mcl_end:end_rod" and - nn ~= "mcl_core:grass_path" and - (not def.groups.anvil) and - (not def.groups.wall) and - (not def.groups.glass) and - (not def.groups.fence) and - (not def.groups.fence_gate) and - (not def.groups.soil) and - (not def.groups.pane) and - ((not def.groups.solid) or (not def.groups.opaque)) then - return false - else + if def.groups.solid or def.groups.opaque then return true + else + for _,i in ipairs(allowed_non_solid_nodes_floor) do + if nn == i then + return true + end + end + for _,j in ipairs(allowed_non_solid_groups_floor) do + if def.groups[j] then + return true + end + end + return false end end end From 749d4f1a4b4b41e401a1e7b9055680686149e8d4 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 9 Feb 2022 22:15:44 +0100 Subject: [PATCH 16/27] add lanterns translation template --- mods/ITEMS/mcl_lanterns/locale/template.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 mods/ITEMS/mcl_lanterns/locale/template.txt diff --git a/mods/ITEMS/mcl_lanterns/locale/template.txt b/mods/ITEMS/mcl_lanterns/locale/template.txt new file mode 100644 index 000000000..545118b54 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/locale/template.txt @@ -0,0 +1,6 @@ +# textdomain: mcl_lanterns +Lantern= +Soul Lantern= +Lanterns are light sources which can be placed on the top or the bottom of most blocks.= +Chain= +Chains are metallic decoration blocks.= \ No newline at end of file From 23873f31f1c84fece9bf5b6c3264b5a7849c9d38 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 9 Feb 2022 22:19:24 +0100 Subject: [PATCH 17/27] add french translation of `mcl_lanterns` --- mods/ITEMS/mcl_lanterns/locale/mcl_lanterns.fr.tr | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 mods/ITEMS/mcl_lanterns/locale/mcl_lanterns.fr.tr diff --git a/mods/ITEMS/mcl_lanterns/locale/mcl_lanterns.fr.tr b/mods/ITEMS/mcl_lanterns/locale/mcl_lanterns.fr.tr new file mode 100644 index 000000000..b28822b75 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/locale/mcl_lanterns.fr.tr @@ -0,0 +1,6 @@ +# textdomain: mcl_lanterns +Lantern=Lanterne +Soul Lantern=Lanterne des âmes +Lanterns are light sources which can be placed on the top or the bottom of most blocks.=Les lanternes sont des blocs lumineux qui peuvent être placés au dessus ou en dessous de la plupart des blocs. +Chain=Chaîne +Chains are metallic decoration blocks.=La chaîne est un bloc de décoration métalique. \ No newline at end of file From 2690094a95fc7de9c0ae10d8ae0c86f10bc49544 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Thu, 10 Feb 2022 11:45:08 +0100 Subject: [PATCH 18/27] allow placement of lanterns on chains --- mods/ITEMS/mcl_lanterns/init.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua index d7a5312a4..65faa5e8c 100644 --- a/mods/ITEMS/mcl_lanterns/init.lua +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -19,6 +19,7 @@ local allowed_non_solid_nodes_floor = { "mcl_end:end_rod", "mcl_end:dragon_egg", "mcl_portals:end_portal_frame_eye", + "mcl_lanterns:chain" } local allowed_non_solid_groups_floor = {"anvil", "wall", "glass", "fence", "fence_gate", "pane"} @@ -32,6 +33,7 @@ local allowed_non_solid_nodes_ceiling = { "mcl_end:chorus_flower_dead", "mcl_end:end_rod", "mcl_core:grass_path", + "mcl_lanterns:chain" } local allowed_non_solid_groups_ceiling = {"anvil", "wall", "glass", "fence", "fence_gate", "soil", "pane", "end_portal_frame"} From d898b02c8bfe192f1647533094a4dfcc85b756d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20=C3=85str=C3=B6m?= Date: Sat, 12 Feb 2022 19:29:17 +0100 Subject: [PATCH 19/27] Fix #1922 --- mods/ITEMS/mcl_enchanting/engine.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_enchanting/engine.lua b/mods/ITEMS/mcl_enchanting/engine.lua index 97a176b97..095145775 100644 --- a/mods/ITEMS/mcl_enchanting/engine.lua +++ b/mods/ITEMS/mcl_enchanting/engine.lua @@ -14,10 +14,11 @@ end function mcl_enchanting.unload_enchantments(itemstack) local itemdef = itemstack:get_definition() - if itemdef.tool_capabilities then - itemstack:get_meta():set_tool_capabilities(nil) - end local meta = itemstack:get_meta() + if itemdef.tool_capabilities then + meta:set_tool_capabilities(nil) + meta:set_string("groupcaps_hash", "") + end if meta:get_string("name") == "" then meta:set_string("description", "") meta:set_string("groupcaps_hash", "") From a6c5c8a72a569bd3c04080bdd159e8c20e315890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20=C3=85str=C3=B6m?= Date: Sat, 12 Feb 2022 19:41:22 +0100 Subject: [PATCH 20/27] Call update_groupcaps from load_enchantments This avoids the need to call the function from on_enchant for unbreaking and efficiency. --- mods/ITEMS/mcl_enchanting/enchantments.lua | 9 +++++---- mods/ITEMS/mcl_enchanting/engine.lua | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mods/ITEMS/mcl_enchanting/enchantments.lua b/mods/ITEMS/mcl_enchanting/enchantments.lua index e876baf31..564d4b0d8 100644 --- a/mods/ITEMS/mcl_enchanting/enchantments.lua +++ b/mods/ITEMS/mcl_enchanting/enchantments.lua @@ -97,8 +97,9 @@ mcl_enchanting.enchantments.efficiency = { weight = 10, description = S("Increases mining speed."), curse = false, - on_enchant = function(itemstack, level) - mcl_enchanting.update_groupcaps(itemstack) + on_enchant = function() + -- Updating digging speed is handled by update_groupcaps which + -- is called from load_enchantments. end, requires_tool = false, treasure = false, @@ -671,8 +672,8 @@ mcl_enchanting.enchantments.unbreaking = { tool_capabilities.punch_attack_uses = tool_capabilities.punch_attack_uses * (1 + level) itemstack:get_meta():set_tool_capabilities(tool_capabilities) - -- Unbreaking for groupcaps is handled in this function. - mcl_enchanting.update_groupcaps(itemstack) + -- Updating digging durability is handled by update_groupcaps + -- which is called from load_enchantments. end, requires_tool = true, treasure = false, diff --git a/mods/ITEMS/mcl_enchanting/engine.lua b/mods/ITEMS/mcl_enchanting/engine.lua index 095145775..e47cf0650 100644 --- a/mods/ITEMS/mcl_enchanting/engine.lua +++ b/mods/ITEMS/mcl_enchanting/engine.lua @@ -34,6 +34,7 @@ function mcl_enchanting.load_enchantments(itemstack, enchantments) enchantment_def.on_enchant(itemstack, level) end end + mcl_enchanting.update_groupcaps(itemstack) end tt.reload_itemstack_description(itemstack) end From 4ca89cfcaee19fc2b816efc966d01827b26dc54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20=C3=85str=C3=B6m?= Date: Sat, 12 Feb 2022 20:08:03 +0100 Subject: [PATCH 21/27] Update groupcaps_hash function to minetest.sha1 --- mods/ITEMS/mcl_enchanting/groupcaps.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mods/ITEMS/mcl_enchanting/groupcaps.lua b/mods/ITEMS/mcl_enchanting/groupcaps.lua index a445b73f2..ec8d11d21 100644 --- a/mods/ITEMS/mcl_enchanting/groupcaps.lua +++ b/mods/ITEMS/mcl_enchanting/groupcaps.lua @@ -2,10 +2,7 @@ local groupcaps_cache = {} -- Compute a hash value. function compute_hash(value) - -- minetest.get_password_hash is quite fast, even if it uses a - -- cryptographic hashing function (SHA-1). It is written in C++ and it - -- is probably hard to write a faster hashing function in Lua. - return string.sub(minetest.get_password_hash("ryvnf", minetest.serialize(value)), 1, 8) + return string.sub(minetest.sha1(minetest.serialize(value)), 1, 8) end -- Get the groupcaps and hash for an enchanted tool. If this function is called From 2b820d7756ea1c735a4dec0912fc02b3ce4b4856 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 23 Nov 2021 01:13:40 +0100 Subject: [PATCH 22/27] `mcl_armor.register_set()` documentation --- mods/ITEMS/mcl_armor/API.md | 141 ++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 mods/ITEMS/mcl_armor/API.md diff --git a/mods/ITEMS/mcl_armor/API.md b/mods/ITEMS/mcl_armor/API.md new file mode 100644 index 000000000..a269edd81 --- /dev/null +++ b/mods/ITEMS/mcl_armor/API.md @@ -0,0 +1,141 @@ +# mcl_armor + +## `mcl_armor.register_set(def)` + +This function register a set of armor (head, torso, leggings, feets) using a definition table: + +```lua +mcl_armor.register_set({ + --name of the armor material (used for generating itemstrings) + name = "dummy_armor", + + --description of the armor material + --do NOT localize this string, it will be concatenated will each piece of armor's description and result will be automatically fetched from your mod's translation files + description = "Dummy Armor", + + --overide description of each armor piece + --do NOT localize this string + descriptions = { + head = "Cap", --default: "Helmet" + torso = "Tunic", --default: "Chestplate" + legs = "Pants", --default: "Leggings" + feet = "Shoes", --default: "Boots" + }, + + --this is used to calculate each armor piece durability with the minecraft algorithm + --head durability = durability * 0.6857 + 1 + --torso durability = durability * 1.0 + 1 + --legs durability = durability * 0.9375 + 1 + --feet durability = durability * 0.8125 + 1 + durability = 80, + + --this is used then you need to specify the durability of each piece of armor + --this field have the priority over the durability one + --if the durability of some pieces of armor isn't specified in this field, the durability field will be used insteed + durabilities = { + head = 200, + torso = 500, + legs = 400, + feet = 300, + }, + + --this define how good enchants you will get then enchanting one piece of the armor in an enchanting table + --if set to zero or nil, the armor will not be enchantable + enchantability = 15, + + --this define how much each piece of armor protect the player + --these points will be shown in the HUD (chestplate bar above the health bar) + points = { + head = 1, + torso = 3, + legs = 2, + feet = 1, + }, + + --this attribute reduce strong damage even more + --See https://minecraft.fandom.com/wiki/Armor#Armor_toughness for more explanations + --default: 0 + toughness = 2, + + --this field is used to specify some items groups that will be added to each piece of armor + --please note that some groups do NOT need to be added by hand, because they are already handeled by the register function: + --(armor, combat_armor, armor_, combat_armor_, mcl_armor_points, mcl_armor_toughness, mcl_armor_uses, enchantability) + groups = {op_armor = 1}, + + --specify textures that will be overlayed on the entity wearing the armor + --these fields have default values and its recommanded to keep the code clean by just using the default name for your textures + textures = { + head = "dummy_texture.png", --default: "_helmet_.png" + torso = "dummy_texture.png", --default: "_chestplate_.png" + legs = "dummy_texture.png", --default: "_leggings_.png" + feet = "dummy_texture.png", --default: "_boots_.png" + }, + --you can also define these fields as functions, that will be called each time the API function mcl_armor.update(obj) is called (every time you equip/unequip some armor piece, take damage, and more) + --note that the enchanting overlay will not appear unless you implement it in the function + --this allow to make armors where the textures change whitout needing to register many other armors with different textures + textures = { + head = function(obj, itemstack) + if mcl_enchanting.is_enchanted(itemstack) then + return "dummy_texture.png^"..mcl_enchanting.overlay + else + return "dummy_texture.png" + end + end, + }, + + --WARNING: 2d preview will be deprecated soon + --specify textures that will be shown in player inventory then you disabled the 3d player inventory preview + --its similar to how works the textures field + previews = { + head = "dummy_texture.png", --default: "_helmet__preview.png" + torso = "dummy_texture.png", --default: "_chestplate__preview.png" + legs = "dummy_texture.png", --default: "_leggings__preview.png" + feet = "dummy_texture.png", --default: "_boots__preview.png" + }, + + --inventory textures aren't definable using a table similar to textures or previews + --you are forced to use the default texture names which are: + --head: "_inv_helmet_.png + --torso: "_inv_chestplate_.png + --legs: "_inv_leggings_.png + --feet: "_inv_boots_.png + + --this callback table allow you to define functions that will be called each time an entity equip an armor piece or the mcl_armor.on_equip() function is called + --the functions accept two arguments: obj and itemstack + on_equip_callbacks = { + head = function(obj, itemstack) + --do stuff + end, + }, + + --this callback table allow you to define functions that will be called each time an entity unequip an armor piece or the mcl_armor.on_unequip() function is called + --the functions accept two arguments: obj and itemstack + on_unequip_callbacks = { + head = function(obj, itemstack) + --do stuff + end, + }, + + --this callback table allow you to define functions that will be called then an armor piece break + --the functions accept one arguments: obj + --the itemstack isn't sended due to how minetest handle items which have a zero durability + on_break_callbacks = { + head = function(obj) + --do stuff + end, + }, + + --this is used to generate automaticaly armor crafts based on each element type folowing the regular minecraft pattern + --if set to nil no craft will be added + craft_material = "mcl_mobitems:leather", + + --this is used to generate cooking crafts for each piece of armor + --if set to nil no craft will be added + cook_material = "mcl_core:gold_nugget", --cooking any piece of this armor will output a gold nugged + + --this is used for allowing each piece of the armor to be repaired by using an anvil with repair_material as aditionnal material + --it basicaly set the _repair_material item field of each piece of the armor + --if set to nil no repair material will be added + repair_material = "mcl_core:iron_ingot", +}) +``` \ No newline at end of file From 13f8fd457c2545a3e7b81ad742f48b375982eef6 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 30 Nov 2021 19:45:12 +0100 Subject: [PATCH 23/27] document manual armor creation --- mods/ITEMS/mcl_armor/API.md | 72 +++++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_armor/API.md b/mods/ITEMS/mcl_armor/API.md index a269edd81..1b9f1a12c 100644 --- a/mods/ITEMS/mcl_armor/API.md +++ b/mods/ITEMS/mcl_armor/API.md @@ -1,8 +1,16 @@ # mcl_armor -## `mcl_armor.register_set(def)` +This mod implement the ability of creating armors. -This function register a set of armor (head, torso, leggings, feets) using a definition table: +Armors are basically items that a player can equip on four different slots on him (head, feet, torso and feet) to get advantages. + +These armors have also a texture which is visible to other players, inside inventory or in 3rd person view. + +## Creating an Armor Set + +The `mcl_armor.register_set()` function aims to simplificate the process of creating a full set of armor. + +This function register a four piece of armor (head, torso, leggings, feets) using a definition table: ```lua mcl_armor.register_set({ @@ -138,4 +146,64 @@ mcl_armor.register_set({ --if set to nil no repair material will be added repair_material = "mcl_core:iron_ingot", }) +``` + +## Creating an Armor Piece + +If you don't want to register a full set of armor, then you will need to manually register your own single item. + +```lua +minetest.register_tool("dummy_mod:random_armor", { + description = S("Random Armor"), + + --these two item fields are used for ingame documentation + --the mcl_armor.longdesc and mcl_armor.usage vars contains the basic usage and purpose of a piece of armor + --these vars may not be enough for that you want to do, so you may add some extra informations like that: + --_doc_items_longdesc = mcl_armor.longdesc.." "..S("Some extra informations.") + _doc_items_longdesc = mcl_armor.longdesc, + _doc_items_usagehelp = mcl_armor.usage, + + --this field is similar to any item definition in minetest + --it just set the image shown then the armor is dropped as an item or inside an inventory + inventory_image = "mcl_armor_inv_elytra.png", + + --this field is used by minetest internally and also by some helper functions + --in order for the tool to be shown is the right creative inventory tab, the right groups should be added + --mcl_armor_uses is required to give your armor a durability + --in that case, tha armor can be worn by 10 points before breaking + groups = {armor = 1, non_combat_armor = 1, armor_torso = 1, non_combat_torso = 1, mcl_armor_uses = 10}, + + --this table is used by minetest for seraching item specific sounds + --the _mcl_armor_equip and _mcl_armor_unequip are used by the armor implementation to play sounds on equip and unequip + --note that you don't need to provide any file extention + sounds = { + _mcl_armor_equip = "mcl_armor_equip_leather", + _mcl_armor_unequip = "mcl_armor_unequip_leather", + }, + + --these fields should be initialised like that in most cases + --mcl_armor.equip_on_use is a function that try to equip the piece of armor you have in hand inside the right armor slot if the slot is empty + on_place = mcl_armor.equip_on_use, + on_secondary_use = mcl_armor.equip_on_use, + + --this field define that the tool is ACTUALLY an armor piece and in which armor slot you can put it + --it should be set to "head", "torso", "legs" or "feet" + _mcl_armor_element = "torso", + + + --this field is used to provide the texture that will be overlayed on the object (player or mob) skin + --this field can be a texture name or a function that will be called each time the mcl_armor.update(obj) function is called + --see the mcl_armor.register_set() documentation for more explanations + _mcl_armor_texture = "mcl_armor_elytra.png" + + --callbacks + --see the mcl_armor.register_set() documentation for more explanations + + _on_equip = function(obj, itemstack) + end, + _on_unequip = function(obj, itemstack) + end, + _on_break = function(obj) + end, +}) ``` \ No newline at end of file From 5aa18d573e66c8869481f6fd315153dd9a0e409d Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 30 Nov 2021 23:46:41 +0100 Subject: [PATCH 24/27] document mcl_armor function (WIP) --- mods/ITEMS/mcl_armor/API.md | 99 +++++++++++++++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_armor/API.md b/mods/ITEMS/mcl_armor/API.md index 1b9f1a12c..c06fd8a3b 100644 --- a/mods/ITEMS/mcl_armor/API.md +++ b/mods/ITEMS/mcl_armor/API.md @@ -169,8 +169,9 @@ minetest.register_tool("dummy_mod:random_armor", { --this field is used by minetest internally and also by some helper functions --in order for the tool to be shown is the right creative inventory tab, the right groups should be added - --mcl_armor_uses is required to give your armor a durability - --in that case, tha armor can be worn by 10 points before breaking + --"mcl_armor_uses" is required to give your armor a durability + --in that case, the armor can be worn by 10 points before breaking + --if you want the armor to be enchantable, you should also add the "enchantability" group, with the highest number the better enchants you can apply groups = {armor = 1, non_combat_armor = 1, armor_torso = 1, non_combat_torso = 1, mcl_armor_uses = 10}, --this table is used by minetest for seraching item specific sounds @@ -206,4 +207,96 @@ minetest.register_tool("dummy_mod:random_armor", { _on_break = function(obj) end, }) -``` \ No newline at end of file +``` + +## Interacting with Armor of an Entity + +Mods may want to interact with armor of an entity. + +Most global functions not described here may not be stable or may be for internal use only. + +You can equip a piece of armor on an entity inside a mod by using `mcl_armor.equip()`. + +```lua +--itemstack: an itemstack containing the armor piece to equip +--obj: the entity you want to equip the armor on +--swap: boolean, force equiping the armor piece, even if the entity already have one of the same type +mcl_armor.equip(itemstack, obj, swap) +``` + +You can update the entity apparence by using `mcl_armor.update()`. + +This function put the armor overlay on the object's base texture. +If the object is player it will update his displayed armor points count in HUD. + +This function will work both on players and mobs. + +```lua +--obj: the entity you want the apparence to be updated +mcl_armor.update(obj) +``` + +## Handling Enchantments + +Armors can be enchanted in most cases. + +The enchanting part of MineClone2 is separated from the armor part, but closely linked. + +Existing armor enchantments in Minecraft improve most of the time how the armor protect the entity from damage. + +The `mcl_armor.register_protection_enchantment()` function aims to simplificate the creation of such enchants. + +```lua +mcl_armor.register_protection_enchantment({ + --this field is the id that will be used for registering enchanted book and store the enchant inside armor metadata. + --(his internal name) + id = "magic_protection", + + --visible name of the enchant + --this field is used as the name of registered enchanted book and inside armor tooltip + --translation should be added + name = S("Magic Protection"), + + --this field is used to know that the enchant currently do + --translation should be added + description = S("Reduces magic damage."), + + --how many levels can the enchant have + --ex: 4 => I, II, III, IV + --default: 4 + max_level = 4, + + --which enchants this enchant will not be compatible with + --each of these values is a enchant id + incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true}, + + --how much will the enchant consume from the enchantability group of the armor item + --default: 5 + weight = 5, + + --false => the enchant can be obtained in an enchanting table + --true => the enchant isn't obtainable in the enchanting table + --is true, you will probably need to implement some ways to obtain it + --even it the field is named "treasure", it will be no way to find it + --default: false + treasure = false, + + --how much will damage be reduced + --see Minecraft Wiki for more informations + --https://minecraft.gamepedia.com/Armor#Damage_protection + --https://minecraft.gamepedia.com/Armor#Enchantments + factor = 1, + + --restrict damage to one type + --allow the enchant to only protect of one type of damage + damage_type = "magic", + + --restrict damage to one category + --allow to protect from many type of damage at once + --this is much less specific than damage_type and also much more customisable + --the "is_magic" flag is used in the "magic", "dragon_breath", "wither_skull" and "thorns" damage types + --you can checkout the mcl_damage source code for a list of availlable damage types and associated flags + --but be warned that mods can register additionnal damage types + damage_flag = "is_magic", +}) +``` From c59bea211df860497b46bc2e7bc820a31e897f2a Mon Sep 17 00:00:00 2001 From: AFCMS Date: Thu, 2 Dec 2021 16:13:39 +0100 Subject: [PATCH 25/27] fix some typos --- mods/ITEMS/mcl_armor/API.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/mods/ITEMS/mcl_armor/API.md b/mods/ITEMS/mcl_armor/API.md index c06fd8a3b..ede33ebb9 100644 --- a/mods/ITEMS/mcl_armor/API.md +++ b/mods/ITEMS/mcl_armor/API.md @@ -1,16 +1,12 @@ # mcl_armor -This mod implement the ability of creating armors. +This mod implements the ability of registering armors. -Armors are basically items that a player can equip on four different slots on him (head, feet, torso and feet) to get advantages. +## Registering an Armor Set -These armors have also a texture which is visible to other players, inside inventory or in 3rd person view. +The `mcl_armor.register_set()` function aims to simplify the process of registering a full set of armor. -## Creating an Armor Set - -The `mcl_armor.register_set()` function aims to simplificate the process of creating a full set of armor. - -This function register a four piece of armor (head, torso, leggings, feets) using a definition table: +This function register four pieces of armor (head, torso, leggings, feets) based on a definition table: ```lua mcl_armor.register_set({ @@ -18,7 +14,7 @@ mcl_armor.register_set({ name = "dummy_armor", --description of the armor material - --do NOT localize this string, it will be concatenated will each piece of armor's description and result will be automatically fetched from your mod's translation files + --do NOT translate this string, it will be concatenated will each piece of armor's description and result will be automatically fetched from your mod's translation files description = "Dummy Armor", --overide description of each armor piece @@ -91,7 +87,7 @@ mcl_armor.register_set({ end, }, - --WARNING: 2d preview will be deprecated soon + --WARNING: 2d preview is deprecated and will be removed soon --specify textures that will be shown in player inventory then you disabled the 3d player inventory preview --its similar to how works the textures field previews = { From da4952a125c281280aa88146ab7f0135c5c547fd Mon Sep 17 00:00:00 2001 From: AFCMS Date: Mon, 13 Dec 2021 15:37:51 +0100 Subject: [PATCH 26/27] wip mcl_damage documentation --- mods/CORE/mcl_damage/API.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 mods/CORE/mcl_damage/API.md diff --git a/mods/CORE/mcl_damage/API.md b/mods/CORE/mcl_damage/API.md new file mode 100644 index 000000000..9ffdcb9f4 --- /dev/null +++ b/mods/CORE/mcl_damage/API.md @@ -0,0 +1,15 @@ +# mcl_damage + +This mod is intended to overall minetest's native damage system, to provide a better integration between features that deals with entities' health. + +WARNING: Not using it inside your mods may cause strange bugs (using the native damage system may cause conflicts with this system). + +## Callbacks + +To modify the amount of damage made by something: + +```lua +--obj: an ObjectRef +mcl_damage.register_modifier(function(obj, damage, reason) +end, 0) +``` \ No newline at end of file From adf738854ae214f2c41e3199ccbbbe810df22ccd Mon Sep 17 00:00:00 2001 From: Nils Dagsson Moskopp Date: Wed, 26 Jan 2022 17:37:55 +0100 Subject: [PATCH 27/27] Fix mob-in-boat crash in Minetest 5.5-dev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In Minetest 5.4.1, calling get_player_control() on a mob returned the empty string. Minetest commit 5eb45e1ea03c6104f007efec6dd9c351f310193d changed this, so now calling get_player_control() on a mob returns nil. As mcl_boats defines boats that can have a player or a mob as a driver, code like the following crashes with a changed get_player_control() API: local ctrl = driver:get_player_control() if ctrl.sneak then detach_object(driver, true) end Furthermore, once a world has crashed, joining it near a mob that is the driver of a boat with such control code immediately crashes again. When I reported this bug to Minetest, several Minetest core developers stated that they disliked the old API and proposed other return values for calling a mob's get_player_control() function – all different from the empty string. Since I have some doubts that this bug will be fixed in Minetest 5.5.0, boat code must take into account a nil return value. Minetest issue: https://github.com/minetest/minetest/issues/11989 --- mods/ENTITIES/mcl_boats/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ENTITIES/mcl_boats/init.lua b/mods/ENTITIES/mcl_boats/init.lua index beff5fb52..72664b1df 100644 --- a/mods/ENTITIES/mcl_boats/init.lua +++ b/mods/ENTITIES/mcl_boats/init.lua @@ -267,7 +267,7 @@ function boat.on_step(self, dtime, moveresult) return end local yaw = self.object:get_yaw() - if ctrl.up then + if ctrl and ctrl.up then -- Forwards self._v = self._v + 0.1 * v_factor @@ -276,7 +276,7 @@ function boat.on_step(self, dtime, moveresult) self.object:set_animation({x=0, y=40}, paddling_speed, 0, true) self._animation = 1 end - elseif ctrl.down then + elseif ctrl and ctrl.down then -- Backwards self._v = self._v - 0.1 * v_factor