Minor update HUD

master
MoNTE48 2022-01-04 00:09:40 +01:00
parent d4f9ba9329
commit b470d8f516
1 changed files with 35 additions and 33 deletions

36
hud.lua
View File

@ -17,20 +17,16 @@ hud.register("areas", {
number = 0xFFFFFF
})
minetest.register_playerstep(function(_, playernames)
for _, name in pairs(playernames) do
local player = minetest.get_player_by_name(name)
if not player or not player:is_player() then return end
local pos = vround(player:get_pos())
if minetest.is_valid_pos(pos) then
local areaStrings = {}
local function update_hud(player, name, pos)
local areaStrings = {
S("Areas:")
}
for id, area in pairs(areas:getAreasAtPos(pos)) do
areaStrings[#areaStrings+1] = ("%s [%u] (%s)%s%s%s")
areaStrings[#areaStrings + 1] = ("%s [%u] (%s)%s%s")
:format(area.name, id, area.owner,
area.open and (" " .. S("Open")) or "",
(area.open and area.canPvP and " | " or ""), -- shitcode detected XD
area.canPvP and (" " .. S("PvP enabled")) or "")
area.open and (" [" .. S("Open") .. "]") or "",
area.canPvP and (" [" .. S("PvP enabled") .. "]") or "")
end
local str = ""
@ -41,12 +37,8 @@ minetest.register_playerstep(function(_, playernames)
areaStrings[#areaStrings + 1] = str
end
local areaString = ""
if #areaStrings > 0 then
areaString = S("Areas:")
areaString = areaString .. "\n" ..
tconcat(areaStrings, "\n")
end
-- "Areas:" text has index 1
local areaString = #areaStrings > 1 and tconcat(areaStrings, "\n") or ""
local phud = areas.hud[name] or {}
if not phud.oldAreas or phud.oldAreas ~= areaString then
@ -54,6 +46,16 @@ minetest.register_playerstep(function(_, playernames)
phud.oldAreas = areaString
end
end
minetest.register_playerstep(function(_, playernames)
for _, name in ipairs(playernames) do
local player = minetest.get_player_by_name(name)
if player and player:is_player() then
local pos = vround(player:get_pos())
if minetest.is_valid_pos(pos) then
update_hud(player, name, pos)
end
end
end
end, true) -- Force this callback to run every step to display actual information