diff --git a/mods/unified_inventory/item_names.lua b/mods/unified_inventory/item_names.lua index 31af81bc..f6686dd3 100755 --- a/mods/unified_inventory/item_names.lua +++ b/mods/unified_inventory/item_names.lua @@ -2,7 +2,6 @@ local wield = {} local huds = {} -local dtimes = {} local dlimit = 3 -- HUD element will be hidden after this many seconds local air_hud_mod = minetest.get_modpath("4air") local hud_mod = minetest.get_modpath("hud") @@ -25,23 +24,24 @@ end minetest.register_on_joinplayer(function(player) minetest.after(0, set_hud, player) + minetest.after(dlimit, u_inv_hud_step, player:get_player_name()) end) +function u_inv_hud_step(name) + local p = minetest.get_player_by_name(name) + if not p then return end + + p:hud_change(huds[name], 'text', "") + minetest.after(dlimit, u_inv_hud_step, name) +end + minetest.register_globalstep(function(dtime) for _, player in pairs(minetest.get_connected_players()) do local player_name = player:get_player_name() local wstack = player:get_wielded_item():get_name() - if dtimes[player_name] and dtimes[player_name] < dlimit then - dtimes[player_name] = dtimes[player_name] + dtime - if dtimes[player_name] > dlimit and huds[player_name] then - player:hud_change(huds[player_name], 'text', "") - end - end - if wstack ~= wield[player_name] then wield[player_name] = wstack - dtimes[player_name] = 0 if huds[player_name] then local def = minetest.registered_items[wstack] local desc = def and def.description or ""