--- /dev/null
+local hud_item_name = ""
+
+
+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 function update()
+ 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
+ minetest.after(0.01, function()
+ update()
+ end)
+end
+
+update()