summaryrefslogtreecommitdiff
path: root/hud.lua
diff options
context:
space:
mode:
Diffstat (limited to 'hud.lua')
-rw-r--r--hud.lua41
1 files changed, 22 insertions, 19 deletions
diff --git a/hud.lua b/hud.lua
index ee93b06..604f6f3 100644
--- a/hud.lua
+++ b/hud.lua
@@ -1,42 +1,45 @@
-- This is inspired by the landrush mod by Bremaweb
areas.hud = {}
+local xOffset = 8
+local yOffset = -16
+-- Approximate the text height
+local textHeight = (tonumber(minetest.setting_get("font_size")) or 13) * 1.16
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 areaString = ""
- local first = true
+ local areaStrings = {}
for id, area in pairs(areas:getAreasAtPos(pos)) do
- if not first then
- areaString = areaString..", "
- else
- first = false
- end
- areaString = areaString .. ("%s [%u] (%s%s)")
+ table.insert(areaStrings, ("%s [%u] (%s%s)")
:format(area.name, id, area.owner,
- area.open and ":open" or "")
+ area.open and ":open" or ""))
end
- if not areas.hud[name] then
- areas.hud[name] = {}
- areas.hud[name].areasId = player:hud_add({
+ local areaString = table.concat(areaStrings, "\n")
+ local hud = areas.hud[name]
+ if not hud then
+ hud = {}
+ areas.hud[name] = hud
+ hud.areasId = player:hud_add({
hud_elem_type = "text",
name = "Areas",
number = 0xFFFFFF,
position = {x=0, y=1},
- offset = {x=5, y=-60},
+ offset = {x=xOffset, y=yOffset - ((#areaStrings + 1) * textHeight)},
direction = 0,
- text = "Areas: "..areaString,
+ text = "Areas:\n"..areaString,
scale = {x=200, y=60},
alignment = {x=1, y=1},
})
- areas.hud[name].oldAreas = areaString
+ hud.oldAreas = areaString
return
- elseif areas.hud[name].oldAreas ~= areaString then
- player:hud_change(areas.hud[name].areasId, "text",
- "Areas: "..areaString)
- areas.hud[name].oldAreas = areaString
+ elseif hud.oldAreas ~= areaString then
+ player:hud_change(hud.areasId, "offset",
+ {x=xOffset, y=yOffset - ((#areaStrings + 1) * textHeight)})
+ player:hud_change(hud.areasId, "text",
+ "Areas:\n"..areaString)
+ hud.oldAreas = areaString
end
end
end)