Minor update HUD
parent
d4f9ba9329
commit
b470d8f516
68
hud.lua
68
hud.lua
|
@ -17,41 +17,43 @@ hud.register("areas", {
|
|||
number = 0xFFFFFF
|
||||
})
|
||||
|
||||
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")
|
||||
:format(area.name, id, area.owner,
|
||||
area.open and (" [" .. S("Open") .. "]") or "",
|
||||
area.canPvP and (" [" .. S("PvP enabled") .. "]") or "")
|
||||
end
|
||||
|
||||
local str = ""
|
||||
for _, area in pairs(areas:getExternalHudEntries(pos)) do
|
||||
if area.name then str = area.name .. " " end
|
||||
if area.id then str = str .. "[" .. area.id .. "] " end
|
||||
if area.owner then str = str .. "(" .. area.owner .. ")" end
|
||||
areaStrings[#areaStrings + 1] = str
|
||||
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
|
||||
hud.change_item(player, "areas", {text = areaString})
|
||||
phud.oldAreas = areaString
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_playerstep(function(_, playernames)
|
||||
for _, name in pairs(playernames) do
|
||||
for _, name in ipairs(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 = {}
|
||||
|
||||
for id, area in pairs(areas:getAreasAtPos(pos)) do
|
||||
areaStrings[#areaStrings+1] = ("%s [%u] (%s)%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 "")
|
||||
end
|
||||
|
||||
local str = ""
|
||||
for _, area in pairs(areas:getExternalHudEntries(pos)) do
|
||||
if area.name then str = area.name .. " " end
|
||||
if area.id then str = str .. "[" .. area.id .. "] " end
|
||||
if area.owner then str = str .. "(" .. area.owner .. ")" end
|
||||
areaStrings[#areaStrings+1] = str
|
||||
end
|
||||
|
||||
local areaString = ""
|
||||
if #areaStrings > 0 then
|
||||
areaString = S("Areas:")
|
||||
areaString = areaString .. "\n" ..
|
||||
tconcat(areaStrings, "\n")
|
||||
end
|
||||
|
||||
local phud = areas.hud[name] or {}
|
||||
if not phud.oldAreas or phud.oldAreas ~= areaString then
|
||||
hud.change_item(player, "areas", {text = areaString})
|
||||
phud.oldAreas = areaString
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue