sparktech.energy_hud = {} local spark_dig_stlye_alt = minetest.settings:get_bool("spark_dig_stlye_alt") local on_use = nil if spark_dig_stlye_alt then on_use = function() return nil end end minetest.register_tool("sparkdebug:multimeter", { description = "Multimeter", inventory_image = "multimeter.png", stack_max = 1, on_use = on_use, on_place = function(itemstack, placer, pointed_thing) if pointed_thing["type"] == "node" then sparktech.energy_hud[placer:get_player_name()]["pos"] = pointed_thing["under"] end return itemstack end }) minetest.register_on_joinplayer(function(player) local idx = player:hud_add({ hud_elem_type = "statbar", position = {x = 0.5, y = 0.5}, offset = {x =-100, y = -40}, text = "bar_red.png", direction = 0, size = { x=2, y=20 }, -- looks correct with 2, less is invisble, more is too big :/ number = 20 }) local idy = player:hud_add({ hud_elem_type = "text", position = {x = 0.5, y = 0.5}, offset = {x = 0, y = -50}, text = "", direction = 0, number = "0xFFFFFF" }) local idz = player:hud_add({ hud_elem_type = "text", position = {x = 0.5, y = 0.5}, offset = {x = 0, y = 50}, text = "", direction = 0, number = "0xFFFFFF" }) sparktech.energy_hud[player:get_player_name()] = {idb = idx, idt = idy, idm = idz, pos = {x = 0, y = 0, z = 0}} end) minetest.register_globalstep(function(dtime) for k, i in pairs(sparktech.energy_hud) do local meta = minetest.get_meta(i["pos"]) local node = minetest.get_node(i["pos"]) local player = minetest.get_player_by_name(k) if player == nil then return end player:hud_change(i["idb"], "number", meta:get_int("energy") / minetest.get_item_group(node.name, "sparktech_energy_max") * 400) local val = minetest.get_item_group(node.name, "sparktech_energy_max") if val == 0 then player:hud_change(i["idt"], "text", "") else player:hud_change(i["idt"], "text", meta:get_int("energy") .. " / " .. val) end player:hud_change(i["idm"], "text", meta:get_string("net_master")) end end)