Fix errors from unknown nodes
This commit is contained in:
parent
2a7d0c3537
commit
d1f11043af
1
init.lua
1
init.lua
@ -8,6 +8,7 @@ if not minetest.get_node_def("client_version_checker:this_is_the_signature_of_cr
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
nodes = nil
|
||||||
function initialize_all()
|
function initialize_all()
|
||||||
--declare globals for now
|
--declare globals for now
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
local minetest,name = minetest,minetest.localplayer:get_name()
|
local minetest,name = minetest,minetest.localplayer:get_name()
|
||||||
local version_channel = minetest.mod_channel_join(name..":client_version_channel")
|
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
|
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)
|
end)
|
88
waila.lua
88
waila.lua
@ -1,6 +1,6 @@
|
|||||||
local minetest,vector = minetest,vector
|
local minetest,vector = minetest,vector
|
||||||
local hud_item_name = ""
|
local hud_item_name = ""
|
||||||
|
local all_nodes
|
||||||
local hud_bg = minetest.localplayer:hud_add({
|
local hud_bg = minetest.localplayer:hud_add({
|
||||||
hud_elem_type = "image", -- see HUD element types, default "text"
|
hud_elem_type = "image", -- see HUD element types, default "text"
|
||||||
position = {x=0.5, y=0},
|
position = {x=0.5, y=0},
|
||||||
@ -51,47 +51,57 @@ local waih_timer = 0
|
|||||||
local old_item = ""
|
local old_item = ""
|
||||||
|
|
||||||
local function update()
|
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
|
|
||||||
|
|
||||||
|
if all_nodes then
|
||||||
--waih
|
--waila
|
||||||
local item = minetest.localplayer:get_wielded_item():get_name()
|
if minetest.camera then
|
||||||
if waih_timer > 0 then
|
local pos = minetest.camera:get_pos()
|
||||||
waih_timer = waih_timer - 0.01
|
local pos2 = vector.add(pos,vector.multiply(minetest.camera:get_look_dir(), 4))
|
||||||
if waih_timer <= 0 then
|
local ray = minetest.raycast(pos, pos2, false, false)
|
||||||
waih_timer = 0
|
|
||||||
minetest.localplayer:hud_change(waih_name, "text", "")
|
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
|
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
|
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()
|
minetest.after(0.01, function()
|
||||||
|
@ -203,6 +203,10 @@ minetest.register_on_modchannel_message(function(channel_name, sender, message)
|
|||||||
--to spawn weather columns on
|
--to spawn weather columns on
|
||||||
if sender == "" and channel_name == "weather_nodes" then
|
if sender == "" and channel_name == "weather_nodes" then
|
||||||
all_nodes = minetest.deserialize(message)
|
all_nodes = minetest.deserialize(message)
|
||||||
|
nodes = {}
|
||||||
|
for _,key in pairs(all_nodes) do
|
||||||
|
nodes[key] = true
|
||||||
|
end
|
||||||
do_effects = true
|
do_effects = true
|
||||||
weather:leave() --leave the channel
|
weather:leave() --leave the channel
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user