]> git.lizzy.rs Git - crafter_client.git/commitdiff
Fix errors from unknown nodes
authoroilboi <47129783+oilboi@users.noreply.github.com>
Sun, 28 Jun 2020 01:13:00 +0000 (21:13 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Sun, 28 Jun 2020 01:13:00 +0000 (21:13 -0400)
init.lua
version_send.lua
waila.lua
weather_handling.lua

index 72e2c05afc89d42d97f81242d6c6eb4d6142b5df..7c22037e22af1b5302d54b8a712f6f78bd4ba498 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -8,6 +8,7 @@ if not minetest.get_node_def("client_version_checker:this_is_the_signature_of_cr
        return
 end
 
+nodes = nil
 function initialize_all()
        --declare globals for now
 
index ab7bf82659f5e4297c24704e4cd57fd3bf1f2d25..16de246b26bb187046c74d2dfa32c32241d02511 100644 (file)
@@ -1,5 +1,5 @@
 local minetest,name = minetest,minetest.localplayer:get_name()
 local version_channel = minetest.mod_channel_join(name..":client_version_channel")
 minetest.after(2,function() -- this needs a few seconds for the mod channel to open up
-    version_channel:send_all("0.06000")
+    version_channel:send_all("0.06001")
 end)
\ No newline at end of file
index bd8056d455c8e3bd9f8723b21c20626a3a205c58..d36206030345c1e15569984fd6135a5723077436 100644 (file)
--- a/waila.lua
+++ b/waila.lua
@@ -1,6 +1,6 @@
 local minetest,vector = minetest,vector
 local hud_item_name = ""
-
+local all_nodes
 local hud_bg = minetest.localplayer:hud_add({
                                hud_elem_type = "image", -- see HUD element types, default "text"
                                position = {x=0.5, y=0},
@@ -51,47 +51,57 @@ local waih_timer = 0
 local old_item = ""
 
 local function update()
-       --waila
-       if minetest.camera then
-               local pos = minetest.camera:get_pos()
-               local pos2 = vector.add(pos,vector.multiply(minetest.camera:get_look_dir(), 4))
-               local ray = minetest.raycast(pos, pos2, false, false)
-               
-               local pointed_thing = ray:next()
-               if pointed_thing and pointed_thing.under then
-                       local node = minetest.get_node_or_nil(pointed_thing.under).name
-                       if hud_item_name ~= node then
-                               local def = minetest.get_item_def(node)
-                               minetest.localplayer:hud_change(hud_name, "text", def.description)
-                               minetest.localplayer:hud_change(hud_node, "text", node)
-                               minetest.localplayer:hud_change(hud_bg,   "text", "waila.png")
-                               hud_item_name = node
+
+       if all_nodes then
+               --waila
+               if minetest.camera then
+                       local pos = minetest.camera:get_pos()
+                       local pos2 = vector.add(pos,vector.multiply(minetest.camera:get_look_dir(), 4))
+                       local ray = minetest.raycast(pos, pos2, false, false)
+                       
+                       local pointed_thing = ray:next()
+                       if pointed_thing and pointed_thing.under and all_nodes[minetest.get_node_or_nil(pointed_thing.under).name] then
+                               local node = minetest.get_node_or_nil(pointed_thing.under).name
+                               if hud_item_name ~= node then
+                                       local def = minetest.get_item_def(node)
+                                       minetest.localplayer:hud_change(hud_name, "text", def.description)
+                                       minetest.localplayer:hud_change(hud_node, "text", node)
+                                       minetest.localplayer:hud_change(hud_bg,   "text", "waila.png")
+                                       hud_item_name = node
+                               end
+                       else
+                               --make hud invisible
+                               minetest.localplayer:hud_change(hud_name, "text", "")
+                               minetest.localplayer:hud_change(hud_node, "text", "")
+                               minetest.localplayer:hud_change(hud_bg,   "text", "")
+                               hud_item_name = ""
                        end
-               else
-                       --make hud invisible
-                       minetest.localplayer:hud_change(hud_name, "text", "")
-                       minetest.localplayer:hud_change(hud_node, "text", "")
-                       minetest.localplayer:hud_change(hud_bg,   "text", "")
-                       hud_item_name = ""
                end
-       end
 
-       
-       --waih
-       local item = minetest.localplayer:get_wielded_item():get_name()
-       if waih_timer > 0 then
-               waih_timer = waih_timer - 0.01
-               if waih_timer <= 0 then
-                       waih_timer = 0
-                       minetest.localplayer:hud_change(waih_name, "text", "")
+               
+               --waih
+               local item = minetest.localplayer:get_wielded_item():get_name()
+               if waih_timer > 0 then
+                       waih_timer = waih_timer - 0.01
+                       if waih_timer <= 0 then
+                               waih_timer = 0
+                               minetest.localplayer:hud_change(waih_name, "text", "")
+                       end
                end
+               if item ~= old_item then
+                       waih_timer = 1
+                       local waih_text
+                       if all_nodes[item] then
+                               waih_text = minetest.get_item_def(item).description or item
+                       else
+                               waih_text = "Unknown"
+                       end
+                       minetest.localplayer:hud_change(waih_name, "text", waih_text)
+               end
+               old_item = item
+       elseif nodes then
+               all_nodes = table.copy(nodes)
        end
-       if item ~= old_item then
-               waih_timer = 1
-               local waih_text = minetest.get_item_def(item).description or item
-               minetest.localplayer:hud_change(waih_name, "text", waih_text)
-       end
-       old_item = item
 
 
        minetest.after(0.01, function()
index 20a4a5adc1e267ff392f9aac859e5a476e0d2d3f..65ca36cf2d5a268c91c17b184ac12ea7bd0c8359 100644 (file)
@@ -203,6 +203,10 @@ minetest.register_on_modchannel_message(function(channel_name, sender, message)
        --to spawn weather columns on
        if sender == "" and channel_name == "weather_nodes" then
                all_nodes = minetest.deserialize(message)
+               nodes = {}
+               for _,key in pairs(all_nodes) do
+                       nodes[key] = true
+               end
                do_effects = true
                weather:leave() --leave the channel
        end