]> git.lizzy.rs Git - crafter_client.git/blob - waila.lua
Add in CSM WAILA
[crafter_client.git] / waila.lua
1 local hud_item_name = ""
2
3
4 local hud_bg = minetest.localplayer:hud_add({
5                                 hud_elem_type = "image", -- see HUD element types, default "text"
6                                 position = {x=0.5, y=0},
7                                 name = "",    -- default ""
8                                 scale = {x=2.25, y=2.25}, -- default {x=0,y=0}
9                                 text = "waila.png",    -- default ""
10                                 offset = { x = 0, y = 29.25},
11                                 z_index = 0,
12                         })
13
14 local hud_name = minetest.localplayer:hud_add({
15                 name = "hud_name",
16                 position = {x=0.5,y=0},
17                 hud_elem_type = "text",
18                 number = 0xFFFFFF,
19                 alignment = 0,
20                 offset = { x = 0, y = 17},
21                 text = "",
22                 z_index = 1,
23         })
24 local hud_node = minetest.localplayer:hud_add({
25                 name = "hud_node",
26                 position = {x=0.5,y=0},
27                 hud_elem_type = "text",
28                 number = 0xFFFFFF,
29                 alignment = 0,
30                 offset = { x = 0, y = 36},
31                 text = "",
32                 z_index = 1,
33         })
34
35
36 local function update()
37         if minetest.camera then
38                 local pos = minetest.camera:get_pos()
39                 local pos2 = vector.add(pos,vector.multiply(minetest.camera:get_look_dir(), 4))
40                 local ray = minetest.raycast(pos, pos2, false, false)
41                 
42                 local pointed_thing = ray:next()
43                 if pointed_thing and pointed_thing.under then
44                         local node = minetest.get_node_or_nil(pointed_thing.under).name
45                         if hud_item_name ~= node then
46                                 local def = minetest.get_item_def(node)
47                                 minetest.localplayer:hud_change(hud_name, "text", def.description)
48                                 minetest.localplayer:hud_change(hud_node, "text", node)
49                                 minetest.localplayer:hud_change(hud_bg,   "text", "waila.png")
50                                 hud_item_name = node
51                         end
52                 else
53                         --make hud invisible
54                         minetest.localplayer:hud_change(hud_name, "text", "")
55                         minetest.localplayer:hud_change(hud_node, "text", "")
56                         minetest.localplayer:hud_change(hud_bg,   "text", "")
57                         hud_item_name = ""
58                 end
59         end
60         minetest.after(0.01, function()
61                 update()
62         end)
63 end
64
65 update()