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 zcmX@7Rxv>$fr*)cfgx$G_$MI66W|l#3Z(Df{{STa|Nrm0>L4qS#aI&L7tG-B>_!@p zBjxGh7{YNqIl-ZUnTL(%j6zpyCNeP>TA%Vs0jgr~boFyt=akR{07aZ1 Aa{vGU literal 4942 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 R+ypQvJUAk#JRolUe*soZUVH!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+aR|!b51^9%xN`isz;d!w@5vGzLzu>e9TdgO7coLp2jv*Y; q$q5Y1d}3^jd~B?YY(5QItPK1n3@d*XKI8?eVeoYIb6Mw<&;$V2{uM|7 literal 4706 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 literal 4709 zcmeHLc~nzp7Jrt?qAb!DQ51Pb8LUi}_mTj~5Y_|;H7o%I5eqLbFX2Hpk^qrWL_}pd zqF6;`D58i+5sO>ZQVI^>v@TUf3MvIe>N4$d1r>3dF98wH^dHZe{%6j4$$NMC-Ftuc ze&5OW@*~26ZKgO)fgs367{V8W-)Y9n(j0ud48Fo3=!2om=vciN%YZdnwTx5{uzrPx zfC&RBgCN7zJ0<>GeqCTKcv2=Q%ATLwn#$ObchcXbsYy{?jkx1wE`H=CrB&|QA9?haYX@y^|BMZyXzCd z1Nrf$##wtj9R@82Y4c~g7VfeQ@!q<(a&6?{=1-5>C>S%>i$JH@)4!M&R;*ph2;(MjTJ!Lvv^C(WVz z<(Dre&VgqHIS!l-%t^>!R46K4l&W!Vruh#(UROjeoAaL?=aIqr)Arp_a!H|}?5UHXEIl|4wslZ~EN&g>&=|DpW;Se>0>SLFI4u3|W;GQ1p3 zU44$L98ny(cNBNOLv%IX{pMNkre~oq^I(lnN}Ux)mxtW}vEc^NbLq z7<@v9Ye|isRI6YkCMHp*>3I|i(8I6uQ))z_ad?$(j0M04-GFK62#rBkD(MqFbb3KL z02xc@4?T3zU>l)}37tAkixYx$LZzQK5kiWO`)ks)3R5{!oK7eRB{0>2sK{F(gN34q zaStN}a#E==c>%KDvec8ZH)Oq)n^9vbXJR72eH`~K>({lLjDeL%#O15;G-G-~K96FI z&y}iiQpz>m;t~deOJy>u2Z5nf77D(+q)dW}69|rYNKq*+kxhUSs&slxg%d_708S$T z4ik}aJWv*s%J7hRP+4rIl!_sk7nOs1dNDbeR3h;rCP0L1Nida|Vq#WCC@FxF;8Ki0 zJvdYbN9IXoF<3ZN!e)C?r3eGZaSWG95zGW7#koOhtr7$6B$b$)pleielfpgk2DP%jpXgLu3#T0&@bU=od( z2!n=tnKZ_>a6vJESj;%50Kg;%wQvKq1g2MOqt$8!k77&-HhP-I8}=S;N(iX~7AuSs zKQ{9Ln0)kUbO|U(lM04SW6QJ23}yI^3%6- z$w(rMJTXv&il9`K8I5>y*$gfVb!Q-427^K$E0}Iv)vqh|rvDEo-X?{j&g?P`oOBaMIJXRH^0VgvyFKFB-q`<|}%biES;?_~Uby57_EP7J)0@%!oeztJ`2 z&4Gtdfqy|6;5gHeaJdG8Caog_10#fifv?{ZK+uBXRmHrJ7QfkT2~kxPhsje5EM@z{ zrt<|KI@Sf)FU*bGz1ZT5-`!Ybh&X=sf77%_g@;#a^v!AWZg3=l1qy71Z~loi><$-L->m5m%pY{@tJ3wl*&fO%o9p8?hkZMzbyIvyeAYl&M(nkn zbLZ{c;bv=J_;mV`xE&7G+YDR0$|Bik9K|%bmpXOHXAYew+*V_Z+Pc5$zPt%bVp~6& zpBE9~Z|@qLck!!Y3B@0r^Iv5TZ2zHZbFF1i(d4bW1Ja*gTYbM_8PgNF`@yUms2 z=d5+{wg%ryb*Ne6alc!o-OF&7YCFFz-xl;i78{yF$`5z(dVAWhb~nkLUc7+L-O`@* zo!was&Zg#)&w}|78=4DQc#`ZFKw_l{S*nAesUI7!Nl2uTTR0t5|UKt&ei<>e(j$VL)Kq$65EWErVg z#bqqgA_!7&sSDyR(7ND=)d5!!sbb5xwbZ&0oi70uXZnxlO#d_Id@t|a<#+G>efNGR zFNHBt;SS>_je{V_K^VaogKuZ^vKSHCeExesVoA+(*qMXH7O8Pvgfjgh4?-+%{qZa2m-rQ#D zJmzi6<)2HRm9{9c{;#!re`u`ic{<1BHFHDd;hZ1Cdrz0&cgz>YoPBz+pY;OWKDdoP zg=`}I*!%P4@=p>D4wwW5=Oa&6rk5c6!wIcHh0@xu4oMwm7dbWHiO*hI=QG)i%7j z2NMUn$`=u?NApk3Uelj^Y@g>38ypYz_3UK29ZMKg9MDEq4Nfo_J2oFJVPURE;_{jn z6=(b0PDQWh&y=J^x7S^H=r#S{ryQ>AuCv*Hvdvw6Dt8iHL!O1yUi{irW8=^mZ;V!? z(wv;_D~mIFr=8fzuWp?os`hJiOmT~U`gmmtk@)dX8_&^yooh*zwd+Ba~~t)r+i zXq~CVbx=~0(!3gW^T_|qw%)rYd-Rji#jzS!=Sv0J$))+nRoh#t2f9VDP3nmt!P4^J zJxlCh{>FqJdpq0ZlM2OEing%4ATE^I_)oFX+Dd%e&hubF+^&q0+DAnf= z)^_WQba&uOR&{@AeX;x2<sO5(98fyF!^yU|))w}5R> zcYVY@QB_;-o8FbsKSh`2WjK6;Uh(^C_LVc$MBP7>NB7k`DYnkdFX1Ylq*g|kGcuO7 zah1;$-#*xjdEdi3kKEt?yzBANUH>ZEHm|IqN%1tTuKN<@o9$gF^-fJ7%wr$YPKJ#=-tt zsf;V;hYdr3CmtzPuh(#?RD;1lF)%4=t(;2da5z*NgUVo#fdyH&M5RZKWR=d{3^9bk z$90&N(C7)Z3N~Y+5_P7YM(0QjI9Q4N(&p;47e>PQcrUXTSq zh7D@;{NU_)cnoO<2QjQd(;tE^|Om!eC{jHGULQ%|X z4>JXFLaDKM0kYq+)DyBdWWAM}Sz{?@WFo-*HSSy1uWGj#11ph;%U5HW=JbSo9?2Y^ zD^+8Jlxw+V;y8lSFglq-lhVlug0RREROUyf%Y0E5&S3gUF>C~sP^HtODhxM60dNWd za2PZef=Yc6vIOHW$%usEOXf%=9I{Np!P#sHO^Qh9BOs!+1n5dsF)}MNloUWAbkq;w z&=InX%|XZr2VB6SlYMEv5{!*wG+)fm0wu+`VQQ@s1=~p|Q8`Z4sN@!fnQ(4!jF3lS zP-t%?F$z>K0}edW972_8e4~gXlz6NjHM2?gMQ98*+n2^f{5ULRg!g=0s{@^A#-!6I zjG+|F+rkCK0Af*dp8^02EU1MWs>M;gS{tWUD|jSxO0e0}(%!KD(56HXI$*KH-0{Ob zAA-t!~+Iq?UZ#qpyvB{DXH zjG!{WFpI$C#eOM03#O*2S?^B-b(Hi)>{zQ4{%s z(Qfr2F0=9yzM5zAMZYIPM2M3nkLg^IJGFS8jhj4qO469%ht@6U&IvCFA_o_XQ(byb zWCV8I`1JY_>%4@*TG_P^E7HnJ3k0ok+4JlVlL`U`Qf!$F=5HKfQM2xEH=4iiJY;+R zmw?~qtihYh9v(_$vg!9{jHwKIUaVYZ zZ~a+v#iD)p9$?oRwn8uDHzU)Zon@sw`(hw1cKlSU8`qAvX2!-oUVe5;#Y^D^hbyIn z$jT%~V_>B^()!4OpuWx560xb4tByyM@9E@q-MDb|+A;YglL>0;)1D2S z+))bNO~*=Rhw~v8G!3$06D$*u*l8jb>L6(R2j*o3ZQk-B5ZdU4B7x0qdpBn<>jak< z9YFMnkRKf9cNQC{-MZwossMvOCLZf}VBqgOWEbmVGWqWubv&pKnK=X{% iH2PMJRi#~_6oMie9Da72yzvEqfrNr6enUvgivIwE5b^l{ 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+aR|!b51^9%x`hdY{sR)n+Q%R6taN2~e){|m^JPA)1#}JO_ q+SB_QJ2{_&jcKXT3_llStx@B4hu z_nk~OO5+!~I{P?75acR}7A1hsDVEF00lfP?d5u8Oghz$46jK6{Pcj&Bl}3w^Oa%sv zgqbxe2r_r}mZvv%kz6+1SSGH>kT`9;odGkuBPwnLbmicy9|=3_ey}^c);`o}Re0Ia z+OXI~^ zJL|}fx^7F@M ze~h2M76Jc}dUj{C-N~7|=IoYv-|XouO3%36=Gj@-5c}Z^?Ur4R$lR%?6~V`At~C3d z_g++#*}ow9@n&AJE2mh#!^?rpx={PTwc+^zK40Uqj-8i$GeJA2eET5}CQ;um z4{0vUAqF2b7(L`wsj){M9BFTd)$5Ec9j>;iX$3pkUsSa>c0R~XPiq~x-;_=3{(7*p ztH4Y#dwOWcjoPR{_I1gb z@aBW3vhudq9*bvH+IZD1Ch3cy8CC0ky19et*pzWpcFnxcC6Ha|>Z~ADauhWtwBk9* z=jUHHrZui?{nP7mxw8o`TXAP#Q)kJZz28g?jz{cr-Ks;K%qZTUHYl&_<6mzGi}c&O z_2Qy?0Z-kAoL+@RK7S~^f_u+Akd|({&kpPe9}Q4`O59>TitDI|5?5eUv(5l^1_XtK znGFbIzwFCD7>B+VFB<#Gb08XoeI-*I@;I_!X(ZEAR`U^ zW(FYx2M8?zBk)`!iiz_uy(wTUgc2RiH{=?%)^U_54bx&e5K4fm^mj@wlEg_zGb|LS zH9CVe3y}Rzq)DTCOV&HRSv=Np#x?@dM{(bYelxo@7(~Uz@kKbAYiUm+5|AzR`AQts zDEZb~1;*eqFb0bfMCT|dEEWb+crb%Wf$2dg%0lQEm!TK~CD9WmM2}(?C;(2?030?O zMcJ^5MNwfGlfpt+ObVjpaw$9(gQ4OgD5_**V<0{>YJe&c?bxm?P)Yy=E9fj#iKr++ z3?_i$GBFB*1YrP*jRi4O9HxrHwn8aUeiUxhAz(Q*Iz)}p40^TIVIiC!A(aTo3@ZHA zBGn=$6-W?}7i;vn=C=-+Mu#Pu5DT01AQsHvaDsR|HcaOR1-%VQ#*73|q6L!4SnXgIzR-vvCfq2)ajk%CX^CXXw916A3=wU5J(=Tv=#z+!!9%v(W^1Azefc1#;*CT#R^if6o^Vm;c|I& z3JZo&3c_R4DRerjVse7mbe?LMwo!BfSDEq=BNm|slY(i0fUMJy=31$o_iiuwnV5wq zm;oRe6b4g9=kQr{K9jcqrt@K#OdA=PX4%zmCJv$f4<{kkfHB7a$Q!nS;{}{nw9(^g zgfk0`zvF9UEq=!e0D8R0d+|F?*En78#lU+7kE?5(uJ>Z#y@JQp^?#$w`RxM_rU$=* z^1*~5O~CMVUw_~|0Coo7R& z+x+#Zdy^cuKMZ7Pq7&pZ?K_Is`E5>e^i-$MlG{f-wmtp*_mWHEn3u~FGTm;S$_cyP zz2e#l+x4j%52?DmYO~5qOT=eng-I^Q$t9srGn|+V<};pTQwy=OyQQ_G+3CW6LI>~O zJEx3ucrLoR?7)oa{SN(C59}wd2TuBHakYPFpfCGg@#(GdrSjFcs`FENcKHYFstlau zw)vOo$*GkdE<4R--0CIlbDjxQH5boGj`e6i7Ptn1>l+plHFrpgl+*5iD3MAd+-9eg zT>QLLL5_H_Wb*5^w<^BdzpdUWYK#4jy^(n@d)7Q|PGfTDkLK8a8vbIlZjFm=QF`r1 zM|%6vuETqvU)4P^*+XsYjG^sMvl1uz*>rb(dnPwAabRuRtlHO-3fG@XU$QpHCz-=O z#bazw{4M-$RaYA7S2sDl?CVW8AjeO>jsA0Ehv0hmrOvLCYM)oHp!0W)ZDBLpOTn|L zgCcg32x3G2kRwOKeg!Na7^0UE5HxYB<+6dQs=a{G(IklzJKlEjoH8$P%?AsjfGJoa zijZ;J(5Le@@| aMGOdv=yuI2m~@f?U?7P&UUWDzqxir6I@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 zcmaE&QaC{(l98E#fkD+aR|!b51^9%xrqvq*(azt;Qh*{%B|(0{X%n_uPl^TdBs^Ul tLpY+76BwBJ#Ml`5*jO3ad>XV^8Td^YR{kn{$O}}%;OXk;vd$@?2>^zP7uNs) literal 4708 zcmeHLdsGu=79T_&KCptIh$u1Wg0e{_k4Z=*ghwKY7=!>qDJql6Bn0vz2_&EbQmiOv zRZuD_Dryla;%mhhB4q{FN~uCo6a;OlLd#K9RCX0~Cjk*p`;X^r|0Cy2GP&RH{_efM zd%y2wvN<#)$ZoRBWB>r{1bnUt`ez;$+??3tNcuf7WFZH>4B2S|7bip46Uxw*Qm^=e}d) zv+k2MLv)FH@t|!#alvdT_kace(#~&?%&>prJYU$Y=gp~HBj#VL^66L+$n^>!s6E(W z7uLS$+`n4xbot1&;QZc>%atC@yDTmYJ&n3ie_|e|y`o68s7Au+tUPi8X^iHPoXU>3 z9-0@-Oe;KB%RB#SV)Y)o69NC)+8pXyl@{mqgU|D?C`aurTMq^7U=iB3rQGz(**H-5 z)wF(~7QE=pnCCFK%rQpMEZOp9FOagKpf9>d)Bc>liLt3$PvF9$<8I0pA_DFb9Ju*{prlDM*97>+csx!cm@W|rLQ~Fnd-l6K363KeTD-Ids*gtT3Jd zMK{iKaBSUdO$E9lZ0iWq;{tVHLr95c`xNPgpRdk9CzjPJMAI#6PtWK*WK&h=(S#d_ zx|d(zp&BgxRaE?D{)N7Kond>Q$>Lq>ehhaOG-mz8c=cmv>Kwk*_u_fWK6$80W+zxKL8PwzcBEunnV}@JIYrC}HOD~Wy2Yf&7HNF#y-o>87c!TV0e z`Di6lmWaD_gaZ4<#>eaR8WxFUFc^piDp9SKk;qIYlLS&o6bb=D5Ok?3J!~YXbnYgK zVGb^;L$q>@UanT*Oq{S-ovdf$@z^@aeKfk3t3s zgrTDzCJAJ6rN-=qiTx2$FPDB0>!aLEE9P>>CW5(-@_vMVU%MHMp@c#fSB)f_(i3pm zcvF0qM2*NLEb}cLqB0p&vXnq$QW*pqosJSX5IIX0EBVr*6>DhWmf zK~j(^C3_PXD8rjTV;~4YEWxsYXbg}crc)sp@-|aR5Y|$)RtaP6lq+EwO46ug<^_}B zEdNje8&4q)CvLWcDqy`7b713_%T>w756}p?5)IeGCN;@)8c1PyQ_0>8ItVhDA3!Tn ztqz++6DJuYQifA7wS|Qhg9!_p<`g3^dtkM&0<|ctS8F5GY6Tl_N&si_G>b+h5 zC(R;5WC*3eSf40j8i58%K>|!cK>~y@DX3HmOC|K-W{tAz)Ka|x)}sD0tWvBRY=F$w z;5^MzF8VkZLp*BI38at-WD0>ojUY2v5Sayedx2yY2;xa21(Qs>`hCSdq(5llV+M>l z1~9*28+N>4rxj`RxEj&SB;#NB8tKJf7y+Xm5AsR+j>|PJ*C#3PN#OD68kg&n6!;|Y z_;mf>5?hzW7=dt-${9NnTgqPr* ztfp+Sl^zY5$>mL)RS{snI6LNGq|J_A51O1WigmSW&HB5aHKKU?uG%C{XUE!m)t1>Yo6Dr_&cz8|=jHI~Bhn(LUc%@2zKFA>Qm8MPf-P5c z>pHIdyS2*p#&h3+?w;!sq4j^bzkGgV&dg`l&svU@=sG>7oysbj@9QxS>dC6x78@0t z-c@9Xez1GK`|d)IY4*AQow+im&}nLcG2go=47xr`M3i}}lU4>h-9GP;0fXfgf7k7M zgcC>CIV{Kt4fVHQ7@c$T+dMJe|4rCu?=rh~T`SpMZo71=)y{(fDT5C(o>qN9Wsslz z&FZkHIzG8^U= zzZ2}TyPG#i+Za2|$T_TDW?6mCuX|7X7l>QwXMXt?x7-J8Hhst6f4Y_3+0oS2UL$iE z8UlXk);4flZ|7mprq<%%AT9s_^8p)%92&wblQjI#bpSABhUu~Z_7pi|MjO3A$g_Dk zb=Gt$>lnV8iv%E<#<~aeLkjEd$7XkA nCUU)pTvkm;YRPQM=28H_almf>6{lJdqX7iG5bp7SxUByHR(a#1 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue_detail.png index 5c7a34fcef1e9ea940f3d6d7d69073c034cdeaff..842441a2c6252409b1b5ed2517dc03a9094dbe0b 100644 GIT binary patch delta 95 zcmaE&QaC{(l98E#fkD+aR|!b51^9%xrp>$oL<(w}7*i*`j>R^*5RvMY5J*Gd7wR|P%jf=?7hb`lWrwEuX{_CIpYWM=N;cklh(`+X;0 zwuOcS+E_VR0RUhl3KE86_Zfx@XMugYJR1c8!1P&0WQ;BxOv9@+Dk&;Q@Vaz0f=BeI z6ae&{k9UWiyysyZFuJmNk%!*|ILex9UFgLC|DR4 zxbz(EbuF)^FF%^Jexu#p>f%9<&Sx`|N(u)%d`o-;CA*TfZ_Z>Z1pTjLw(Vb@cj#4h z*R39#w!L}j+360&e<^NWZs|5J_*&a}kCnH-=*+3f+y8Q@wMn|e5ih3x)P-N3re2-3 zt1e*R@xxuwcan3@PWwmCi`aF9^$!cz&3nhwJ~`HWCDrptJFU0lPwpG*8?rfHEOTV*9zNh9)M{jJ`aKlSSmL1IS1t@`Sa6FGt^ zfuGC4f~$cKT%X$w<3`S94-OqXe9Oe`NL^c_c{a8zoKS51W5mmNkV-)UVU+|S=@n{h zc>sX7K(7X&WJHITATm_RCk)h`Bj8b(PgubeQ^ab2BoPhD&>#^RA(2ozKFE4dO{S74WQBq}*+Z)f zNX0m=Q;gDH^%492g=aazufdYO$!)k3t5D z#Gw-&1`1@TLT&WI$o|Muhe|(?^-*pHjj^1`iD2#%xF1=+uia>jS&79wp$bYdq$d*c z35NJQSOuXl&-ln5ekNQOH>*Kh_w?{fHH)vR?3VD1K~X1 zP!XR%BT+s`Lgk=NiaGEJ%TQ&C{(~YCRUi>M(7+~@#h}pG92S>OWi#1a`Uj(EM5Dzf z(SS*%kZ2sE#?TfXRt!cgXqZzBz$nLR;rVM2P^Z#Fs#J15!H^Q(;AtFhy!TjBf>14H zk#3my@tOAnWn*t+OF)hqRd~E{YuEioMCd|40?Fk!a& z^gNujBE()8FwLRL&+hB&RR^OiclNt8(4g?Rx#sOzn_ad?Svtt#o#V`X2hEx;Ulz3m z1ixJqo@jUP{8~Xz_qv<)X4$K@RZ6?&97x(-lpD|-nGt1umXN#nc><13qrc#a@*1_@ zbT_uN*Ws=_T|CtH;1VphcqP2MviwW?Cl*hxmmk*lxZD0MYv26E?(>)rvYHCwR>W<% zw=XT`_ILALzbkdOwcGyMK6+K@Z0lY6V$QxW<|T)4l8mET8@+V)jav7OAmv!qBJKCR zcu7ptOt;+7P+z;RVsft@Es_v?--LZWnt89}pN9*N;g;l^e|yj`_3iDAgLScVHub*? z%*%Ybxg7c2r}#|XEx>YXL(mT=+xb1+ZJk}`WKJU^ zz|Vb}R>9mGMcCQYLb5ba2rz;9fF&Dcj$o3{)Ilq?05E-);W7dC?3;rLEp;MsfaQH_ zhZ#JZ=J+yGOyngJ`bKhEp=Ep1U3Y9UZD{hD-yqGjw;MjCc0ADB(4gLdyWIYhqt8jH q&g{6|o#)BA&zi!_mdu*@F92|QVjI7trDXtv0Ym{I!sC7kS^opi1@P4X 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 zcmaE%QaC{(l98E#fkD+aR|!b51^9%x)}N6CBBnf+-#`(jk|4j}v@O1TaS?83{1OQWA7X$zR literal 4712 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta_detail.png index 8a1ffeda806b54a1b77e5f1a5184ee45bacac7c4..cd2d234587336d898dc1968f608d8d13d6436708 100644 GIT binary patch delta 95 zcmaE?QaC{(l98E#fkD+aR|!b51^9%xZt}SSMDu3E%K=50N`m}?(poShs&%>-Ha6Ym&^~-~RUA-`VG^ zOg4uu3ADsH;vfjJ6b1>x!RIvnWi|!8JHH%8AZT)5R%Em`9La!HYNb?`iox1U6$WEE znG}L_ZBGlrj(53R_zy2{STIRww)tTKdFhGu@oQGLZhJJB#H)IfQZX5;&56sk>io}8 z%fjl?R<|W6+RyrIxd84NE{_DjMHPcGc?yw$hRhgY~eMf2utuAJBNI(qYgki3Hf zC))3IST_GVFEcmOe&?4v8$wK7XD_U_D#ojaY9%6jl zg|lZqf7wxEP87+jm%qFn)4S&c|4dhllTp?^-LA^ieW%X0{uPrilcXS6W+~|8mI58ZZE?&`}P&nY~ z*!@>t?D4+(t;1i%;j}#0Kfi8YnC$7z?}F3!|6rC}V0&P3@9$3QCCY)0hT!je`jZE4 z4!ZPP51Osc_4acv+5YozuvxZq%%COP?NG^`(9&gKS2)VR^hb*pb5Nz6h)9%TjHr{V z!0vz`FP=_?pedLZ7GsGr1sC6Y?jjzRNx1lBbP-vk;$um&pe!{Ok+mce%}PPp5feu zjBp4r4XT!@v@)dv)^j3aWtx_Y#{)n7u0FX+BzjM;(2S}8^dRXF6^TM5ljL&J*a(f* zKOK;a7WB6fnn-Ynkis#IGEI$Q{^^)P>oS%?g1(PerKwX5?MP4(mWs&%R0Fb7#-$7t zibCH<=p{&$$yJ6ZAoe(sO^=<$Ilt{!8DA6>1c|rjf zug}ksC{dY&WB5uF(-DM0LkLtl$|lex5(+^~!%za1K_k;BRE){MkTFz3g+_}gP)tt+ z$cZw*Lt&#*7L7(Dpcq9=pkY!Pfh|SBEmKNi(aB2B)#rgn>!qgft ziF!^7nMfV+=$C~9ngPNh`Z)yzh6vCLhp)yEtx_GSRHkzA`jTLMq+z^auaQLwl4$@U zQ$O*eGw+8aj@*rGfmE5n1;d815VIK=i!5fM;_>VnrBs`Ns4?F}&?)E!43ME4*xewd z$9Qx`5~kOQOr;PgR07pAlEUQBnH(y8KAFNHlkud{hDrKe{jOs#(*J1UWdMvh20+}1 z4ID4vv?9Gfu0}P}%lHqzM%UsW%mAn-l6;iD6LL++^-&6Z6nJ8~Cgl1k1wINqFz%hOHMLJ%;S^`$``oDh+BIRb|Dv}m z!;`GLF0JBq-2ME{1*6=U%}1o|Gm4W7@;CW6L}o3uIFH}t-Jf9QN%j1LEzGOad~vs~ zvE`iE^*--EA3eSz5ltBoJXl^n)9%HT7q`mGG#zeM-{lm|@phX{f1FdlJ#Jatny#XZ z=+3=!T=wp9v$Edu+Ab<)kFCXS-A-0f82yTUI5Cl>Ton~;d%MOh8zCR9T%h^-S6Ccf zKizdxXsECC+~`d|SLBQFzHh=l8D85}c)4uHQL}(;CSR5KrN8aWets_2lSz5@nMtY7 zn=SHe3!`-_isP%F_M+{_4nTh;b}mX8Y@#O&?&?pDnCd*~ZhLJ*T13RFwM|aN!@@$# z*8I1$4RKaFUa4}C(S_4KkM_04qRxjt@!5Gc?;d3OuiBvf$6L4^cbnVVFD5z;4MA5Q zshfDSZs&t%(<$QMKmkOD=0K)Q8GQ&?%vC|lH4rq_Mt@C$_7%+lMpLa&=~2Ktlf|f@6LOIsXMD+Up_! 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 zcmaE%QaC{(l98E#fkD+aR|!b51^9%x-l#VQqOjlT)j$!Zk|4j}v@O1TaS?83{1OS^d7!&{i literal 4712 zcmeHLdsGu=79T`j8eY0U4~m4S1;o7Hk?;(UfB^&qMAS?slQ2LYCV@oIqKJynf}pO* zK>-m#S#_*Nr_e(&;v;D_&w*QfHCNpy%zkBcRyZ1Z! zvN~3wc#3DPB7#|J+JSdBMp*_tw^o`g)oV`&LUuK|V#i&OgZh;(=rD z-stOcw=|rr-}B)3t%}kJpRX3U?!J1nq)fxT^z&SQ*XWlzJ!N5D@;?&~cMfgZ^#>{WtauH(1#=B^jbK zQYrQhxZ0wXeI92H3-+D=T(pnVWG8k>di`=kF}8Hpzss*sf0=_r^O7<)xepB9u?=pAeI_rZz4cU{2N>{|Gog8pV=disVfA97_;ytXNe$gzM60@jE zz9nP%Bx}cg37p_bld41a#Cy*;>gch>F2L>3(ZBQttc_oFR!HK|#eFm5`li<+UOsJ= z;tQzdw0TYgmjfHj6TAzDk@H73H5WQBKA85OJI50D*QFi2m6lT2b1s5*JWZy&(p=<{ zcv$(Q_cU9X7a6xy(Q*2C$ASlsVx9~&BLPomsJ`AVx{<){UY)+w{kC5%&Mouyv+JQ% zzUckm%QNo`cFBIkE+pJ(Ka|s>c-8WF4ctf+HqKv`+4bU9LhJrzNv-|vF||dm?t3NG zJvYV7obZ?wPuI)PmvJ5rCj!>mUO6*=!S=I(r1JiaGorWsYp>-|VIXdDd(_{GW<8o# zC0KuV#mdNp-A&J{$|Bc2+4R#l+MF=OcUP}*3U<{~@+vIq?K|yr1{CB~zwRt?xto`` zYq@Q1a&Ep~kb6zZwXlb?2OZz!+I)Z3-QjuFJ=KP^hW@*aB?rK0xME-gl0*x6h)O|% zr78(ZGAPtwL?Fo5-=Kz(bX13zpmI#fCp1Veyo5e=r+VJaowhzUznnL0j!0QC6x`6<*Q(HOi^JIVs!gKU7+WGab5 zRw&5hJ+!)zEC4c^&>wne0Ii7~}J#Dg=}AOpjD1OqI&0RHBs4VGt#M4kB8Efv$uz z#%E=Ok^(3hOG;(Y8Em42!(f1H5R}MeAOMPvFzFOj!liLg6O#ALua8F1he7Glaw!v{q?ra7?*_yiUGvJ#y$lACJ#^xFIa=ZI+Z3~rOMzFj49!bo~HK3 z`;IJ1IHm;_tBf5#+VerMeB^Cp1Trv_3XeCnEe}RUf@t9^RB8$Y{6FV7^Bi z>b)HMgT-QUSZuBg1`N|!Tq1*pf+sphN$|v^fPaF@cVAlM1dKD3uTbe_Le#Zf)O=i*;KXtwW0~w$%h>y}g(F?9@^^ zoBHH)i`szSiWIpx^L5Lrmmh!p6zM)x1^q6+7m@y^ohg2^bucY%s=HZF_qXRW{@O1TaS?83{1OSAi7pMRL literal 4708 zcmeHLX;c$g7A`~(kwstx6&*uB0X0b_BxaGY2vGu}?4V*xrBW3NvXKN55jV6I;kbZX zH-mx#irV0A+aQVqY7feBX_OHJr4eCl*M@dMka-EHaHjuw&h$TWP9>H5zWd#KzkA<1 zscZ>Zw7}AQvN;4nmcju4Fz`8Ef0>zr_i0`I2n3DlN{xuogdtjzQl-ENDMr$)RAMAd zN8k{oYka;Z^i-Rhg`j_lfMz5#+tMBfN1ooWWX+2E+dfREc^~gcJSwVPhow!|taEwZ z|MB!4T5SD=LkFLny_=h~J8H64jl|g|w7X+^J=LkT%VhbezPzZiy632CCE=TJ9cPSmLK1g5w&q?i&g4D z)!WWWe&wB+X_nc0T^cG@CoV3c(H_64Ucq;`l-eu(Q59I+o6~o`A@|}oE^1#HQB?lT z&eVnNoyY@Iht@{B?u0oH%*W0R^h^5T>H1>0>u1N>g83G)S?0k{&%}E-`Widgx7a!I zZWxcQ?i4-H1-zOS8h=u_)7>i5_}?Z`7tsUNvg^)MTc+%HMcnLaMBLutK+*%JZJQUaxcYZr~;`iwK3*{HV8 zsSASK(-Q@-3kgba3EX{(?r3BCAE@4j7u0GwI$*bJ`eSm~<*VG-HoHR9ZB}(&+%?41 zcIJe+H+)Nsquew9K(CzKRGw)cS(@;)@l5oQ;)K$>2~#qgYXTW(6L5K5d6q-;aruju z3v7A1U-&ZFy$fgW%}q;j)221k3*K&J->*GH9Q%jt;@MK`+4-THw(+Fz;tLn=XC$q; z!ISk!Prp2ax;H}GiuGkHry{FnWkf|_XO4{TNWSmec_!H z6t(~S>xVf(>tAesd{Mn>f$ZwdTbzu26>v_jNrgi3>SjyVKgZfm?S0%w{Bo>S(X{>6 zf==gdn;x^(8@=ZByE-j-_ur5h)C^mpRE( zCB}JS{__VZz&AcQUZYX+Xf&->OVxT%6)Fjh&gF7xFoVWmPym9WUMbfgI*MHFtfv^@ z@W<4sico3@g`A}4L_~^Y4WCQ~>!eTl$&|stpXuf5K^1@=G##R((Wx*^CZi4YP-_G! zfMhVCKlM;YfK!APhN%_FDijl>U~-M~Pzo{n*E;-FqMdOXjXbEF`!~2A{gPY zP(Z){RJaJGaF}yg6fvCv<6JIl4uTJ4BSv}i6)G75+DXU|2}V=OC59M!!Fj$RLOz*6 z9f)eMgh&w$4jlO8g@im=_XQe3$gpq?qF0kXhY2&-9GJ=E!b~=s{sk0;snlQ+^_+B= z%HSAQ^ljmRVt}xSeog^_!47KS`Kd5OqfkXC6jDA}p8!ekX&7&k=Ri{e2sJ>g)KC22 z%+Et41K$R=fRr#Skw}KIt1Wkq-~d4kEfOf$S>k-fiQ zv_t7Uo0%Jz9*7*X^EX!}5fBzT#iSv9!?di(F%FXDQ)5khUm4fb)d_D40()14#oM%9 zPV#PPUiF~Tc;nJ7NARYJ1qpkyGXz&6QX?%ckTblx6*S@AdDpcFe5`b~dfyY0D5l2NB_kxn z*JgT5#;v2-BC_v?Q0xA6ZF_$%-f_%q{x*|c2j->pK3e;#Vwne<{$hqnq0fgb*;)(Z z^~(#sIs5!2+EkVgeUv;3OzgSNitE|goe(~5no)C8)s^J%@HgwOPc7&d?zOz1-OKzo z)=KAHs0cK!{L!Z)w`mzV?Xa~^PI=}-Xw2rSfc>W$_$|%18=EdkCinG0H#$_;y{FvE z2G6FZqM!x-5DRjG#;^%iAFzy71}srS&^SB&Wd!BsO$5d<8ey@O1TaS?83{1ORfS7kvN# literal 4710 zcmeHLdsGu=79T|AAy!d=R#C>FMHiDy-Vcbpl}LjKsDP+UCX+Bi9wY$*D!3LDMdcyZ z$GQqqAXQM?Er?Q96c86gd?8p?)T)TfBE|P2l>HJA@ofL`ob7+)oSDqr$M4?z`|kZt zzU&C_Upm=xrX>VHlZC$Cf#7?p;WD2H?hY>oQ3x9MDls@j8;HikDz#EdMB}hFL50J( zj*vo-?&t3P9@&o;Soyp;EZ(zaUP?_2av<%jhr{{v(M3gcXHIkFp|lhvqH4Y8l*`9| z9PEoPNY2!sEjrdw+I%Q$ne%R!nMay#Wn`;)^q)Uv#izyR9^epV(4c112M-H#WWpU2&p zzOTZk=iN=`l8Y@f5-ik}U1tV%yu{rVF8$5w-V?P=1BFGw_0;PbvXZA=A&gbm{e1LY zrTV(SJ+>Wk#JW)6aY|a9pLyDmBdI$%r`3{?@zdNX8)~Xb_1C`jPk)_1hk0N8K=6Iu z1y^^3zjoKGDHcid>0~xRue}fpRg7>+3O|W2G|K(E)%Pq|(a?%}dOl|GXY0deq!r~D`KA_h(F?`un zlN9qpo2!{yAbr+?mGzgRz0JQh4cOkbD3vo6UU@{7o$fnf))Qp+@?CqrE8g`iB`I7A z=LN=GwNK$k>^s)#w#t5^{zT-8=HrDYMH}~p9lsq`a;czIR6H-}gtX&!afL4C)xSEP zHEw+PWjV97S=zWJsH zy5gIKP3(96E@d~?#og^vRP@MuCasYR!|8KA?^}Rmb)V{hW^Xm1QjP`v0Q?rx9 zl2aCYI^<mM5l1I2 zwuD{P5-C5>d&w{acoUE!wOSRQN{x??r^GWTO0|qisDJI#flaQ4p$JP95!` z(fY&zkl}=W*FzHw_7Q3zu2IISG2AB(S7;qaLrAa@e^snH+E|VRqvFxH9GGfARN6-& zmkLDzBOV3{WQ1I0^a5mmWT_>jAISPBH-pAl&gevd`v~qw*6(XK8Urhli0`e$Vh!mD zy#*vge7;195fZ-f5#`b7TwKB>GZ7At%#>hEGAd@$$e5TZMcEvLj)L|uus#GORA{uQ z0>ceZKtdq^4nx9VOA!u6X3%K}nTY`$E{6_oJQkOMVl0fy!bU+XR}-Ks(df}x8K5Kp zii?UROdf|##@IMW31f)KTqYMI(@_SS&A}N62d5jMBp82*QY}ZpauRY>hEr7vnNeXN zobM4J6p-i?&V2`Vtyo zkznZf;hy(IWkYX6BM?m(RWNL9TRw^n1<{~!_|S>~zabSCi7I3`nD60+dM_t_XR%mp zKrN1=WDMi6$xJDiOXeYfaJH0(ViGovGMGb!kDzOmQf)k{#yw=9Qcw+OAY(P~0wa|R zjYW@G$4BA@o)9{XOrw+Oj9?mv&tmeK3}=MKM-UQqxL~Sbs^3@aO8p;BT#W{!wgKQb zBm>(E*sZ7|+tn~(@Bb!%paof*vjo1??)J6og9=DC6DI96 zm+Jj(y?w^pm3UhJDJ3j#rPxUO&+}iJM{AZ@Y~Z0_L|ta`gZij1p_S>aL7x;)v+^v`Q^*OhknU~MOlLchuGFN^AHU`6!peYqiMl7q?JwyN6LprF@V8fNDX z3inUGlhw~m4gXB%makl9T6xC($)UD2m_yMN_v~{!??GnUt9+0A&?0ERd;RCO^Rk%( z1JIQx>IOIa+gadjI#KMm)Ei!{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 zcmaE)QaC{(l98E#fkD+aR|!b51^9%x&NMa#BBhKsEI<*ak|4j}v@O1TaS?83{1OOgA7C!(0 literal 4706 zcmeHLd010d7Jn33L{y-|B8r57#VXlDHV9jS5HW~hM;v+Y{HDY(4+^@i=!d!G-$0sJk=wN+2Q7y4|rm^A3npLdj+ zJ5+xuI5IA9?SZb^`!h-zezWfJfYG61OJ;HQ%G9t2PEJ7qkDQJ?Jc*E%OSj$ZN-n-SfAF(QwS|(X%;y{+sp*nmiZ#xZ4k> z`Apvig%wmeH<#o=M@na7>#t-AZ4X$+6n6U+O}8zXGnMm=$Y=G27kk_*+&l!y)4HGl zGNUBs8;*QRnDZAB$rI10jr_QHX4SHU*p_|%QPIiT=B<4Plf-^ju}!kBgrju^&C4fU zPa89SCZ1!SzK=9UeR>*cwtKMt_+0DTt>;8hVnNgOoo8y1rZ8cfBn8 zu72IHrkMWAfub7bKX30iEUv)r6xN*aIeJR>0BcH2et9Sx9@?54vVpwpvyxWJoIVWdqGU9;Z*_uIUeb5?B~;WRbdGh8%yrYmuzJbwK~@XhZeS3%iSN zMm+NFb?moYRS*>RhT=6i5OYaY8+N$N?~_|$U{Sc^K>SJK1w2%xAj47>f{_ghHCP-F z6c}t!!)OMkBOsU@SMrI^>MsxpxRg&!^cPdbY5|sxN3PIdu`8nE&=nadS4s>HvI{iu z0DuD1!32XMQ>o<{_(U@<4?LU96e7XwqRZeDlf*Fufl7lBm}DlIN(wjN*>qx%9U)L7 zmGLCPc_R?ujZaM1>C`+5MX%SB^$fB~Bd5@~TrP!5r_kvn;6c*nD0Q%bq||zwAcir7 zm=@LGY8|dp5=@vdqRP_oi9|3?cw3)BEf$Z$E43pm06r)NSWTgksT75RGB!f13(p21 zBL)3#gfVEIb=i>b%E7NYT-Fb(SX6+>R8bV40W#xN1RG+IuM@MB2A4)+QmH5jLFrVIj46dV2m@nqxb!hlBBfRbD^bh@1;EKT zz+uo38coVzk(ii_N@8+Y2#L$3%Sd#XhOikdIu*u{F%SziI8Y^=IkqYjloUY07{;Kn zscaIA(3zkbmW+fTQiMc9r7Q-E!9ke_%?u?)dGk~n1q`MWSHNR=O_G!~OeXR{eJE}H=!h7+0b5-^PxDA9yT zqmtD#rbx5A34z0t5{YYpM~+GH zBbpC`<->2oOCS?B4-p7v+45j?IEfa{#-!#%AZ~aFO^20o46N@FLA|x(zcX1>CWFpm zA{-J|=1&Im~8;W4cox> z0(L9P=yo;2nTf_f@G~+Oe_#dxJ)Y!)_#LNfoURXI;DemU)iqAn2QlzL&g1I(ztLs) z?!bd7!LJ}aIL;Vu@lznkq7WAdVnhPL+rJ1PXm;tUQhsDZ$c)CNu?LCHR+HA-%8o?4 z2*W41)`U6EDM+b|x7pO~%furksWYrv@>hEr<855!OFUAoLVvZqeEquUyYTsgOC{-! z_r6*l+|j=Br}LHtDMeMXHn+XYwwA67Z;V?JZ~qVCx}e@PTLzu+k}F!@p#7}9;c830 z?Tvp2^*wxaO)9p2E$mD_G~MO7_4C_@4r)7mr<}+y_X_fz>HjGIa&c;6>gV^$^+|Vk zczN&G?mNZN_?t^Y%64b_Erv2q`6B;ot`f4GqgtL2<$ULyZ!S!&uJP0E?jj&bmz{jp z#l(a<&PrN$^KYdHF?3+j)HiwewtaoDq}q1gMyt)0VcCOsbAPR0%wW@=eqyyhWWcD% zwYU7slD&UE-SZ4>J5~YxM}BvHMt_rkTK}frWwDbyE!x{IHfF`fzRGLz*!xDbZSs$$ zgUrIzDTd(vs`-}Z&xSnQ*|r$8;|F^}GNaC-Wu3a; jzivY35sUp3i=+^A{QTs?#aAeg0SqJxj}{&aOUwT+_uT6n 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+aR|!b51^9%x&IE&qLp{fVB1|Pge!*!Iwpve$1@a_3T^vI= rqLULCnEAxm82Q*(8QFXqv{)JVO&C`GDtyQbRKwuu>gTe~DWM4f$e9?) literal 4705 zcmeHLc~leU79T|x5fFJ#pe!YhD2h&&$%HJj6NISH2q>rsOlBrwge)e31llS=tq5%u zL==UBib_SaT76oqwc_?3OY4T92-UhkRou0TAa4>7@x1=yIj{ebb0#x$zu*1cdw<{k zzLPI&#F1gP)-Kin0N9Gcg;CVq-gsGAP~RR;`%nNF`6x3cP8)^lXezZ*N~RJtZH9`V z5qeSz0Q#$4MRN&?4lCZ7Nd}^58-sG3+ikgiFZyobZEDF2%pKtcseIXLpKfZh0t?#>w zPb!4tpJ0HJlG{J39b#ZEFJkg?s8OZ*FA^JU6rq~Ny~gm z$17!RZ(b;J5@H)BHf&ipeaeC!Rp6Zvk+;Bk(wLIq)^qc3d57RW zD);h^&1-MHIIX&&!#-oQ`iHxRUkJM|OlbD)NxO4jmRHtwW_8TMglz$3teUl-H^zlF zns23dZ2Nfjl|{~nCAs`VUY#3GKbqp1`m5o7OOx%Qtql2sd{=Xp%C_#(w-?Ig`&>Ck zHf7AV`EAn=hU-X;vn98<=Sc(7;#rZmBE>A-uz``7T;@|$^x}#eTURTdoYUC#XlZ2G zGUgdyYhhmE{_MmCc8dxt*fQx0gVk5;${Nd;`H2^AdDAM{bx(6fjXe6XL)C?{ErIFh zvJJW2ycKxwKLc}^hiX4^um?B}JAzy6Q-xL)X5v-%rWeQB)8;);6?`8)!nK3X@n>CK zeE@D4ogOcxZH-d>;GqzMfFk!#D}V1K=0QvDx-85qj6YZ?Arf+%PO0HT5~%`h zI{kf>6IVBO--!uF5YDVPz3@^le_G+RpY}S7@6}c9$!I!Q)HFX4tF~?3b$e$ulG47d z>6gWV2Wt~*(jK0_H`DcB7mB!Tb;Ag)*Gk8_^UOpeX(kC+v|1Lbc%&)k6x+L?cB%hmg=< zYEq>ol?s}X6O|~_w0H50%h`H9QTp3hERN>CaJDOQ-@|{q{1mGHj{%$e3&={ z^QBA(VWU2f1i`7iP#%u+a4I7y(?o@1f|*LS9Hpj{l%q0&p;E|914h9GL1K{~2-Ewa zCW|-~)k-M`KX4AINYlTA#*lI%T8kRhWceUWn9Jj^5!eUjGWqX7^9i+v>O>o|3Pkz!4`IouLPk*Qd!V7-+R49~EFUhH$>H-L zM2fH=1ed@ND#h3kAHz|YgZscJ+%MZ8yGAM1>QFTiB%>;&s-YUlR1Iy4Ny@43=b}p{ zj5;x47Q})fm>t973OF1A8=1yr37AZfF;FnWxT@b)?92EcO?*v&A=?1u*Keb?7iza+ z3~pBgni*yM8$Sbc@i#`GsE31mkiNrm4a@aG3VaZFxVwhs`XB{92t3?f|2Mg;-yL`e z1@$XPM;&Jf1ilRbBUX_iA!1QT$lHGi0ANb~=lOo&Cj;G1Cr0l8$D5DIwUSmwItoKa zIaLRb^Io}d>paW#_q-4?JSyJJyg7S?N8UV3C)r~6c=Mn~W~Uk(Mdw3j^(00mkGpwd zX+V41r`L{|tz5X~TWPCv`I4gioY2!Tne%LZ1athKC0Vgy_H(`{_oU{twv%U@k6Qiu z#Q)EZ&N@88;-&ES1v_0GA6q=Wv~!21-OFx&cF6>Pua7yM*{9aV$Hp(aS)z-(UOZu9 z@g^_3ae1#C=P%qe-e!ZofLAh?Q|A;#m+_QK=g%I0`H0tYlv!0hT~m68CW$-c;F%*9 z2aTH)mve4+z61<jT^_ z=Tm1>3(4#-A;1A90G3>m(@R-KtHKv(0AS2NjMoTYbBQx$wA6|sLM?CGIN5W-R`9wb zWtt%p2F38|u@b&U>SAV|wZ;&f)d)b~Gx7!;m}fBDa2dCGAIi?c8#^uHC)WPa-06_B f-Qvs1o&_U-yL;^B+BBcgQ8a)kG*Y-XI4S$TKZ@!M 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+aR|!b51^9%x{s)85ny)!P5vGzLzu>e9TdgO>0(laiE{-7_ r(a8x6%zR>OjC^dYjBGv)TC5EGCJZZo6+Ywzs$uYS^>bP0l+XkKV0;?$ literal 4706 zcmeHLX;c$g7A|ES1QlAq!G#b|Y%%*DN!St~+CdD6AgEL-l~6zylRyG4EGnY7p^b`- z-7pMltGMfo;tuMx%V}FdS_25Kh$}SXhBW;WK;caP@to;@d$ZlD8GVEWP@QWD?EN-dxqtRa?Am?7?#Z!JZp^UYuRF zzthT{ap1?@8Omewgo>g|6I_3OQn#T*%jtOLb#LmZH+psAHtUL#4GRwZ&YJ$nZc^Ls zr|w>!bF1I{dgDsPt69NI+*~FKmo5l?;o`y{*Xq*x_&s#PwFTaczbU!TBP zKRuq5JsM70N%O%$$v!iR4pYWC4}S{Pws2>*I9Z1m`IbDyOU_^7YL)_k#_qeW1d}JgE*zR686lit38Gtkj$)`x3`WxrfPMOEV=Gl!}c_H(*6aF z4W~2I4c4o69>2RUBc;-?_D)$tdwSTaCRUTo@4KCqs^jl(ALk!j68d*;+rgIdb^MGg zHSa0Ujy^qd{miZP6-T$ue|ysOaF58t3cW-Gb4RvSm!-Zj0 zQOoO|PYzmCl0>#5N30BN7(UF6Zg=E)w1eG=#4Y0@{AcHF_P93LhBA8E^h3mxhh{Eu zankk_#2@ZBx30(U#F*A5pSL?qe#x{md6$BoH>`B7o%ZX})?0Vl&l~FAQoAc#8auo@ zoj=$wUBM6bEZcD7thdjIfQk1PHmh@r(;fK{CP`5`{=6DV3yw9y+}+ z9gy@*=ubU#(O?fDNl=|SO^cwybX2AH9!McWKKX0Xw5gVKWC#gOMU?=m15qi1LWYUN zk)J%w5-2dG#^MFU9)#3m^3P%onwxpVlFq=10QXP4gV6oCTfhJ%7IOt^B+WcMk${Ic z$LGq_2qxoNZrLokoFSu82sD(!Ake8WgTP^K8?9ES^6=&f;LM(u_Qv`579||h z0YrwmFt~$hD8iI6LB(NYFuP7I*Bf9h8l(W3f^0woS+c=Ru}Jy# zV6-6#HS0vCQa}v}R9ZBJ#br>rbhaOv!X=aOq`rhn=2hLFu|Mg5H1W3p25bYsuh#~) z7qDBAK5bWhnwe$%3qO6e_zNQd>Y*TCr0aHQVzDR*D0uOc9|4lB3 z&j%h<1>S-T;5cIp`-e3I4O@wYghYx$Li+zAfS@UbOAC47)q&$LE{v+cyV{IcV=vzw z;U*ATyH^G~PhByuY>wULXTEeST#_)}rapJMXTcmhcg6e(2{u8mt!l1c7yTlf@o}Lf z$@#(gMFCBXiyKZ`t(dp^N4aTiY4VoBeBs6D%sGyy@cI1CM0*;Q_Fs-@O|@=GWA)|w zD*K;1_-~)IUXh7y-wE!=?HuRUZrfhFvqIP8JMvI&i5K5@BBM38W<$cbI z9IbNZmo7N=;uT`r{{!^9qIpKjhpUXl51TuaqegfRYc!p^m=+cFCj07y(jL)Pr#poo z=_?aP8UxDJGptVkEAYv7Q#|6iYgFK-lWXolcB{^Xe}A~1*VOpSUDH{GM|U@L?TPkk z!1&vR;B0Cuof#&87?2la$HExh!16auc$^M`Mto(yhC$m)#sZ_AUL+RUJ#us(O($C& zzpw+Cri%nY(d?_p$DW=n4=bDO)j7f0*C7JF6KkOc7Ubl#csOrA0MoK%*IR89ye~Yh jZ*|Epw_Q8gXVWmK`pBr|-GaCqfCdr?BLw?{6LbFn3bO0O 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 zcmaE+QaC{(l98E#fkD+aR|!b51^9%xK7DEoM3=TiyaI|al?3?(r%l*uJt-E*lkjwL t4B?1QPGDf>6JulKV`F7x^J&mxW#BhqSoy2)Aumu3gQu&X%Q~loCIJ3{8I1q{ literal 4710 zcmeHLX;f3!7QToOKt-S;X!Q|-78Ea;Nr;4biV8wN1;pXz<|bSr1IdL1t*C$&p~&C> z@(`g`Q4yhv7DNjbSg2^N3Zf#^d8l>j!wIpzlYk2A^^a@4{v&JM+ld$oUO0leD9R$ zS^w^Fx5bHlg@J_{`_oQQ{e;)8vT0MNew%L;QYMS7h}eQ~TP$)l3CF_I0-a-E1&JS4 zx45^bWGQa_(}q)Xa~~~fIO2G*z`XAM%_^o%Lv(*Uhre5xvN6RyE_hjM(GQtRXZkFu z^5<_;)zIWk6X-`AA9TcPCs-xj+3?4e4#UOBy*$nx?`+%JiPlB!_=S}AG~<|A#~oc+ zg(Q;=7g}nc=iXRExg^^BRrr(`QuUYvU%&Nft$}lhv-b*cXB}8 za-|xin}j4~I@^QJ+i-|+)-)+b zLbkl$*0@JNIv||zwlxzSpJ)y5kM3wcf>#OWc0^Zn)J~}1xK+HOubCrQO$0 zBrC3uF4%MQ+JWS_O3m4;W!Il4wyy2r^oX7Ry{A%s^v&g?9@VP@Ch>l+zPT&gBl%48 zJNl!VhlkJobZJv%O~H~^$GV=Z>Uw)};o|&-QOABibhn~1CA_{mrOmT6z=rJ+)Z$gY z@8=aSb4zPOScL|*(gRrZR0p4PECSwlFg~MCfjyI+VHPT_tHF7UVNAxs0*DNr$3qn|7euTO zVJ=#k5-bo1a`)6K5i|}X$RbRN%lVY2^$ip=9(dN7sT8svLd5YYk-?#4Uxf-Ivs_p%G}vE@ zCow1el?1MklXaYkNRdeJDHJeH{*a$c865nPUalTg0q8;1B1$UVg+`Uh zs6#!}gntqs8BFMJJ=76kAE62{wIWf4V*W{(oNyRQAx1y?D-%`m`f|i56^qAY0ICL2 z>BB+>3W7sFdgvsO;xeV)3y3`oN#K%CVhzhpH=-|RXd=M)g`68ZphFF>J^Az(Uj86w4~O1V@& zpc9t@@IWy@SVY&SfI#m7YT@~+FoaO3A{2^vK1G)RS?8&5Z?gNq zqy*t=fJoML{9w=fAku-ifh7=+>xal>ecSR7bRdWtNy5bXK)`Qc2#rPLQVgu`!G`)^ z$Ny%sBuqAtl|u)Taxs`iqe);l5gmgW96DRf!00IE${fzFR!9g9qQbnTpi)o`Xdrzx zWGB6pGlruzv6xOL8iNkg88CwxLFe$;t~@5wnMUW)XcX#T!BpL<{!p`YZ)L3p~8}5qTxOpRJeVB(3ete%jL@;G7=jGe;Ofl+AO|#2dK(di8nHpo{{miiW+&RGo z|2h53gt3;le@^i1>0WjHgkgI0#(k15+tL-=@-qBeB33RKdz_Nt(YxG)$zZ;46J$22 zzwT~o?W{LB|EI^R`wz~DgNsoR~#1 zDYuI?kvF#6J8Um>G`GxpGjU;bq4n6U+I((t82gNk&_&8sBrKe3eYw_g4MMA^oTc7z zk1UF8wwjg^8tQF1Ju>6h{dppa_uH`X@7LZgIJG;s!X#jm(Uvlwr2ZRgp4BgAa_CRK zGTPiQ(Zd*S1Y9 zeJ>~&cQvn{wLZpN>$yuY$MD3DUiXW-7Nd6MGT>ArBSt3f*X z-8<;)eN~(1l*@VGY-%i;8|VkIA$y3#!P)PC#Z(y-rG}s}U+69asHoT$7)gX6*q?NF ztc?ZNzU6Qw3QV&Fe%=w>HuUShc5e2%QH{-B_KlLY6D|8{l#@zZ8XJ|_Cg(b 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 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!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf#7JeZ`siwX6RDnVXo-U3d7N_4% zGUPj8z`;CsMfd%Kv!?#9Z`yBgiL-NQ(21bXSGpaHIf)HT9WHCFV^&GM<6|f&@9>y# z#4LO5wye}A3Z4^Ob{THIc(3eH+BLPS)_dxYR3`m4Y&|vq(Db;UY@TJFH$qyTPX*e= N;OXk;vd$@?2>^Y{PSyYb 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!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf#7JeZa;fbAk_CTRXPZ!4!i_^&o z3q%9L!v6L9JZAFwq2lZ7`#<;zm#nO86Pv-q&3}J?f6u~uF!R9o_xB~=-P?Qm$KT)O zY@2u$*mxc}s9clwX~|Ky7L$;WVDr=|C@Q*SCZ@s0AaqOnZ|K_d(}0#Rc)I$ztaD0e F0swHxMOpv= 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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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png new file mode 100755 index 0000000000000000000000000000000000000000..1e81819ba95fb37c446bc5b37278432023322031 GIT binary patch literal 5736 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 literal 0 HcmV?d00001 From 6572a8c908563ea62397394b7edd91846571d2d5 Mon Sep 17 00:00:00 2001 From: AFCMS 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`l^6k~CayA#8@b22X{I%t>h2l#}z0!5XTm34GjA5L~c#`Q(Xu+NBAe zE{-7FVdQ&MBb@0R5{+yZ`_I diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png old mode 100755 new mode 100644 index 61a300fede1736bbafa7e07d7b106756b9c18edf..a8c89dab469bf26d5c6c0c06c3dab498bccad248 GIT binary patch delta 146 zcmcb~c#3g?gcu7m0|Ud`yN`l^6k~CayA#8@b22X{I%pU22l#}z0!5XTm34GgTe~DWM4fqiHM1 delta 161 zcmX@bc$0C0ga!v20|SHn=l_X7im^Dz-HBn{IhmJ04qKA9y9>jA5L~c#`Q(Xu+If+l zE{-7Dj7i?^F5L3hj~oDU zYCK&WLnJOIKZr4HWaP0(Ghyfy<>8rYoNi!HP-tLaBAE$f6d4(unRAhIQc8Nlj7je} z18tU`5z=4{x%?)naS1m|+PWy##4|76G2U? y<+WgEdeID3myb_Ed^<#ak4cpjpLb~CXJC5n>-PQeLm!|+7(8A5T-G@yGywqlF=bW& 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 zcmaE%vs7n-1SbnK0|Ud`yN`l4DmsWxE*90OmkaO-aRmxK&A0s2X7zum&;LtR|6eUo zR#w*0(J?hO{r~^}-^%}rKox8yL4Lsue?VY9U*`j$2xF4By9?*Xn@isSId+~djv*Y^ zlM@`+o(9aCE30;iL0GfFNbAy{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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 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 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 zcmX@7Rxv>$fr*)cfgx$G_$MI66W|l#3Z(Df{{STa|Nrm0>L4qS#aI&L7tG-B>_!@p zBjxGh7{YNqIl-ZUnTL(%j6zpyCNeP>TA%Vs0jgr~boFyt=akR{07aZ1 Aa{vGU literal 4942 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 R+ypQvJUAk#JRolUe*soZUVH!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+aR|!b51^9%xN`isz;d!w@5vGzLzu>e9TdgO7coLp2jv*Y; q$q5Y1d}3^jd~B?YY(5QItPK1n3@d*XKI8?eVeoYIb6Mw<&;$V2{uM|7 literal 4706 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 literal 4709 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 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+aR|!b51^9%x`hdY{sR)n+Q%R6taN2~e){|m^JPA)1#}JO_ q+SB_QJ2{_&jcKXT3_llStx@B4hu z_nk~OO5+!~I{P?75acR}7A1hsDVEF00lfP?d5u8Oghz$46jK6{Pcj&Bl}3w^Oa%sv zgqbxe2r_r}mZvv%kz6+1SSGH>kT`9;odGkuBPwnLbmicy9|=3_ey}^c);`o}Re0Ia z+OXI~^ zJL|}fx^7F@M ze~h2M76Jc}dUj{C-N~7|=IoYv-|XouO3%36=Gj@-5c}Z^?Ur4R$lR%?6~V`At~C3d z_g++#*}ow9@n&AJE2mh#!^?rpx={PTwc+^zK40Uqj-8i$GeJA2eET5}CQ;um z4{0vUAqF2b7(L`wsj){M9BFTd)$5Ec9j>;iX$3pkUsSa>c0R~XPiq~x-;_=3{(7*p ztH4Y#dwOWcjoPR{_I1gb z@aBW3vhudq9*bvH+IZD1Ch3cy8CC0ky19et*pzWpcFnxcC6Ha|>Z~ADauhWtwBk9* z=jUHHrZui?{nP7mxw8o`TXAP#Q)kJZz28g?jz{cr-Ks;K%qZTUHYl&_<6mzGi}c&O z_2Qy?0Z-kAoL+@RK7S~^f_u+Akd|({&kpPe9}Q4`O59>TitDI|5?5eUv(5l^1_XtK znGFbIzwFCD7>B+VFB<#Gb08XoeI-*I@;I_!X(ZEAR`U^ zW(FYx2M8?zBk)`!iiz_uy(wTUgc2RiH{=?%)^U_54bx&e5K4fm^mj@wlEg_zGb|LS zH9CVe3y}Rzq)DTCOV&HRSv=Np#x?@dM{(bYelxo@7(~Uz@kKbAYiUm+5|AzR`AQts zDEZb~1;*eqFb0bfMCT|dEEWb+crb%Wf$2dg%0lQEm!TK~CD9WmM2}(?C;(2?030?O zMcJ^5MNwfGlfpt+ObVjpaw$9(gQ4OgD5_**V<0{>YJe&c?bxm?P)Yy=E9fj#iKr++ z3?_i$GBFB*1YrP*jRi4O9HxrHwn8aUeiUxhAz(Q*Iz)}p40^TIVIiC!A(aTo3@ZHA zBGn=$6-W?}7i;vn=C=-+Mu#Pu5DT01AQsHvaDsR|HcaOR1-%VQ#*73|q6L!4SnXgIzR-vvCfq2)ajk%CX^CXXw916A3=wU5J(=Tv=#z+!!9%v(W^1Azefc1#;*CT#R^if6o^Vm;c|I& z3JZo&3c_R4DRerjVse7mbe?LMwo!BfSDEq=BNm|slY(i0fUMJy=31$o_iiuwnV5wq zm;oRe6b4g9=kQr{K9jcqrt@K#OdA=PX4%zmCJv$f4<{kkfHB7a$Q!nS;{}{nw9(^g zgfk0`zvF9UEq=!e0D8R0d+|F?*En78#lU+7kE?5(uJ>Z#y@JQp^?#$w`RxM_rU$=* z^1*~5O~CMVUw_~|0Coo7R& z+x+#Zdy^cuKMZ7Pq7&pZ?K_Is`E5>e^i-$MlG{f-wmtp*_mWHEn3u~FGTm;S$_cyP zz2e#l+x4j%52?DmYO~5qOT=eng-I^Q$t9srGn|+V<};pTQwy=OyQQ_G+3CW6LI>~O zJEx3ucrLoR?7)oa{SN(C59}wd2TuBHakYPFpfCGg@#(GdrSjFcs`FENcKHYFstlau zw)vOo$*GkdE<4R--0CIlbDjxQH5boGj`e6i7Ptn1>l+plHFrpgl+*5iD3MAd+-9eg zT>QLLL5_H_Wb*5^w<^BdzpdUWYK#4jy^(n@d)7Q|PGfTDkLK8a8vbIlZjFm=QF`r1 zM|%6vuETqvU)4P^*+XsYjG^sMvl1uz*>rb(dnPwAabRuRtlHO-3fG@XU$QpHCz-=O z#bazw{4M-$RaYA7S2sDl?CVW8AjeO>jsA0Ehv0hmrOvLCYM)oHp!0W)ZDBLpOTn|L zgCcg32x3G2kRwOKeg!Na7^0UE5HxYB<+6dQs=a{G(IklzJKlEjoH8$P%?AsjfGJoa zijZ;J(5Le@@| aMGOdv=yuI2m~@f?U?7P&UUWDzqxir6I@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 zcmaE&QaC{(l98E#fkD+aR|!b51^9%xrqvq*(azt;Qh*{%B|(0{X%n_uPl^TdBs^Ul tLpY+76BwBJ#Ml`5*jO3ad>XV^8Td^YR{kn{$O}}%;OXk;vd$@?2>^zP7uNs) literal 4708 zcmeHLdsGu=79T_&KCptIh$u1Wg0e{_k4Z=*ghwKY7=!>qDJql6Bn0vz2_&EbQmiOv zRZuD_Dryla;%mhhB4q{FN~uCo6a;OlLd#K9RCX0~Cjk*p`;X^r|0Cy2GP&RH{_efM zd%y2wvN<#)$ZoRBWB>r{1bnUt`ez;$+??3tNcuf7WFZH>4B2S|7bip46Uxw*Qm^=e}d) zv+k2MLv)FH@t|!#alvdT_kace(#~&?%&>prJYU$Y=gp~HBj#VL^66L+$n^>!s6E(W z7uLS$+`n4xbot1&;QZc>%atC@yDTmYJ&n3ie_|e|y`o68s7Au+tUPi8X^iHPoXU>3 z9-0@-Oe;KB%RB#SV)Y)o69NC)+8pXyl@{mqgU|D?C`aurTMq^7U=iB3rQGz(**H-5 z)wF(~7QE=pnCCFK%rQpMEZOp9FOagKpf9>d)Bc>liLt3$PvF9$<8I0pA_DFb9Ju*{prlDM*97>+csx!cm@W|rLQ~Fnd-l6K363KeTD-Ids*gtT3Jd zMK{iKaBSUdO$E9lZ0iWq;{tVHLr95c`xNPgpRdk9CzjPJMAI#6PtWK*WK&h=(S#d_ zx|d(zp&BgxRaE?D{)N7Kond>Q$>Lq>ehhaOG-mz8c=cmv>Kwk*_u_fWK6$80W+zxKL8PwzcBEunnV}@JIYrC}HOD~Wy2Yf&7HNF#y-o>87c!TV0e z`Di6lmWaD_gaZ4<#>eaR8WxFUFc^piDp9SKk;qIYlLS&o6bb=D5Ok?3J!~YXbnYgK zVGb^;L$q>@UanT*Oq{S-ovdf$@z^@aeKfk3t3s zgrTDzCJAJ6rN-=qiTx2$FPDB0>!aLEE9P>>CW5(-@_vMVU%MHMp@c#fSB)f_(i3pm zcvF0qM2*NLEb}cLqB0p&vXnq$QW*pqosJSX5IIX0EBVr*6>DhWmf zK~j(^C3_PXD8rjTV;~4YEWxsYXbg}crc)sp@-|aR5Y|$)RtaP6lq+EwO46ug<^_}B zEdNje8&4q)CvLWcDqy`7b713_%T>w756}p?5)IeGCN;@)8c1PyQ_0>8ItVhDA3!Tn ztqz++6DJuYQifA7wS|Qhg9!_p<`g3^dtkM&0<|ctS8F5GY6Tl_N&si_G>b+h5 zC(R;5WC*3eSf40j8i58%K>|!cK>~y@DX3HmOC|K-W{tAz)Ka|x)}sD0tWvBRY=F$w z;5^MzF8VkZLp*BI38at-WD0>ojUY2v5Sayedx2yY2;xa21(Qs>`hCSdq(5llV+M>l z1~9*28+N>4rxj`RxEj&SB;#NB8tKJf7y+Xm5AsR+j>|PJ*C#3PN#OD68kg&n6!;|Y z_;mf>5?hzW7=dt-${9NnTgqPr* ztfp+Sl^zY5$>mL)RS{snI6LNGq|J_A51O1WigmSW&HB5aHKKU?uG%C{XUE!m)t1>Yo6Dr_&cz8|=jHI~Bhn(LUc%@2zKFA>Qm8MPf-P5c z>pHIdyS2*p#&h3+?w;!sq4j^bzkGgV&dg`l&svU@=sG>7oysbj@9QxS>dC6x78@0t z-c@9Xez1GK`|d)IY4*AQow+im&}nLcG2go=47xr`M3i}}lU4>h-9GP;0fXfgf7k7M zgcC>CIV{Kt4fVHQ7@c$T+dMJe|4rCu?=rh~T`SpMZo71=)y{(fDT5C(o>qN9Wsslz z&FZkHIzG8^U= zzZ2}TyPG#i+Za2|$T_TDW?6mCuX|7X7l>QwXMXt?x7-J8Hhst6f4Y_3+0oS2UL$iE z8UlXk);4flZ|7mprq<%%AT9s_^8p)%92&wblQjI#bpSABhUu~Z_7pi|MjO3A$g_Dk zb=Gt$>lnV8iv%E<#<~aeLkjEd$7XkA nCUU)pTvkm;YRPQM=28H_almf>6{lJdqX7iG5bp7SxUByHR(a#1 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue_detail.png index 5c7a34fcef1e9ea940f3d6d7d69073c034cdeaff..842441a2c6252409b1b5ed2517dc03a9094dbe0b 100644 GIT binary patch delta 95 zcmaE&QaC{(l98E#fkD+aR|!b51^9%xrp>$oL<(w}7*i*`j>R^*5RvMY5J*Gd7wR|P%jf=?7hb`lWrwEuX{_CIpYWM=N;cklh(`+X;0 zwuOcS+E_VR0RUhl3KE86_Zfx@XMugYJR1c8!1P&0WQ;BxOv9@+Dk&;Q@Vaz0f=BeI z6ae&{k9UWiyysyZFuJmNk%!*|ILex9UFgLC|DR4 zxbz(EbuF)^FF%^Jexu#p>f%9<&Sx`|N(u)%d`o-;CA*TfZ_Z>Z1pTjLw(Vb@cj#4h z*R39#w!L}j+360&e<^NWZs|5J_*&a}kCnH-=*+3f+y8Q@wMn|e5ih3x)P-N3re2-3 zt1e*R@xxuwcan3@PWwmCi`aF9^$!cz&3nhwJ~`HWCDrptJFU0lPwpG*8?rfHEOTV*9zNh9)M{jJ`aKlSSmL1IS1t@`Sa6FGt^ zfuGC4f~$cKT%X$w<3`S94-OqXe9Oe`NL^c_c{a8zoKS51W5mmNkV-)UVU+|S=@n{h zc>sX7K(7X&WJHITATm_RCk)h`Bj8b(PgubeQ^ab2BoPhD&>#^RA(2ozKFE4dO{S74WQBq}*+Z)f zNX0m=Q;gDH^%492g=aazufdYO$!)k3t5D z#Gw-&1`1@TLT&WI$o|Muhe|(?^-*pHjj^1`iD2#%xF1=+uia>jS&79wp$bYdq$d*c z35NJQSOuXl&-ln5ekNQOH>*Kh_w?{fHH)vR?3VD1K~X1 zP!XR%BT+s`Lgk=NiaGEJ%TQ&C{(~YCRUi>M(7+~@#h}pG92S>OWi#1a`Uj(EM5Dzf z(SS*%kZ2sE#?TfXRt!cgXqZzBz$nLR;rVM2P^Z#Fs#J15!H^Q(;AtFhy!TjBf>14H zk#3my@tOAnWn*t+OF)hqRd~E{YuEioMCd|40?Fk!a& z^gNujBE()8FwLRL&+hB&RR^OiclNt8(4g?Rx#sOzn_ad?Svtt#o#V`X2hEx;Ulz3m z1ixJqo@jUP{8~Xz_qv<)X4$K@RZ6?&97x(-lpD|-nGt1umXN#nc><13qrc#a@*1_@ zbT_uN*Ws=_T|CtH;1VphcqP2MviwW?Cl*hxmmk*lxZD0MYv26E?(>)rvYHCwR>W<% zw=XT`_ILALzbkdOwcGyMK6+K@Z0lY6V$QxW<|T)4l8mET8@+V)jav7OAmv!qBJKCR zcu7ptOt;+7P+z;RVsft@Es_v?--LZWnt89}pN9*N;g;l^e|yj`_3iDAgLScVHub*? z%*%Ybxg7c2r}#|XEx>YXL(mT=+xb1+ZJk}`WKJU^ zz|Vb}R>9mGMcCQYLb5ba2rz;9fF&Dcj$o3{)Ilq?05E-);W7dC?3;rLEp;MsfaQH_ zhZ#JZ=J+yGOyngJ`bKhEp=Ep1U3Y9UZD{hD-yqGjw;MjCc0ADB(4gLdyWIYhqt8jH q&g{6|o#)BA&zi!_mdu*@F92|QVjI7trDXtv0Ym{I!sC7kS^opi1@P4X 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 zcmaE%QaC{(l98E#fkD+aR|!b51^9%x)}N6CBBnf+-#`(jk|4j}v@O1TaS?83{1OQWA7X$zR literal 4712 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta_detail.png index 8a1ffeda806b54a1b77e5f1a5184ee45bacac7c4..cd2d234587336d898dc1968f608d8d13d6436708 100644 GIT binary patch delta 95 zcmaE?QaC{(l98E#fkD+aR|!b51^9%xZt}SSMDu3E%K=50N`m}?(poShs&%>-Ha6Ym&^~-~RUA-`VG^ zOg4uu3ADsH;vfjJ6b1>x!RIvnWi|!8JHH%8AZT)5R%Em`9La!HYNb?`iox1U6$WEE znG}L_ZBGlrj(53R_zy2{STIRww)tTKdFhGu@oQGLZhJJB#H)IfQZX5;&56sk>io}8 z%fjl?R<|W6+RyrIxd84NE{_DjMHPcGc?yw$hRhgY~eMf2utuAJBNI(qYgki3Hf zC))3IST_GVFEcmOe&?4v8$wK7XD_U_D#ojaY9%6jl zg|lZqf7wxEP87+jm%qFn)4S&c|4dhllTp?^-LA^ieW%X0{uPrilcXS6W+~|8mI58ZZE?&`}P&nY~ z*!@>t?D4+(t;1i%;j}#0Kfi8YnC$7z?}F3!|6rC}V0&P3@9$3QCCY)0hT!je`jZE4 z4!ZPP51Osc_4acv+5YozuvxZq%%COP?NG^`(9&gKS2)VR^hb*pb5Nz6h)9%TjHr{V z!0vz`FP=_?pedLZ7GsGr1sC6Y?jjzRNx1lBbP-vk;$um&pe!{Ok+mce%}PPp5feu zjBp4r4XT!@v@)dv)^j3aWtx_Y#{)n7u0FX+BzjM;(2S}8^dRXF6^TM5ljL&J*a(f* zKOK;a7WB6fnn-Ynkis#IGEI$Q{^^)P>oS%?g1(PerKwX5?MP4(mWs&%R0Fb7#-$7t zibCH<=p{&$$yJ6ZAoe(sO^=<$Ilt{!8DA6>1c|rjf zug}ksC{dY&WB5uF(-DM0LkLtl$|lex5(+^~!%za1K_k;BRE){MkTFz3g+_}gP)tt+ z$cZw*Lt&#*7L7(Dpcq9=pkY!Pfh|SBEmKNi(aB2B)#rgn>!qgft ziF!^7nMfV+=$C~9ngPNh`Z)yzh6vCLhp)yEtx_GSRHkzA`jTLMq+z^auaQLwl4$@U zQ$O*eGw+8aj@*rGfmE5n1;d815VIK=i!5fM;_>VnrBs`Ns4?F}&?)E!43ME4*xewd z$9Qx`5~kOQOr;PgR07pAlEUQBnH(y8KAFNHlkud{hDrKe{jOs#(*J1UWdMvh20+}1 z4ID4vv?9Gfu0}P}%lHqzM%UsW%mAn-l6;iD6LL++^-&6Z6nJ8~Cgl1k1wINqFz%hOHMLJ%;S^`$``oDh+BIRb|Dv}m z!;`GLF0JBq-2ME{1*6=U%}1o|Gm4W7@;CW6L}o3uIFH}t-Jf9QN%j1LEzGOad~vs~ zvE`iE^*--EA3eSz5ltBoJXl^n)9%HT7q`mGG#zeM-{lm|@phX{f1FdlJ#Jatny#XZ z=+3=!T=wp9v$Edu+Ab<)kFCXS-A-0f82yTUI5Cl>Ton~;d%MOh8zCR9T%h^-S6Ccf zKizdxXsECC+~`d|SLBQFzHh=l8D85}c)4uHQL}(;CSR5KrN8aWets_2lSz5@nMtY7 zn=SHe3!`-_isP%F_M+{_4nTh;b}mX8Y@#O&?&?pDnCd*~ZhLJ*T13RFwM|aN!@@$# z*8I1$4RKaFUa4}C(S_4KkM_04qRxjt@!5Gc?;d3OuiBvf$6L4^cbnVVFD5z;4MA5Q zshfDSZs&t%(<$QMKmkOD=0K)Q8GQ&?%vC|lH4rq_Mt@C$_7%+lMpLa&=~2Ktlf|f@6LOIsXMD+Up_! 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 zcmaE%QaC{(l98E#fkD+aR|!b51^9%x-l#VQqOjlT)j$!Zk|4j}v@O1TaS?83{1OS^d7!&{i literal 4712 zcmeHLdsGu=79T`j8eY0U4~m4S1;o7Hk?;(UfB^&qMAS?slQ2LYCV@oIqKJynf}pO* zK>-m#S#_*Nr_e(&;v;D_&w*QfHCNpy%zkBcRyZ1Z! zvN~3wc#3DPB7#|J+JSdBMp*_tw^o`g)oV`&LUuK|V#i&OgZh;(=rD z-stOcw=|rr-}B)3t%}kJpRX3U?!J1nq)fxT^z&SQ*XWlzJ!N5D@;?&~cMfgZ^#>{WtauH(1#=B^jbK zQYrQhxZ0wXeI92H3-+D=T(pnVWG8k>di`=kF}8Hpzss*sf0=_r^O7<)xepB9u?=pAeI_rZz4cU{2N>{|Gog8pV=disVfA97_;ytXNe$gzM60@jE zz9nP%Bx}cg37p_bld41a#Cy*;>gch>F2L>3(ZBQttc_oFR!HK|#eFm5`li<+UOsJ= z;tQzdw0TYgmjfHj6TAzDk@H73H5WQBKA85OJI50D*QFi2m6lT2b1s5*JWZy&(p=<{ zcv$(Q_cU9X7a6xy(Q*2C$ASlsVx9~&BLPomsJ`AVx{<){UY)+w{kC5%&Mouyv+JQ% zzUckm%QNo`cFBIkE+pJ(Ka|s>c-8WF4ctf+HqKv`+4bU9LhJrzNv-|vF||dm?t3NG zJvYV7obZ?wPuI)PmvJ5rCj!>mUO6*=!S=I(r1JiaGorWsYp>-|VIXdDd(_{GW<8o# zC0KuV#mdNp-A&J{$|Bc2+4R#l+MF=OcUP}*3U<{~@+vIq?K|yr1{CB~zwRt?xto`` zYq@Q1a&Ep~kb6zZwXlb?2OZz!+I)Z3-QjuFJ=KP^hW@*aB?rK0xME-gl0*x6h)O|% zr78(ZGAPtwL?Fo5-=Kz(bX13zpmI#fCp1Veyo5e=r+VJaowhzUznnL0j!0QC6x`6<*Q(HOi^JIVs!gKU7+WGab5 zRw&5hJ+!)zEC4c^&>wne0Ii7~}J#Dg=}AOpjD1OqI&0RHBs4VGt#M4kB8Efv$uz z#%E=Ok^(3hOG;(Y8Em42!(f1H5R}MeAOMPvFzFOj!liLg6O#ALua8F1he7Glaw!v{q?ra7?*_yiUGvJ#y$lACJ#^xFIa=ZI+Z3~rOMzFj49!bo~HK3 z`;IJ1IHm;_tBf5#+VerMeB^Cp1Trv_3XeCnEe}RUf@t9^RB8$Y{6FV7^Bi z>b)HMgT-QUSZuBg1`N|!Tq1*pf+sphN$|v^fPaF@cVAlM1dKD3uTbe_Le#Zf)O=i*;KXtwW0~w$%h>y}g(F?9@^^ zoBHH)i`szSiWIpx^L5Lrmmh!p6zM)x1^q6+7m@y^ohg2^bucY%s=HZF_qXRW{@O1TaS?83{1OSAi7pMRL literal 4708 zcmeHLX;c$g7A`~(kwstx6&*uB0X0b_BxaGY2vGu}?4V*xrBW3NvXKN55jV6I;kbZX zH-mx#irV0A+aQVqY7feBX_OHJr4eCl*M@dMka-EHaHjuw&h$TWP9>H5zWd#KzkA<1 zscZ>Zw7}AQvN;4nmcju4Fz`8Ef0>zr_i0`I2n3DlN{xuogdtjzQl-ENDMr$)RAMAd zN8k{oYka;Z^i-Rhg`j_lfMz5#+tMBfN1ooWWX+2E+dfREc^~gcJSwVPhow!|taEwZ z|MB!4T5SD=LkFLny_=h~J8H64jl|g|w7X+^J=LkT%VhbezPzZiy632CCE=TJ9cPSmLK1g5w&q?i&g4D z)!WWWe&wB+X_nc0T^cG@CoV3c(H_64Ucq;`l-eu(Q59I+o6~o`A@|}oE^1#HQB?lT z&eVnNoyY@Iht@{B?u0oH%*W0R^h^5T>H1>0>u1N>g83G)S?0k{&%}E-`Widgx7a!I zZWxcQ?i4-H1-zOS8h=u_)7>i5_}?Z`7tsUNvg^)MTc+%HMcnLaMBLutK+*%JZJQUaxcYZr~;`iwK3*{HV8 zsSASK(-Q@-3kgba3EX{(?r3BCAE@4j7u0GwI$*bJ`eSm~<*VG-HoHR9ZB}(&+%?41 zcIJe+H+)Nsquew9K(CzKRGw)cS(@;)@l5oQ;)K$>2~#qgYXTW(6L5K5d6q-;aruju z3v7A1U-&ZFy$fgW%}q;j)221k3*K&J->*GH9Q%jt;@MK`+4-THw(+Fz;tLn=XC$q; z!ISk!Prp2ax;H}GiuGkHry{FnWkf|_XO4{TNWSmec_!H z6t(~S>xVf(>tAesd{Mn>f$ZwdTbzu26>v_jNrgi3>SjyVKgZfm?S0%w{Bo>S(X{>6 zf==gdn;x^(8@=ZByE-j-_ur5h)C^mpRE( zCB}JS{__VZz&AcQUZYX+Xf&->OVxT%6)Fjh&gF7xFoVWmPym9WUMbfgI*MHFtfv^@ z@W<4sico3@g`A}4L_~^Y4WCQ~>!eTl$&|stpXuf5K^1@=G##R((Wx*^CZi4YP-_G! zfMhVCKlM;YfK!APhN%_FDijl>U~-M~Pzo{n*E;-FqMdOXjXbEF`!~2A{gPY zP(Z){RJaJGaF}yg6fvCv<6JIl4uTJ4BSv}i6)G75+DXU|2}V=OC59M!!Fj$RLOz*6 z9f)eMgh&w$4jlO8g@im=_XQe3$gpq?qF0kXhY2&-9GJ=E!b~=s{sk0;snlQ+^_+B= z%HSAQ^ljmRVt}xSeog^_!47KS`Kd5OqfkXC6jDA}p8!ekX&7&k=Ri{e2sJ>g)KC22 z%+Et41K$R=fRr#Skw}KIt1Wkq-~d4kEfOf$S>k-fiQ zv_t7Uo0%Jz9*7*X^EX!}5fBzT#iSv9!?di(F%FXDQ)5khUm4fb)d_D40()14#oM%9 zPV#PPUiF~Tc;nJ7NARYJ1qpkyGXz&6QX?%ckTblx6*S@AdDpcFe5`b~dfyY0D5l2NB_kxn z*JgT5#;v2-BC_v?Q0xA6ZF_$%-f_%q{x*|c2j->pK3e;#Vwne<{$hqnq0fgb*;)(Z z^~(#sIs5!2+EkVgeUv;3OzgSNitE|goe(~5no)C8)s^J%@HgwOPc7&d?zOz1-OKzo z)=KAHs0cK!{L!Z)w`mzV?Xa~^PI=}-Xw2rSfc>W$_$|%18=EdkCinG0H#$_;y{FvE z2G6FZqM!x-5DRjG#;^%iAFzy71}srS&^SB&Wd!BsO$5d<8ey@O1TaS?83{1ORfS7kvN# literal 4710 zcmeHLdsGu=79T|AAy!d=R#C>FMHiDy-Vcbpl}LjKsDP+UCX+Bi9wY$*D!3LDMdcyZ z$GQqqAXQM?Er?Q96c86gd?8p?)T)TfBE|P2l>HJA@ofL`ob7+)oSDqr$M4?z`|kZt zzU&C_Upm=xrX>VHlZC$Cf#7?p;WD2H?hY>oQ3x9MDls@j8;HikDz#EdMB}hFL50J( zj*vo-?&t3P9@&o;Soyp;EZ(zaUP?_2av<%jhr{{v(M3gcXHIkFp|lhvqH4Y8l*`9| z9PEoPNY2!sEjrdw+I%Q$ne%R!nMay#Wn`;)^q)Uv#izyR9^epV(4c112M-H#WWpU2&p zzOTZk=iN=`l8Y@f5-ik}U1tV%yu{rVF8$5w-V?P=1BFGw_0;PbvXZA=A&gbm{e1LY zrTV(SJ+>Wk#JW)6aY|a9pLyDmBdI$%r`3{?@zdNX8)~Xb_1C`jPk)_1hk0N8K=6Iu z1y^^3zjoKGDHcid>0~xRue}fpRg7>+3O|W2G|K(E)%Pq|(a?%}dOl|GXY0deq!r~D`KA_h(F?`un zlN9qpo2!{yAbr+?mGzgRz0JQh4cOkbD3vo6UU@{7o$fnf))Qp+@?CqrE8g`iB`I7A z=LN=GwNK$k>^s)#w#t5^{zT-8=HrDYMH}~p9lsq`a;czIR6H-}gtX&!afL4C)xSEP zHEw+PWjV97S=zWJsH zy5gIKP3(96E@d~?#og^vRP@MuCasYR!|8KA?^}Rmb)V{hW^Xm1QjP`v0Q?rx9 zl2aCYI^<mM5l1I2 zwuD{P5-C5>d&w{acoUE!wOSRQN{x??r^GWTO0|qisDJI#flaQ4p$JP95!` z(fY&zkl}=W*FzHw_7Q3zu2IISG2AB(S7;qaLrAa@e^snH+E|VRqvFxH9GGfARN6-& zmkLDzBOV3{WQ1I0^a5mmWT_>jAISPBH-pAl&gevd`v~qw*6(XK8Urhli0`e$Vh!mD zy#*vge7;195fZ-f5#`b7TwKB>GZ7At%#>hEGAd@$$e5TZMcEvLj)L|uus#GORA{uQ z0>ceZKtdq^4nx9VOA!u6X3%K}nTY`$E{6_oJQkOMVl0fy!bU+XR}-Ks(df}x8K5Kp zii?UROdf|##@IMW31f)KTqYMI(@_SS&A}N62d5jMBp82*QY}ZpauRY>hEr7vnNeXN zobM4J6p-i?&V2`Vtyo zkznZf;hy(IWkYX6BM?m(RWNL9TRw^n1<{~!_|S>~zabSCi7I3`nD60+dM_t_XR%mp zKrN1=WDMi6$xJDiOXeYfaJH0(ViGovGMGb!kDzOmQf)k{#yw=9Qcw+OAY(P~0wa|R zjYW@G$4BA@o)9{XOrw+Oj9?mv&tmeK3}=MKM-UQqxL~Sbs^3@aO8p;BT#W{!wgKQb zBm>(E*sZ7|+tn~(@Bb!%paof*vjo1??)J6og9=DC6DI96 zm+Jj(y?w^pm3UhJDJ3j#rPxUO&+}iJM{AZ@Y~Z0_L|ta`gZij1p_S>aL7x;)v+^v`Q^*OhknU~MOlLchuGFN^AHU`6!peYqiMl7q?JwyN6LprF@V8fNDX z3inUGlhw~m4gXB%makl9T6xC($)UD2m_yMN_v~{!??GnUt9+0A&?0ERd;RCO^Rk%( z1JIQx>IOIa+gadjI#KMm)Ei!{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 zcmaE)QaC{(l98E#fkD+aR|!b51^9%x&NMa#BBhKsEI<*ak|4j}v@O1TaS?83{1OOgA7C!(0 literal 4706 zcmeHLd010d7Jn33L{y-|B8r57#VXlDHV9jS5HW~hM;v+Y{HDY(4+^@i=!d!G-$0sJk=wN+2Q7y4|rm^A3npLdj+ zJ5+xuI5IA9?SZb^`!h-zezWfJfYG61OJ;HQ%G9t2PEJ7qkDQJ?Jc*E%OSj$ZN-n-SfAF(QwS|(X%;y{+sp*nmiZ#xZ4k> z`Apvig%wmeH<#o=M@na7>#t-AZ4X$+6n6U+O}8zXGnMm=$Y=G27kk_*+&l!y)4HGl zGNUBs8;*QRnDZAB$rI10jr_QHX4SHU*p_|%QPIiT=B<4Plf-^ju}!kBgrju^&C4fU zPa89SCZ1!SzK=9UeR>*cwtKMt_+0DTt>;8hVnNgOoo8y1rZ8cfBn8 zu72IHrkMWAfub7bKX30iEUv)r6xN*aIeJR>0BcH2et9Sx9@?54vVpwpvyxWJoIVWdqGU9;Z*_uIUeb5?B~;WRbdGh8%yrYmuzJbwK~@XhZeS3%iSN zMm+NFb?moYRS*>RhT=6i5OYaY8+N$N?~_|$U{Sc^K>SJK1w2%xAj47>f{_ghHCP-F z6c}t!!)OMkBOsU@SMrI^>MsxpxRg&!^cPdbY5|sxN3PIdu`8nE&=nadS4s>HvI{iu z0DuD1!32XMQ>o<{_(U@<4?LU96e7XwqRZeDlf*Fufl7lBm}DlIN(wjN*>qx%9U)L7 zmGLCPc_R?ujZaM1>C`+5MX%SB^$fB~Bd5@~TrP!5r_kvn;6c*nD0Q%bq||zwAcir7 zm=@LGY8|dp5=@vdqRP_oi9|3?cw3)BEf$Z$E43pm06r)NSWTgksT75RGB!f13(p21 zBL)3#gfVEIb=i>b%E7NYT-Fb(SX6+>R8bV40W#xN1RG+IuM@MB2A4)+QmH5jLFrVIj46dV2m@nqxb!hlBBfRbD^bh@1;EKT zz+uo38coVzk(ii_N@8+Y2#L$3%Sd#XhOikdIu*u{F%SziI8Y^=IkqYjloUY07{;Kn zscaIA(3zkbmW+fTQiMc9r7Q-E!9ke_%?u?)dGk~n1q`MWSHNR=O_G!~OeXR{eJE}H=!h7+0b5-^PxDA9yT zqmtD#rbx5A34z0t5{YYpM~+GH zBbpC`<->2oOCS?B4-p7v+45j?IEfa{#-!#%AZ~aFO^20o46N@FLA|x(zcX1>CWFpm zA{-J|=1&Im~8;W4cox> z0(L9P=yo;2nTf_f@G~+Oe_#dxJ)Y!)_#LNfoURXI;DemU)iqAn2QlzL&g1I(ztLs) z?!bd7!LJ}aIL;Vu@lznkq7WAdVnhPL+rJ1PXm;tUQhsDZ$c)CNu?LCHR+HA-%8o?4 z2*W41)`U6EDM+b|x7pO~%furksWYrv@>hEr<855!OFUAoLVvZqeEquUyYTsgOC{-! z_r6*l+|j=Br}LHtDMeMXHn+XYwwA67Z;V?JZ~qVCx}e@PTLzu+k}F!@p#7}9;c830 z?Tvp2^*wxaO)9p2E$mD_G~MO7_4C_@4r)7mr<}+y_X_fz>HjGIa&c;6>gV^$^+|Vk zczN&G?mNZN_?t^Y%64b_Erv2q`6B;ot`f4GqgtL2<$ULyZ!S!&uJP0E?jj&bmz{jp z#l(a<&PrN$^KYdHF?3+j)HiwewtaoDq}q1gMyt)0VcCOsbAPR0%wW@=eqyyhWWcD% zwYU7slD&UE-SZ4>J5~YxM}BvHMt_rkTK}frWwDbyE!x{IHfF`fzRGLz*!xDbZSs$$ zgUrIzDTd(vs`-}Z&xSnQ*|r$8;|F^}GNaC-Wu3a; jzivY35sUp3i=+^A{QTs?#aAeg0SqJxj}{&aOUwT+_uT6n 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+aR|!b51^9%x&IE&qLp{fVB1|Pge!*!Iwpve$1@a_3T^vI= rqLULCnEAxm82Q*(8QFXqv{)JVO&C`GDtyQbRKwuu>gTe~DWM4f$e9?) literal 4705 zcmeHLc~leU79T|x5fFJ#pe!YhD2h&&$%HJj6NISH2q>rsOlBrwge)e31llS=tq5%u zL==UBib_SaT76oqwc_?3OY4T92-UhkRou0TAa4>7@x1=yIj{ebb0#x$zu*1cdw<{k zzLPI&#F1gP)-Kin0N9Gcg;CVq-gsGAP~RR;`%nNF`6x3cP8)^lXezZ*N~RJtZH9`V z5qeSz0Q#$4MRN&?4lCZ7Nd}^58-sG3+ikgiFZyobZEDF2%pKtcseIXLpKfZh0t?#>w zPb!4tpJ0HJlG{J39b#ZEFJkg?s8OZ*FA^JU6rq~Ny~gm z$17!RZ(b;J5@H)BHf&ipeaeC!Rp6Zvk+;Bk(wLIq)^qc3d57RW zD);h^&1-MHIIX&&!#-oQ`iHxRUkJM|OlbD)NxO4jmRHtwW_8TMglz$3teUl-H^zlF zns23dZ2Nfjl|{~nCAs`VUY#3GKbqp1`m5o7OOx%Qtql2sd{=Xp%C_#(w-?Ig`&>Ck zHf7AV`EAn=hU-X;vn98<=Sc(7;#rZmBE>A-uz``7T;@|$^x}#eTURTdoYUC#XlZ2G zGUgdyYhhmE{_MmCc8dxt*fQx0gVk5;${Nd;`H2^AdDAM{bx(6fjXe6XL)C?{ErIFh zvJJW2ycKxwKLc}^hiX4^um?B}JAzy6Q-xL)X5v-%rWeQB)8;);6?`8)!nK3X@n>CK zeE@D4ogOcxZH-d>;GqzMfFk!#D}V1K=0QvDx-85qj6YZ?Arf+%PO0HT5~%`h zI{kf>6IVBO--!uF5YDVPz3@^le_G+RpY}S7@6}c9$!I!Q)HFX4tF~?3b$e$ulG47d z>6gWV2Wt~*(jK0_H`DcB7mB!Tb;Ag)*Gk8_^UOpeX(kC+v|1Lbc%&)k6x+L?cB%hmg=< zYEq>ol?s}X6O|~_w0H50%h`H9QTp3hERN>CaJDOQ-@|{q{1mGHj{%$e3&={ z^QBA(VWU2f1i`7iP#%u+a4I7y(?o@1f|*LS9Hpj{l%q0&p;E|914h9GL1K{~2-Ewa zCW|-~)k-M`KX4AINYlTA#*lI%T8kRhWceUWn9Jj^5!eUjGWqX7^9i+v>O>o|3Pkz!4`IouLPk*Qd!V7-+R49~EFUhH$>H-L zM2fH=1ed@ND#h3kAHz|YgZscJ+%MZ8yGAM1>QFTiB%>;&s-YUlR1Iy4Ny@43=b}p{ zj5;x47Q})fm>t973OF1A8=1yr37AZfF;FnWxT@b)?92EcO?*v&A=?1u*Keb?7iza+ z3~pBgni*yM8$Sbc@i#`GsE31mkiNrm4a@aG3VaZFxVwhs`XB{92t3?f|2Mg;-yL`e z1@$XPM;&Jf1ilRbBUX_iA!1QT$lHGi0ANb~=lOo&Cj;G1Cr0l8$D5DIwUSmwItoKa zIaLRb^Io}d>paW#_q-4?JSyJJyg7S?N8UV3C)r~6c=Mn~W~Uk(Mdw3j^(00mkGpwd zX+V41r`L{|tz5X~TWPCv`I4gioY2!Tne%LZ1athKC0Vgy_H(`{_oU{twv%U@k6Qiu z#Q)EZ&N@88;-&ES1v_0GA6q=Wv~!21-OFx&cF6>Pua7yM*{9aV$Hp(aS)z-(UOZu9 z@g^_3ae1#C=P%qe-e!ZofLAh?Q|A;#m+_QK=g%I0`H0tYlv!0hT~m68CW$-c;F%*9 z2aTH)mve4+z61<jT^_ z=Tm1>3(4#-A;1A90G3>m(@R-KtHKv(0AS2NjMoTYbBQx$wA6|sLM?CGIN5W-R`9wb zWtt%p2F38|u@b&U>SAV|wZ;&f)d)b~Gx7!;m}fBDa2dCGAIi?c8#^uHC)WPa-06_B f-Qvs1o&_U-yL;^B+BBcgQ8a)kG*Y-XI4S$TKZ@!M 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+aR|!b51^9%x{s)85ny)!P5vGzLzu>e9TdgO>0(laiE{-7_ r(a8x6%zR>OjC^dYjBGv)TC5EGCJZZo6+Ywzs$uYS^>bP0l+XkKV0;?$ literal 4706 zcmeHLX;c$g7A|ES1QlAq!G#b|Y%%*DN!St~+CdD6AgEL-l~6zylRyG4EGnY7p^b`- z-7pMltGMfo;tuMx%V}FdS_25Kh$}SXhBW;WK;caP@to;@d$ZlD8GVEWP@QWD?EN-dxqtRa?Am?7?#Z!JZp^UYuRF zzthT{ap1?@8Omewgo>g|6I_3OQn#T*%jtOLb#LmZH+psAHtUL#4GRwZ&YJ$nZc^Ls zr|w>!bF1I{dgDsPt69NI+*~FKmo5l?;o`y{*Xq*x_&s#PwFTaczbU!TBP zKRuq5JsM70N%O%$$v!iR4pYWC4}S{Pws2>*I9Z1m`IbDyOU_^7YL)_k#_qeW1d}JgE*zR686lit38Gtkj$)`x3`WxrfPMOEV=Gl!}c_H(*6aF z4W~2I4c4o69>2RUBc;-?_D)$tdwSTaCRUTo@4KCqs^jl(ALk!j68d*;+rgIdb^MGg zHSa0Ujy^qd{miZP6-T$ue|ysOaF58t3cW-Gb4RvSm!-Zj0 zQOoO|PYzmCl0>#5N30BN7(UF6Zg=E)w1eG=#4Y0@{AcHF_P93LhBA8E^h3mxhh{Eu zankk_#2@ZBx30(U#F*A5pSL?qe#x{md6$BoH>`B7o%ZX})?0Vl&l~FAQoAc#8auo@ zoj=$wUBM6bEZcD7thdjIfQk1PHmh@r(;fK{CP`5`{=6DV3yw9y+}+ z9gy@*=ubU#(O?fDNl=|SO^cwybX2AH9!McWKKX0Xw5gVKWC#gOMU?=m15qi1LWYUN zk)J%w5-2dG#^MFU9)#3m^3P%onwxpVlFq=10QXP4gV6oCTfhJ%7IOt^B+WcMk${Ic z$LGq_2qxoNZrLokoFSu82sD(!Ake8WgTP^K8?9ES^6=&f;LM(u_Qv`579||h z0YrwmFt~$hD8iI6LB(NYFuP7I*Bf9h8l(W3f^0woS+c=Ru}Jy# zV6-6#HS0vCQa}v}R9ZBJ#br>rbhaOv!X=aOq`rhn=2hLFu|Mg5H1W3p25bYsuh#~) z7qDBAK5bWhnwe$%3qO6e_zNQd>Y*TCr0aHQVzDR*D0uOc9|4lB3 z&j%h<1>S-T;5cIp`-e3I4O@wYghYx$Li+zAfS@UbOAC47)q&$LE{v+cyV{IcV=vzw z;U*ATyH^G~PhByuY>wULXTEeST#_)}rapJMXTcmhcg6e(2{u8mt!l1c7yTlf@o}Lf z$@#(gMFCBXiyKZ`t(dp^N4aTiY4VoBeBs6D%sGyy@cI1CM0*;Q_Fs-@O|@=GWA)|w zD*K;1_-~)IUXh7y-wE!=?HuRUZrfhFvqIP8JMvI&i5K5@BBM38W<$cbI z9IbNZmo7N=;uT`r{{!^9qIpKjhpUXl51TuaqegfRYc!p^m=+cFCj07y(jL)Pr#poo z=_?aP8UxDJGptVkEAYv7Q#|6iYgFK-lWXolcB{^Xe}A~1*VOpSUDH{GM|U@L?TPkk z!1&vR;B0Cuof#&87?2la$HExh!16auc$^M`Mto(yhC$m)#sZ_AUL+RUJ#us(O($C& zzpw+Cri%nY(d?_p$DW=n4=bDO)j7f0*C7JF6KkOc7Ubl#csOrA0MoK%*IR89ye~Yh jZ*|Epw_Q8gXVWmK`pBr|-GaCqfCdr?BLw?{6LbFn3bO0O 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 zcmaE+QaC{(l98E#fkD+aR|!b51^9%xK7DEoM3=TiyaI|al?3?(r%l*uJt-E*lkjwL t4B?1QPGDf>6JulKV`F7x^J&mxW#BhqSoy2)Aumu3gQu&X%Q~loCIJ3{8I1q{ literal 4710 zcmeHLX;f3!7QToOKt-S;X!Q|-78Ea;Nr;4biV8wN1;pXz<|bSr1IdL1t*C$&p~&C> z@(`g`Q4yhv7DNjbSg2^N3Zf#^d8l>j!wIpzlYk2A^^a@4{v&JM+ld$oUO0leD9R$ zS^w^Fx5bHlg@J_{`_oQQ{e;)8vT0MNew%L;QYMS7h}eQ~TP$)l3CF_I0-a-E1&JS4 zx45^bWGQa_(}q)Xa~~~fIO2G*z`XAM%_^o%Lv(*Uhre5xvN6RyE_hjM(GQtRXZkFu z^5<_;)zIWk6X-`AA9TcPCs-xj+3?4e4#UOBy*$nx?`+%JiPlB!_=S}AG~<|A#~oc+ zg(Q;=7g}nc=iXRExg^^BRrr(`QuUYvU%&Nft$}lhv-b*cXB}8 za-|xin}j4~I@^QJ+i-|+)-)+b zLbkl$*0@JNIv||zwlxzSpJ)y5kM3wcf>#OWc0^Zn)J~}1xK+HOubCrQO$0 zBrC3uF4%MQ+JWS_O3m4;W!Il4wyy2r^oX7Ry{A%s^v&g?9@VP@Ch>l+zPT&gBl%48 zJNl!VhlkJobZJv%O~H~^$GV=Z>Uw)};o|&-QOABibhn~1CA_{mrOmT6z=rJ+)Z$gY z@8=aSb4zPOScL|*(gRrZR0p4PECSwlFg~MCfjyI+VHPT_tHF7UVNAxs0*DNr$3qn|7euTO zVJ=#k5-bo1a`)6K5i|}X$RbRN%lVY2^$ip=9(dN7sT8svLd5YYk-?#4Uxf-Ivs_p%G}vE@ zCow1el?1MklXaYkNRdeJDHJeH{*a$c865nPUalTg0q8;1B1$UVg+`Uh zs6#!}gntqs8BFMJJ=76kAE62{wIWf4V*W{(oNyRQAx1y?D-%`m`f|i56^qAY0ICL2 z>BB+>3W7sFdgvsO;xeV)3y3`oN#K%CVhzhpH=-|RXd=M)g`68ZphFF>J^Az(Uj86w4~O1V@& zpc9t@@IWy@SVY&SfI#m7YT@~+FoaO3A{2^vK1G)RS?8&5Z?gNq zqy*t=fJoML{9w=fAku-ifh7=+>xal>ecSR7bRdWtNy5bXK)`Qc2#rPLQVgu`!G`)^ z$Ny%sBuqAtl|u)Taxs`iqe);l5gmgW96DRf!00IE${fzFR!9g9qQbnTpi)o`Xdrzx zWGB6pGlruzv6xOL8iNkg88CwxLFe$;t~@5wnMUW)XcX#T!BpL<{!p`YZ)L3p~8}5qTxOpRJeVB(3ete%jL@;G7=jGe;Ofl+AO|#2dK(di8nHpo{{miiW+&RGo z|2h53gt3;le@^i1>0WjHgkgI0#(k15+tL-=@-qBeB33RKdz_Nt(YxG)$zZ;46J$22 zzwT~o?W{LB|EI^R`wz~DgNsoR~#1 zDYuI?kvF#6J8Um>G`GxpGjU;bq4n6U+I((t82gNk&_&8sBrKe3eYw_g4MMA^oTc7z zk1UF8wwjg^8tQF1Ju>6h{dppa_uH`X@7LZgIJG;s!X#jm(Uvlwr2ZRgp4BgAa_CRK zGTPiQ(Zd*S1Y9 zeJ>~&cQvn{wLZpN>$yuY$MD3DUiXW-7Nd6MGT>ArBSt3f*X z-8<;)eN~(1l*@VGY-%i;8|VkIA$y3#!P)PC#Z(y-rG}s}U+69asHoT$7)gX6*q?NF ztc?ZNzU6Qw3QV&Fe%=w>HuUShc5e2%QH{-B_KlLY6D|8{l#@zZ8XJ|_Cg(b 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