eregions.hud = {} minetest.register_globalstep (function (dtime) for _, player in pairs(minetest.get_connected_players()) do local name = player:get_player_name() local pos = vector.round(player:getpos()) local eregionStrings = {} for id, eregion in pairs (eregions:getERegionsAtPos (pos)) do table.insert (eregionStrings, ("%u %s") :format (id, eregion.efeature)) end for i, eregion in pairs (eregions:getExternalHudEntries (pos)) do local str = "" if eregion.id then str = str.."["..eregion.id.."] " end if eregion.efeature then str = str.."("..eregion.efeature..")" end table.insert (eregionStrings, str) end local eregionString = "Features:" if #eregionStrings > 0 then eregionString = eregionString .. "\n" .. table.concat (eregionStrings, "\n") end local hud = eregions.hud [name] if not hud then hud = {} eregions.hud[name] = hud hud.eregionsId = player:hud_add ({ hud_elem_type = "text", name = "ERegions", number = 0xFFFFFF, position = {x=0, y=0.8}, offset = {x=8, y=-8}, text = eregionString, scale = {x=200, y=60}, alignment = {x=1, y=-1}, }) hud.oldERegions = eregionString return elseif hud.oldERegions ~= eregionString then player:hud_change(hud.eregionsId, "text", eregionString) hud.oldERegions = eregionString end end end) minetest.register_on_leaveplayer (function(player) eregions.hud[player:get_player_name()] = nil end)