From 6ee562271f1da55a986abf6e22c63d721df88e64 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 13:03:05 +0000 Subject: [PATCH 01/13] update init.lua to add lodestones --- mods/ITEMS/mcl_compass/init.lua | 135 +++++++++++++++++++++++++++----- 1 file changed, 117 insertions(+), 18 deletions(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 458ee8fdb..7e1557792 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -9,28 +9,58 @@ local compass_frames = 32 -- Timer for random compass spinning local random_timer = 0 -local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Increase if there are performance problems +local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Incr ease if there are performance problems local random_frame = math.random(0, compass_frames-1) -function mcl_compass.get_compass_image(pos, dir) +function mcl_compass.get_compass_image(pos, dir, x, y, z) -- Compasses do not work in certain zones - if mcl_worlds.compass_works(pos) then - local spawn = {x=0,y=0,z=0} - local ssp = minetest.setting_get_pos("static_spawnpoint") - if ssp then - spawn = ssp - if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then - spawn = {x=0,y=0,z=0} + if mcl_worlds.compass_works(pos) and x ~= nil and y ~= nil and z ~= nil then + local _, dim = mcl_worlds.y_to_layer(y) + local _, playerdim = mcl_worlds.y_to_layer(pos.y) + + if dim == playerdim then --Check if player and compass target are in the same dimension, above check is just if the diemension is valid for the non lodestone compass + local spawn = {x=x,y=y,z=z} + local ssp = minetest.setting_get_pos("static_spawnpoint") + if ssp and x == 0 and y == 0 and z == 0 then + spawn = ssp + if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then + spawn = {x=0,y=0,z=0} + end end + local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) + if angle_north < 0 then angle_north = angle_north + 360 end + local angle_dir = -math.deg(dir) + local angle_relative = (angle_north - angle_dir + 180) % 360 + return math.floor((angle_relative/11.25) + 0.5) % compass_frames + else + return random_frame end - local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) - if angle_north < 0 then angle_north = angle_north + 360 end - local angle_dir = -math.deg(dir) - local angle_relative = (angle_north - angle_dir + 180) % 360 - return math.floor((angle_relative/11.25) + 0.5) % compass_frames else - return random_frame + if x ~= 0 and y ~= 0 and z~= 0 and x ~= nil and y ~= nil and x~= nil then + local _, dim = mcl_worlds.y_to_layer(y) + local _, playerdim = mcl_worlds.y_to_layer(pos.y) + if dim == playerdim then --already explained that very same if statement above + local spawn = {x=x,y=y,z=z} + local ssp = minetest.setting_get_pos("static_spawnpoint") + if ssp and x == 0 and y == 0 and z == 0 then + spawn = ssp + if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then + spawn = {x=0,y=0,z=0} + end + end + local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) + if angle_north < 0 then angle_north = angle_north + 360 end + local angle_dir = -math.deg(dir) + local angle_relative = (angle_north - angle_dir + 180) % 360 + return math.floor((angle_relative/11.25) + 0.5) % compass_frames + else + return random_frame + end + + else + return random_frame + end end end @@ -52,9 +82,34 @@ minetest.register_globalstep(function(dtime) end if has_compass(player) then local pos = player:get_pos() - local compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal()) for j,stack in pairs(player:get_inventory():get_list("main")) do + checkblock = {x = nil, y = nil, z = nil} + checkblock = minetest.string_to_pos(stack:get_meta():get_string("pointsto")) + + + if checkblock == nil then --checking if the compass has lodestone meta + compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), 0, 0, 0) --no lodestone meta + else + local function get_far_node(pos) --function that tries to read node normally, and does it even if its unloaded https://dev.minetest.net/minetest.get_node + local node = minetest.get_node(pos) + if node.name == "ignore" then + minetest.get_voxel_manip():read_from_map(pos, pos) + node = minetest.get_node(pos) + end + return node + end + + if get_far_node(checkblock).name == "mcl_compass:lodestone" then --check if lodestone still exists + compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), checkblock.x, checkblock.y, checkblock.z) + compass_image = compass_image .. "_lodestone" + else -- lodestone got destroyed + compass_image = random_frame .. "_lodestone" + end + + + end + if minetest.get_item_group(stack:get_name(), "compass") ~= 0 and minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then local itemname = "mcl_compass:"..compass_image @@ -81,8 +136,8 @@ for i,img in ipairs(images) do inv = 0 end local use_doc, longdesc, tt - --Why is there no usage help? This should be fixed. - --local usagehelp + --Why is there no usage help? This should be fixed. + --local usagehelp use_doc = i == stereotype_frame if use_doc then tt = S("Points to the world origin") @@ -100,6 +155,18 @@ for i,img in ipairs(images) do stack_max = 64, groups = {not_in_creative_inventory=inv, compass=i, tool=1, disable_repair=1 } }) + + minetest.register_craftitem(itemstring .. "_lodestone", { + description = S("Lodestone Compass"), + _tt_help = tt, + _doc_items_create_entry = use_doc, + _doc_items_longdesc = longdesc, + --_doc_items_usagehelp = usagehelp, + inventory_image = img .. "^[colorize:purple:50", + wield_image = img .. "^[colorize:purple:50", + stack_max = 64, + groups = {not_in_creative_inventory=1, compass=i, tool=1, disable_repair=1 } + }) -- Help aliases. Makes sure the lookup tool works correctly if not use_doc and doc_mod then @@ -116,9 +183,41 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "mcl_compass:lodestone", + recipe = { + {"mcl_core:stonebrickcarved","mcl_core:stonebrickcarved","mcl_core:stonebrickcarved"}, + {"mcl_core:stonebrickcarved", "mcl_nether:netherite_ingot", "mcl_core:stonebrickcarved"}, + {"mcl_core:stonebrickcarved", "mcl_core:stonebrickcarved", "mcl_core:stonebrickcarved"} + } +}) + minetest.register_alias("mcl_compass:compass", "mcl_compass:"..stereotype_frame) -- Export stereotype item for other mods to use mcl_compass.stereotype = "mcl_compass:"..tostring(stereotype_frame) +minetest.register_node("mcl_compass:lodestone",{ + description=S("Lodestone"), + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack).match(itemstack.get_name(itemstack),"mcl_compass:") then + if itemstack.get_name(itemstack) ~= "mcl_compass:lodestone" then + itemstack:get_meta():set_string("pointsto", minetest.pos_to_string(pos)) + + end + end + end, + tiles = { + "lodestone_top.png", + "lodestone_bottom.png", + "lodestone_side1.png", + "lodestone_side2.png", + "lodestone_side3.png", + "lodestone_side4.png" + }, + groups = {pickaxey=1, material_stone=1}, + _mcl_hardness = 1.5, + _mcl_blast_resistance = 6, + sounds = mcl_sounds.node_sound_stone_defaults() +}) \ No newline at end of file -- 2.40.1 From bbbf69aa5e8006b471d9741cdf46e744fc28d22c Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 13:05:26 +0000 Subject: [PATCH 02/13] upload textures 1/2 --- .../mcl_compass/textures/lodestone_bottom.png | Bin 0 -> 6333 bytes .../mcl_compass/textures/lodestone_side1.png | Bin 0 -> 6600 bytes .../mcl_compass/textures/lodestone_side2.png | Bin 0 -> 6583 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_bottom.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side1.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side2.png diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_bottom.png b/mods/ITEMS/mcl_compass/textures/lodestone_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..64ddb76ce2135dcf8cbeba1cae22baa169a3e465 GIT binary patch literal 6333 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_side2.png b/mods/ITEMS/mcl_compass/textures/lodestone_side2.png new file mode 100644 index 0000000000000000000000000000000000000000..fd9a1a2a5d6952131e7c8c7812d54eb8d96f89a7 GIT binary patch literal 6583 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 T;E(~FIt1O()1k_KTjGBM%)j|~ literal 0 HcmV?d00001 -- 2.40.1 From 0cecc814e1a5d86e4dcf6c53c10d5992ed0993b4 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 13:05:48 +0000 Subject: [PATCH 03/13] upload textures 2/2 --- .../mcl_compass/textures/lodestone_side3.png | Bin 0 -> 6617 bytes .../mcl_compass/textures/lodestone_side4.png | Bin 0 -> 6589 bytes .../ITEMS/mcl_compass/textures/lodestone_top.png | Bin 0 -> 6404 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side3.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side4.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_top.png diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_side3.png b/mods/ITEMS/mcl_compass/textures/lodestone_side3.png new file mode 100644 index 0000000000000000000000000000000000000000..43224083df1a2011f4ff7281200642b88bfb3b7f GIT binary patch literal 6617 zcmeHLdpwl+zaL@Ts&zti*&0JdHTR2|36p#7j!Q(+Gc(UH%&lhzqsz9bq;iQaHc=^( zEm|d&&_y<}*;?1eQc@}RQlij#W~g+2d-ivFowNVNYnbo%`~JK?_s{ovJ-fX;oMvdx z)kYu?Gn`l1d&B>A6(3C`{CDBt2LORk&)Vo4AoT{KQDR8Meg%sFnNZQj5-%XS9+QVdaVVa*Y)E~eP&rUjE`JBb8P^46}aZ* z4Tny$HC0}vm3X{q$=%eV%%|g7o*nri!8oH}W>Az)WZt*Q6sy{vkgUMHqfR8w!fFTA|f_#t|4T+A=3*ympG__x zj7xC56K9AZm1n!zRvb6g!|zKtW|i>A^+&eTY|CF}i%!@396aN|e9g2c2;VG|mhOL1 z@GgRRC;C-G_Hgle^QP+lv32h|qiQd`o$K2#=*6zlaA|F;e^AW_)+3*CJtQ*A^4Q{I zp11V$OE0a={CRJ!OxuA~^~W9W9Q#c9SsjCwMSnJ*jmNReR)B1gV zo@TjmQl{D4ycWZTE}CEuHGC=grg-1a?hBW!xf!C>P|)~d}?i=0) zUQ*rKrHR(kv6972c$GMERTh1PdMlKE%A_#}d5n?^A{^EQ^Htn~o5z_&>L9wk_|l>2 zMH$Ck@G%{Ahr7?)3}jyXvGlh9i%!PTfCj^Xrp52l_2vr>{4O7Quu?uh?$`Mh5fQsJ z<;feGMYM=CY7k4X9E?09#-w%1A|JlmRXR3cuwcD=pqo83@8IL6nt4l?%`@nOTEYiw zeqgl>rPh|mdp{cv*2}2Aed-GTl*9QMIYqrDjkg!Y`t~+gmR)=_+MeLLHWqz&x%CF@ z@@jrzo8ZV3Y!m(o)eSsSChj72<|REWX>G(~aIQy~6;k=l0Gplu(8vVN0>1koR{7#=YyVRHIcu}_2 zMhnDgPj2cR2|ffK+z?V`zU@^{uQOuZnD;bI?0TtgW~p_) z3hiQ7(g*(I#a9m8tDa??&~iI2$oGEeO5P77qY?B)!N$3LFW)T_Y#5oF)N}0ivr0Xm zv+rWB?!JdDRYPioFP)!P9p#h8>9&cEs(8g7b$wgu8Wi}0>E-rkM%}eJ#`o!9H8mMQ z@=tfgWt>`|oiD$CYY`@KfcZP^JI~VWqL_op`rEhplV4o9SeQ^G*<)!EGDh+{uoh1*nj_oRttMxrGY)!fmAJFO+ zRQ@zaXQ1xT#!TZCnOm}N@AtpfE^FxWkViZ`*Sm$kE9qH(n%^=@_ zctmGxNwHd0v2uQ8h))jsU~H7`hAOYj$Vbihud&^1}W;tG+fB+mknaFGS4uqSUOaWV5K3 zmLk`+J27p4+UChRb#xVu`-ooN*WS?`d>}OD*n7!q^O*fA)+w^27jX`yHkM_)7a4DN zSDZC9ztwq*jSSv5oYH;1MwGF4rj8|v&+#6-1+WU6Z$KIsQnO}x{)dyk-^tC!-REz{ z?7a|}SJ-GZqO(0lu;^}NdPO{2OUu;Q)^P^tyWZI4jN_i&`n|U;N9~fB&e+3iK|Hkl zxVAxRhsKBP4_niB-qEr!H&QJL;lF3AY4%LJTO!!HuqA3xZGfrjAJ`HiKwLPM-P98J zL{n3sYS<)jZ&Sra|9E3bFwxZMRh_=J`lGRga&wL8e@-il5Q_4*WLP8SbcK%~X*4y* zy$8zrUiKZWZ5y|$>+08l?nAlLewt?wU!I-JMhNuT=;6!W7{R7<&`fJ>OBn+u z5P(tuB@^(45{AqQt>k6E-xb?9G)f7PMp&T(+`UkCA_zp0v1BYB;~?Wj5z*G#C`*XL zWq8{=PEx=tD|DDtDrVqt(b3V^XcATgh2jWwIvs~6;)p~HjKD}@gi=6;5lT!H6cZfw zpo9(a#8RF}h*EF@EK#J?3XO)(QIq8GDceB?Z%!&utd;ZM4Lk8ER;wAAsbXs z!Q@yT%tIuR=xhoL#86olBn(+W#sWE13`pcqX(SFnB2d676rK;y>?r@c}7U1PS2w z;t4sTXvyazU!DN;kphaa5vT+zo<<^3XjB>jZ$bDBS`9)HxXcx-1U!~VRGx6y3`dv~ zfXj_1075~WSQx52P$Y%{y90+7P;>{(tlWpaVc0<+AQeHrA`#yTt*{oQpj0*$%5t(@ z7;YlAQcwv7If{;(>^WN?6sKHT;{Fc&FHAmRqG;j&j^{J<6N?QbjTS)>o{%Ri9Ar!X zp69Q?pP0PiX(y3FG0y+SssDzvoG92;u&fA*nWEnZ+%U147)gAdGE^v(atts4_C)w4 zKorPPrT~uP#1T6T5Qc*Ayq#>ekNdp8C}cL5U_qpCI2b&aO~#PfWFm$JlDQZPo(595 za3$kOz?bY25my=wK%h-1Tmx{P;pS528D%zEf97A}qr*T&ap8#s44!}?TKE!)3=)Y! zq@yRYJ(>M~#yu|80*?nc6b#4)SQs*g4PfXNcna(-fkh<)M36+E=+jTZ`@gtH!VqY_ z1PcZp_K^0`JxiS80{NIsOT~zFcV|pZx20kPGn^HD<`XFv^LZfjWf^>Ii~j*PMSijc z|DE_$*o3s5NE`zXsW7Q$wD51${{?V@!HvfTg%Z)TgQED!$*s^(|aq6@jk;f2*!<;rglwd=>axb^X7EOZ)R1 z1yBe-)<(nc3*;$VAHeS#kStdxd&CFD@A0zS{qT;Kc-0yS0->X)_^2S#GmPL(4XLxc zgT_e6gkLC~aJIMcrPU;+7J9a<)c9?V)NJ<)z@buOQyM`1pJ|r=j!KI*df^*x+!ee^V)K??DER~%>MUnn;ve# zd3Yv$I6r%7&@!783I{%W}esr(|dGo8&bpWeP$oE__H_;_X*&eb0q3UG<0Y*!-88 z`4mI{=;DZbdbQ(uON}&>e|adOgr#S{sES-NbBDj@`sU(YK>jbfr7>l9ecthnoDCP1 wn0>!>-caYtq=UVeXFVZyZbkRJ<&S??VSaz~WftW}IDrUf2M_xK+x4;k1rvrA$^ZZW literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_side4.png b/mods/ITEMS/mcl_compass/textures/lodestone_side4.png new file mode 100644 index 0000000000000000000000000000000000000000..21dadc9f7db72265e79ec6a3d6b3692f45a1fdfb GIT binary patch literal 6589 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_top.png b/mods/ITEMS/mcl_compass/textures/lodestone_top.png new file mode 100644 index 0000000000000000000000000000000000000000..77c2064e1f85bf9429fa4138a68a6865395c8ceb GIT binary patch literal 6404 zcmeHLc~}$Yx(_I*fTA97D`1FNz&6Qbl0Xs@_AO`(0-~Z8CX-1Bkfli=0i_~T0TBeO z0t%=_5J5#2EiRyfwpfJL4LxktE3!yM1*{8*XA)5Hp5C78b8r6>o7na0IK2k|9_` zEfQcb>Xu^xtIO}xj7GX`|Cp+K0b`Nie6;1W-=F@F-FcupN*elOx%&d#tTQ@^T_cZw z6O3L=NIF(VDB9Vv@Wq{wMb^uQvi4K@m3O`l+MLRYO5fL~<7zbz8C`Y0SxPr2?zMrs z@=Qc)jR*STLo&aK@vAgqKTjkbS+;Wh_HVl<1sYs8>U*-XPBHam4&0vJGm`zyE-Pk8)*pFd(KLE8;8ta1Q%}aT*qfyXB5mMpTj!@W z-0AvSZ^Wz%T0bju!I~w(hb2q%PstX4`1HRB*?wPlwJb(8()=vIR{F)x1sr-OXrmoZE z))`G{v0LhP(FT;0yPPJQnT}Z5_|9pVZ<3~1e{b=+S;lf7(uow-mLCHnnU{OkVrvg( z=@unrTv#OyuiqbRO8+j0)|WF#pha9;Ozep6t~Rc*KW}1n=Wd*_Wk{msk)lfEZP`Sajq!Azxo+OKW&rQaPzZXD^$F;8D@fcEU{ba< ztZU%W^9}os8*yK(Ke$*Yv+l_E8JU|syBHBO<-!FrV`}rx>b!)~F2n9pY)e~y-k!|I z`C>Tk)IUw1v1-YcZj<|m8J9|0Bk4a~UHjRx?Aq@$PcxhMb*D*(PNihl(7zDjW?dnc z8aY}xL?P`12Ex+?&y4&w^EMK8bvVR=_Q7gy+u6?Y5bJdzSB!tUy7l(t{rL_@nS+`3 zn7!69xmTt!W_VYJ?6(=wi&rJA78Dr==-*+P->BrB?AcypcsM?~=~&482R{d#YbT!P z+fdreeE%q{I(RF$*D<{l)68%%8O{!#lg1^dyqfiNMoU|Z^VzhZ#ZWZoS6}m}&-3xs z;^Uo-8wb|97%no~VlS&{V{N=6De-i>QqC+{y0LM~99m&^x*{`d?#&U`U#}(?t#GAr zZ&gL7G-qeg=AWsoAU^RfoOh&2X4DaVW}R_F@a?!Y0gwLC%4S59VnQ?4H}1WbP(EmVND)eG39TsU>*f+F~$uHsq1dD{U;H&E6cnPB)*^pK@b& zUVy`Wd!5>Aj@jon`mJs2RkSxhdh*j~Wl*$-6x+Bhrk=a8-Kcd(Rq2!ddrw^cIJ+qJ z<>-zRpFbEp$UoU4bhMb>%lqv(V+7tQ@!ZyG$h=!++W6*>sI@s@Ni!RR(fL;7>gvOG zb$vTI(RrB@lg{$0b27Ue(9Tz$C>w2HuFB7*jyiJpX4_2B6MgXUW4EIv3Yze7x zVHYp%yj&cgTycEH@i^=Yo&W0UI@E((JW8~!OniE`YT@I4R)2?%OMb0?MVOfnwZZE$ z%(MGpiT+pjJRM!Kws3icd0s@pU3yLbz59I|z7t06A65+6M(xsZNLQ!!ZgW59%&Zpm z<~&cTJ8ETnsrwSFzai~KdS7{iG$(n6A(I@=_Z_?h@yhO8luxP1I5?X-%hP04{wB-5 z^4h56iohdf&8(M(@loQ%jS+k665(mntSntTrX&8rmfj^E+mlQl{lpw`O?6}wvezSk z{L2FdrWyCAyovv)YwijYSXO_lSq%n2-`BJ?I(!&%ONrD6iam+}yTS}a3v zIt+&CsFp!+7^1}T5TQuI!aY8F9)}h2S-90y4#1JQA|WELXgT5+y}}=k4uk1@oTGyQ zQ_VmL#E25Ys>R_F1w+lkX?Ypwcg;2tht)!qVJzGljt|yVDo3ys0)+tJ-PNK<5a(ck zWy<*ihOe8)I0d?5;X;&38G}evsZ<0NnIM%5i6lCmP6R+A2;xx$UJ)fxLTbE3u}DKP z#^Hu2V7W-96iFpm4JX8tMkrZ09D0r&Cr3|VcQv{>u0XTa(kqmFA{$*$P=8PW5d;7l z9suzmoj6e*J>_uTNlO&tQAFcOR6{Z%i2xAA;twPgO83b3`u@XG+`8q#4@df20anUhu`63 z5%O>?h7S{wa72t6qClBRAK;ZD!TSV#;E(3y-wZ+3z2pA?{We}&TeNXyxJls%jZ(H7 z3#YM{!I#1!K12IeARvJ>DwT&vGlSqMbUOskgY5ZuI|Kp&NWg=sWZDEOwnU+XBru|( zLdgjtlm{a7U>cQ&%1}WPo&tb0JdbQo!_%o$J`Vu+RI(j7fr2X+p`8GQPqa!y#Yd?? zz8z=}(E&UKq6+X7ia>ye_&htjz>bU{JUankC$Q5}Y4X5u_F=PdAOU#4;}Z@k1yZ>f zZ7-38FI6etANh;Kh@TSDgpFiJvIA&j03^`>0HBT;r)3O4!ZOF( zg|S=;YX!Angs_IA@j|T)W1y6w~AfAR$1b8YyL#P5W z9|FkGhwKWeK&gV{h_eu_0W{BOb7}L8wHdEJ+Yj-o5JXd4XyxGn5+1bo2SEmz%mC@Q zv22fL|L<`R0uc%YL7NMK0MtFYJ%pzTXm)rW9|Xv#clH2c|Dn167x&0`63w4v$DrCX z0Mc9cm_*G5@-~@F&4}f27!%XY)Qn&TThnKL5i(i02$6qS25;Nqf51(UA8*0`Bt8)~ zChaPfMWI6~M9Ec2{!;y)0LK`Xi(o{ekp7kF6Cq<^nQ+gdHjnM0_c!`DKz#Q+Fx~{3 zIq^6Cj5pWcr~#$^q~xRG`zc(X!u3%R_$ctF>iQI}kBY!Yfj?E(|68~W-oH^mBOK~iWT4mpZ@5~%GuJg{I-hyk5q#LBSUqVLI+%mGv{QoYY#L3OMAD>dd4rhvyZCZ(3TX+Ku|954X9 zT3VKTG?kr=8rgUbD=iYcqt5g8IV4x^rsSBZ}#{v>Ux^w;Vf_H&=KhP@y{8b^V)d9@`5Z wrJXVy5tjrl(hG=`e^Hb={f%=vXTzwWZ_R~gdjkDoG`twL`wF+?F2QmC0zDC-P5=M^ literal 0 HcmV?d00001 -- 2.40.1 From 58b4bb46f62343015464973bb51fe89ecb1c9795 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 13:10:37 +0000 Subject: [PATCH 04/13] add new dependencies --- mods/ITEMS/mcl_compass/mod.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_compass/mod.conf b/mods/ITEMS/mcl_compass/mod.conf index 41266222b..b807d678e 100644 --- a/mods/ITEMS/mcl_compass/mod.conf +++ b/mods/ITEMS/mcl_compass/mod.conf @@ -1,4 +1,4 @@ name = mcl_compass description = A compass item which points towards the world origin. -depends = mcl_core, mcl_worlds, mesecons -optional_depends = doc +depends = mcl_core, mcl_worlds, mesecons, mcl_nether, mcl_sounds +optional_depends = doc \ No newline at end of file -- 2.40.1 From 0e15559bc7ba4423e6c3b35bdca82c68303dc055 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 15:04:47 +0000 Subject: [PATCH 05/13] replace mcl5 recepie --- mods/ITEMS/mcl_compass/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 7e1557792..053f9679b 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -187,7 +187,7 @@ minetest.register_craft({ output = "mcl_compass:lodestone", recipe = { {"mcl_core:stonebrickcarved","mcl_core:stonebrickcarved","mcl_core:stonebrickcarved"}, - {"mcl_core:stonebrickcarved", "mcl_nether:netherite_ingot", "mcl_core:stonebrickcarved"}, + {"mcl_core:stonebrickcarved", "mcl_core:diamondblock", "mcl_core:stonebrickcarved"}, {"mcl_core:stonebrickcarved", "mcl_core:stonebrickcarved", "mcl_core:stonebrickcarved"} } }) -- 2.40.1 From a6b2aa7a055af90f696e11ad028948f1cc200fd6 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 15:05:17 +0000 Subject: [PATCH 06/13] remove mcl_nether from dependencies --- mods/ITEMS/mcl_compass/mod.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_compass/mod.conf b/mods/ITEMS/mcl_compass/mod.conf index b807d678e..f63a6f307 100644 --- a/mods/ITEMS/mcl_compass/mod.conf +++ b/mods/ITEMS/mcl_compass/mod.conf @@ -1,4 +1,4 @@ name = mcl_compass description = A compass item which points towards the world origin. -depends = mcl_core, mcl_worlds, mesecons, mcl_nether, mcl_sounds +depends = mcl_core, mcl_worlds, mesecons, mcl_sounds optional_depends = doc \ No newline at end of file -- 2.40.1 From 5b67091921b4a74d68c9ab67d8bcbdd40a6c1c5b Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 19:33:17 +0000 Subject: [PATCH 07/13] use itemstack in get_compass_image to generate image --- mods/ITEMS/mcl_compass/init.lua | 104 ++++++++++++-------------------- 1 file changed, 38 insertions(+), 66 deletions(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 053f9679b..debe5e563 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -13,54 +13,49 @@ local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Inc local random_frame = math.random(0, compass_frames-1) -function mcl_compass.get_compass_image(pos, dir, x, y, z) +function mcl_compass.get_compass_image(pos, dir, itemstack) -- Compasses do not work in certain zones - if mcl_worlds.compass_works(pos) and x ~= nil and y ~= nil and z ~= nil then - local _, dim = mcl_worlds.y_to_layer(y) + local lodestone_pos = minetest.string_to_pos(itemstack:get_meta():get_string("pointsto")) + + if lodestone_pos then --lodestone meta present + local _, dim = mcl_worlds.y_to_layer(lodestone_pos.y) local _, playerdim = mcl_worlds.y_to_layer(pos.y) - if dim == playerdim then --Check if player and compass target are in the same dimension, above check is just if the diemension is valid for the non lodestone compass - local spawn = {x=x,y=y,z=z} - local ssp = minetest.setting_get_pos("static_spawnpoint") - if ssp and x == 0 and y == 0 and z == 0 then - spawn = ssp - if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then - spawn = {x=0,y=0,z=0} - end - end - local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) + if dim == playerdim then --Check if player and compass target are in the same dimension, above check is just if the diemension is valid for the non lodestone compass + local function get_far_node(pos) --code from minetest dev wiki: https://dev.minetest.net/minetest.get_node + local node = minetest.get_node(pos) + if node.name == "ignore" then + minetest.get_voxel_manip():read_from_map(pos, pos) + node = minetest.get_node(pos) + end + return node + end + + if get_far_node(lodestone_pos).name == "mcl_compass:lodestone" then --check if lodestone still exists + local angle_north = math.deg(math.atan2(lodestone_pos.x - pos.x, lodestone_pos.z - pos.z)) + if angle_north < 0 then angle_north = angle_north + 360 end + local angle_dir = -math.deg(dir) + local angle_relative = (angle_north - angle_dir + 180) % 360 + return math.floor((angle_relative/11.25) + 0.5) % compass_frames .. "_lodestone" + else -- lodestone got destroyed + return random_frame .. "_lodestone" + end + else + return random_frame .. "_lodestone" + end + else --no lodestone meta, normal compass.... + local spawn = {x = 0, y=0, z=0} --before you guys tell me that the normal compass no points to real spawn, it always pointed to 0 0 + + if mcl_worlds.compass_works(pos) then --is the player in the overworld? + local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) if angle_north < 0 then angle_north = angle_north + 360 end local angle_dir = -math.deg(dir) local angle_relative = (angle_north - angle_dir + 180) % 360 return math.floor((angle_relative/11.25) + 0.5) % compass_frames - else - return random_frame - end - else - if x ~= 0 and y ~= 0 and z~= 0 and x ~= nil and y ~= nil and x~= nil then - local _, dim = mcl_worlds.y_to_layer(y) - local _, playerdim = mcl_worlds.y_to_layer(pos.y) - if dim == playerdim then --already explained that very same if statement above - local spawn = {x=x,y=y,z=z} - local ssp = minetest.setting_get_pos("static_spawnpoint") - if ssp and x == 0 and y == 0 and z == 0 then - spawn = ssp - if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then - spawn = {x=0,y=0,z=0} - end - end - local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) - if angle_north < 0 then angle_north = angle_north + 360 end - local angle_dir = -math.deg(dir) - local angle_relative = (angle_north - angle_dir + 180) % 360 - return math.floor((angle_relative/11.25) + 0.5) % compass_frames - else - return random_frame - end + else + return random_frame + end - else - return random_frame - end end end @@ -84,32 +79,9 @@ minetest.register_globalstep(function(dtime) local pos = player:get_pos() for j,stack in pairs(player:get_inventory():get_list("main")) do - checkblock = {x = nil, y = nil, z = nil} - checkblock = minetest.string_to_pos(stack:get_meta():get_string("pointsto")) - - - if checkblock == nil then --checking if the compass has lodestone meta - compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), 0, 0, 0) --no lodestone meta - else - local function get_far_node(pos) --function that tries to read node normally, and does it even if its unloaded https://dev.minetest.net/minetest.get_node - local node = minetest.get_node(pos) - if node.name == "ignore" then - minetest.get_voxel_manip():read_from_map(pos, pos) - node = minetest.get_node(pos) - end - return node - end - - if get_far_node(checkblock).name == "mcl_compass:lodestone" then --check if lodestone still exists - compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), checkblock.x, checkblock.y, checkblock.z) - compass_image = compass_image .. "_lodestone" - else -- lodestone got destroyed - compass_image = random_frame .. "_lodestone" - end - - - end - + compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), stack) + + if minetest.get_item_group(stack:get_name(), "compass") ~= 0 and minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then local itemname = "mcl_compass:"..compass_image -- 2.40.1 From e36a7df75dd638fb4af38f9b946c3174e5734cc6 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 19:46:37 +0000 Subject: [PATCH 08/13] fix crash when trying to put a compass into an itemframe --- mods/ITEMS/mcl_itemframes/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_itemframes/init.lua b/mods/ITEMS/mcl_itemframes/init.lua index d46a393b8..e2cf9da62 100644 --- a/mods/ITEMS/mcl_itemframes/init.lua +++ b/mods/ITEMS/mcl_itemframes/init.lua @@ -222,7 +222,7 @@ minetest.register_node("mcl_itemframes:item_frame",{ put_itemstack:set_count(1) local itemname = put_itemstack:get_name() if minetest.get_item_group(itemname, "compass") > 0 then - put_itemstack:set_name("mcl_compass:" .. mcl_compass.get_compass_image(pos, minetest.dir_to_yaw(minetest.facedir_to_dir(node.param2)))) + put_itemstack:set_name("mcl_compass:" .. mcl_compass.get_compass_image(pos, minetest.dir_to_yaw(minetest.facedir_to_dir(node.param2)), put_itemstack)) end if minetest.get_item_group(itemname, "clock") > 0 then minetest.get_node_timer(pos):start(1.0) -- 2.40.1 From 5c8f94d620f493cac1d21da0ff3aa2cde6af696a Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 19:51:44 +0000 Subject: [PATCH 09/13] make compass_image local --- mods/ITEMS/mcl_compass/init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index debe5e563..311088d8c 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -14,6 +14,7 @@ local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Inc local random_frame = math.random(0, compass_frames-1) function mcl_compass.get_compass_image(pos, dir, itemstack) + local compass_image = "" -- Compasses do not work in certain zones local lodestone_pos = minetest.string_to_pos(itemstack:get_meta():get_string("pointsto")) -- 2.40.1 From 0c2562b88ca58ebdd6853a849eb4a4bc1e0523ff Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Tue, 26 Apr 2022 12:49:34 +0000 Subject: [PATCH 10/13] fix formatting || compass_image local --- mods/ITEMS/mcl_compass/init.lua | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 311088d8c..e098eaca0 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -9,13 +9,11 @@ local compass_frames = 32 -- Timer for random compass spinning local random_timer = 0 -local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Incr ease if there are performance problems +local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Increase if there are performance problems local random_frame = math.random(0, compass_frames-1) function mcl_compass.get_compass_image(pos, dir, itemstack) - local compass_image = "" - -- Compasses do not work in certain zones local lodestone_pos = minetest.string_to_pos(itemstack:get_meta():get_string("pointsto")) if lodestone_pos then --lodestone meta present @@ -80,15 +78,15 @@ minetest.register_globalstep(function(dtime) local pos = player:get_pos() for j,stack in pairs(player:get_inventory():get_list("main")) do - compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), stack) - - - if minetest.get_item_group(stack:get_name(), "compass") ~= 0 and - minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then - local itemname = "mcl_compass:"..compass_image - stack:set_name(itemname) - player:get_inventory():set_stack("main", j, stack) - end + if minetest.get_item_group(stack:get_name(), "compass") ~= 0 then + local compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), stack) + if minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then + local itemname = "mcl_compass:"..compass_image + stack:set_name(itemname) + player:get_inventory():set_stack("main", j, stack) + end + end + end end end -- 2.40.1 From 1735343c5e9d412d26440b3fd9441d01bda7154a Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Tue, 26 Apr 2022 13:00:52 +0000 Subject: [PATCH 11/13] add support for static_spawnpoint back --- mods/ITEMS/mcl_compass/init.lua | 65 ++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index e098eaca0..7165371a7 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -14,46 +14,53 @@ local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Inc local random_frame = math.random(0, compass_frames-1) function mcl_compass.get_compass_image(pos, dir, itemstack) - local lodestone_pos = minetest.string_to_pos(itemstack:get_meta():get_string("pointsto")) + local lodestone_pos = minetest.string_to_pos(itemstack:get_meta():get_string("pointsto")) if lodestone_pos then --lodestone meta present local _, dim = mcl_worlds.y_to_layer(lodestone_pos.y) local _, playerdim = mcl_worlds.y_to_layer(pos.y) if dim == playerdim then --Check if player and compass target are in the same dimension, above check is just if the diemension is valid for the non lodestone compass - local function get_far_node(pos) --code from minetest dev wiki: https://dev.minetest.net/minetest.get_node - local node = minetest.get_node(pos) - if node.name == "ignore" then - minetest.get_voxel_manip():read_from_map(pos, pos) - node = minetest.get_node(pos) - end - return node - end + local function get_far_node(pos) --code from minetest dev wiki: https://dev.minetest.net/minetest.get_node + local node = minetest.get_node(pos) + if node.name == "ignore" then + minetest.get_voxel_manip():read_from_map(pos, pos) + node = minetest.get_node(pos) + end + return node + end if get_far_node(lodestone_pos).name == "mcl_compass:lodestone" then --check if lodestone still exists - local angle_north = math.deg(math.atan2(lodestone_pos.x - pos.x, lodestone_pos.z - pos.z)) - if angle_north < 0 then angle_north = angle_north + 360 end - local angle_dir = -math.deg(dir) - local angle_relative = (angle_north - angle_dir + 180) % 360 - return math.floor((angle_relative/11.25) + 0.5) % compass_frames .. "_lodestone" + local angle_north = math.deg(math.atan2(lodestone_pos.x - pos.x, lodestone_pos.z - pos.z)) + if angle_north < 0 then angle_north = angle_north + 360 end + local angle_dir = -math.deg(dir) + local angle_relative = (angle_north - angle_dir + 180) % 360 + return math.floor((angle_relative/11.25) + 0.5) % compass_frames .. "_lodestone" else -- lodestone got destroyed return random_frame .. "_lodestone" - end + end else return random_frame .. "_lodestone" end else --no lodestone meta, normal compass.... - local spawn = {x = 0, y=0, z=0} --before you guys tell me that the normal compass no points to real spawn, it always pointed to 0 0 + local spawn = {x = 0, y=0, z=0} --before you guys tell me that the normal compass no points to real spawn, it always pointed to 0 0 + local ssp = minetest.setting_get_pos("static_spawnpoint") + if ssp then + spawn = ssp + if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then + spawn = {x=0,y=0,z=0} + end + end - if mcl_worlds.compass_works(pos) then --is the player in the overworld? - local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) + if mcl_worlds.compass_works(pos) then --is the player in the overworld? + local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) if angle_north < 0 then angle_north = angle_north + 360 end local angle_dir = -math.deg(dir) local angle_relative = (angle_north - angle_dir + 180) % 360 return math.floor((angle_relative/11.25) + 0.5) % compass_frames - else - return random_frame - end + else + return random_frame + end end end @@ -78,14 +85,14 @@ minetest.register_globalstep(function(dtime) local pos = player:get_pos() for j,stack in pairs(player:get_inventory():get_list("main")) do - if minetest.get_item_group(stack:get_name(), "compass") ~= 0 then - local compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), stack) - if minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then - local itemname = "mcl_compass:"..compass_image - stack:set_name(itemname) - player:get_inventory():set_stack("main", j, stack) - end - end + if minetest.get_item_group(stack:get_name(), "compass") ~= 0 then + local compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), stack) + if minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then + local itemname = "mcl_compass:"..compass_image + stack:set_name(itemname) + player:get_inventory():set_stack("main", j, stack) + end + end end end -- 2.40.1 From 09193b4907f84c448429ca0f857dad6835da5f08 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Tue, 26 Apr 2022 19:24:58 +0000 Subject: [PATCH 12/13] various fixes --- mods/ITEMS/mcl_compass/init.lua | 35 +++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 7165371a7..6d047241e 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -1,9 +1,22 @@ +local stereotype_frame = 18 + + local S = minetest.get_translator(minetest.get_current_modname()) mcl_compass = {} local compass_frames = 32 +local function get_far_node(pos) --code from minetest dev wiki: https://dev.minetest.net/minetest.get_node + local node = minetest.get_node(pos) + if node.name == "ignore" then + minetest.get_voxel_manip():read_from_map(pos, pos) + node = minetest.get_node(pos) + end +return node +end + + --Not sure spawn point should be dymanic (is it in mc?) --local default_spawn_settings = minetest.settings:get("static_spawnpoint") @@ -14,6 +27,11 @@ local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Inc local random_frame = math.random(0, compass_frames-1) function mcl_compass.get_compass_image(pos, dir, itemstack) + if not itemstack then + return random_frame --no itemstack! random frame + minetest.log("WARNING: mcl_compass.get_compass_image() was called without itemstack, returning random frame!") + end + local lodestone_pos = minetest.string_to_pos(itemstack:get_meta():get_string("pointsto")) if lodestone_pos then --lodestone meta present @@ -21,14 +39,6 @@ function mcl_compass.get_compass_image(pos, dir, itemstack) local _, playerdim = mcl_worlds.y_to_layer(pos.y) if dim == playerdim then --Check if player and compass target are in the same dimension, above check is just if the diemension is valid for the non lodestone compass - local function get_far_node(pos) --code from minetest dev wiki: https://dev.minetest.net/minetest.get_node - local node = minetest.get_node(pos) - if node.name == "ignore" then - minetest.get_voxel_manip():read_from_map(pos, pos) - node = minetest.get_node(pos) - end - return node - end if get_far_node(lodestone_pos).name == "mcl_compass:lodestone" then --check if lodestone still exists local angle_north = math.deg(math.atan2(lodestone_pos.x - pos.x, lodestone_pos.z - pos.z)) @@ -45,7 +55,7 @@ function mcl_compass.get_compass_image(pos, dir, itemstack) else --no lodestone meta, normal compass.... local spawn = {x = 0, y=0, z=0} --before you guys tell me that the normal compass no points to real spawn, it always pointed to 0 0 local ssp = minetest.setting_get_pos("static_spawnpoint") - if ssp then + if ssp then spawn = ssp if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then spawn = {x=0,y=0,z=0} @@ -72,7 +82,7 @@ minetest.register_globalstep(function(dtime) random_frame = (random_frame + math.random(-1, 1)) % compass_frames random_timer = 0 end - for i,player in pairs(minetest.get_connected_players()) do + for _,player in pairs(minetest.get_connected_players()) do local function has_compass(player) for _,stack in pairs(player:get_inventory():get_list("main")) do if minetest.get_item_group(stack:get_name(), "compass") ~= 0 then @@ -87,7 +97,7 @@ minetest.register_globalstep(function(dtime) for j,stack in pairs(player:get_inventory():get_list("main")) do if minetest.get_item_group(stack:get_name(), "compass") ~= 0 then local compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), stack) - if minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then + if minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image and minetest.get_item_group(stack:get_name(), "compass")-1 .. "_lodestone" ~=compass_image then --Explaination: First check for normal compasses, secound check for lodestone ones local itemname = "mcl_compass:"..compass_image stack:set_name(itemname) player:get_inventory():set_stack("main", j, stack) @@ -107,7 +117,6 @@ end local doc_mod = minetest.get_modpath("doc") -local stereotype_frame = 18 for i,img in ipairs(images) do local inv = 1 if i == stereotype_frame then @@ -198,4 +207,4 @@ minetest.register_node("mcl_compass:lodestone",{ _mcl_hardness = 1.5, _mcl_blast_resistance = 6, sounds = mcl_sounds.node_sound_stone_defaults() -}) \ No newline at end of file +}) -- 2.40.1 From 44b21512c566cfe1e6a8423160f8b3a84275ec10 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Tue, 26 Apr 2022 19:42:33 +0000 Subject: [PATCH 13/13] fix crash (return not in the last line of if statement) --- mods/ITEMS/mcl_compass/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 6d047241e..f74e07ca3 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -28,8 +28,8 @@ local random_frame = math.random(0, compass_frames-1) function mcl_compass.get_compass_image(pos, dir, itemstack) if not itemstack then - return random_frame --no itemstack! random frame minetest.log("WARNING: mcl_compass.get_compass_image() was called without itemstack, returning random frame!") + return random_frame end local lodestone_pos = minetest.string_to_pos(itemstack:get_meta():get_string("pointsto")) -- 2.40.1