Fix errors from unknown nodes

master
oilboi 2020-06-27 21:13:00 -04:00
parent 2a7d0c3537
commit d1f11043af
4 changed files with 55 additions and 40 deletions

View File

@ -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

View 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)

View File

@ -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
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", "")
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
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", "")
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()

View 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