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:
parent
f2b99332d9
commit
adaa4cc2f3
20 changed files with 51 additions and 87 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue