113 lines
2.8 KiB
Lua
113 lines
2.8 KiB
Lua
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},
|
|
name = "", -- default ""
|
|
scale = {x=2.25, y=2.25}, -- default {x=0,y=0}
|
|
text = "waila.png", -- default ""
|
|
offset = { x = 0, y = 29.25},
|
|
z_index = 0,
|
|
})
|
|
|
|
local hud_name = minetest.localplayer:hud_add({
|
|
name = "hud_name",
|
|
position = {x=0.5,y=0},
|
|
hud_elem_type = "text",
|
|
number = 0xFFFFFF,
|
|
alignment = 0,
|
|
offset = { x = 0, y = 17},
|
|
text = "",
|
|
z_index = 1,
|
|
})
|
|
local hud_node = minetest.localplayer:hud_add({
|
|
name = "hud_node",
|
|
position = {x=0.5,y=0},
|
|
hud_elem_type = "text",
|
|
number = 0xFFFFFF,
|
|
alignment = 0,
|
|
offset = { x = 0, y = 36},
|
|
text = "",
|
|
z_index = 1,
|
|
})
|
|
|
|
|
|
local waih_name = minetest.localplayer:hud_add({
|
|
name = "hud_name",
|
|
position = {x=0.5,y=1},
|
|
hud_elem_type = "text",
|
|
number = 0xFFFFFF,
|
|
alignment = 0,
|
|
offset = { x = 0, y = -150},
|
|
text = "",
|
|
z_index = 1,
|
|
})
|
|
|
|
|
|
local pos_min = 10
|
|
local pos_max = -150
|
|
local waih_timer = 0
|
|
local old_item = ""
|
|
|
|
local function update()
|
|
|
|
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
|
|
|
|
|
|
minetest.after(0.01, function()
|
|
update()
|
|
end)
|
|
end
|
|
|
|
update()
|