1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-01 17:38:41 +00:00

Move hard coded minimap to builtin (#14071)

This commit is contained in:
cx384 2024-02-07 20:13:23 +01:00 committed by GitHub
parent f2b99332d9
commit adaa4cc2f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 51 additions and 87 deletions

View file

@ -24,6 +24,13 @@ local bar_definitions = {
size = {x = 24, y = 24},
offset = {x = 25, y= -(48 + 24 + 16)},
},
minimap = {
hud_elem_type = "minimap",
position = {x = 1, y = 0},
alignment = {x = -1, y = 1},
offset = {x = -10, y = 10},
size = {x = 256 , y = 256},
},
}
local hud_ids = {}
@ -92,6 +99,16 @@ local function update_builtin_statbars(player)
end, name, hud.id_breathbar)
hud.id_breathbar = nil
end
-- Don't add a minimap for clients which already have it hardcoded in C++.
local show_minimap = flags.minimap and
minetest.get_player_information(name).protocol_version >= 44
if show_minimap and not hud.id_minimap then
hud.id_minimap = player:hud_add(bar_definitions.minimap)
elseif not show_minimap and hud.id_minimap then
player:hud_remove(hud.id_minimap)
hud.id_minimap = nil
end
end
local function cleanup_builtin_statbars(player)
@ -138,8 +155,7 @@ local function player_event_handler(player,eventname)
end
function core.hud_replace_builtin(hud_name, definition)
if type(definition) ~= "table" or
(definition.type or definition.hud_elem_type) ~= "statbar" then
if type(definition) ~= "table" then
return false
end
@ -175,6 +191,20 @@ function core.hud_replace_builtin(hud_name, definition)
return true
end
if hud_name == "minimap" then
bar_definitions.minimap = definition
for name, ids in pairs(hud_ids) do
local player = core.get_player_by_name(name)
if player and ids.id_minimap then
player:hud_remove(ids.id_minimap)
ids.id_minimap = nil
update_builtin_statbars(player)
end
end
return true
end
return false
end