is_shown -> visible | Panels are now by default visible when created

master
Zughy 2020-11-28 21:41:00 +01:00
parent f702b37cbf
commit 160d8006f0
1 changed files with 44 additions and 20 deletions

64
api.lua
View File

@ -34,8 +34,7 @@ Panel = {
sub_img_elems = {},
sub_txt_elems = {},
is_shown = false
visible = true
}
@ -53,6 +52,11 @@ function Panel:new(name, def)
def = clone_table(name)
name = def.name
end
if def.is_shown then
minetest.log("warning", "[PANEL_LIB] `is_shown` is deprecated. Use `visible` instead")
def.visible = def.is_shown
end
--^------------------ LEGACY UPDATE, to remove in 3.0 -------------------^
if not name or type(name) ~= "string" then
@ -103,27 +107,33 @@ function Panel:new(name, def)
panel.player_name = def.player
end
local player = minetest.get_player_by_name(def.player)
-- creo sfondo e titolo
panel.hud_id.bg_hud_id = player:hud_add(panel.background_def)
panel.hud_id.text_hud_id = player:hud_add(panel.title_def)
panel.visible = def.visible
panel.hud_text.bg_hud_txt = panel.background_def.text
panel.hud_text.text_hud_txt = panel.title_def.text
panel.is_shown = true
-- se il pannello non è mostrato di base, svuoto sfondo e titolo
if not def.visible then
panel.background_def.text = ""
panel.title_def.text = ""
end
local player = minetest.get_player_by_name(def.player)
-- assegno sfondo e titolo
panel.hud_id.bg_hud_id = player:hud_add(panel.background_def)
panel.hud_id.text_hud_id = player:hud_add(panel.title_def)
-- controllo sottoelementi
if def.sub_img_elems then
for name, HUD_elem in pairs(def.sub_img_elems) do
add_sub_elem(panel, "image", name, HUD_elem)
for subname, HUD_elem in pairs(def.sub_img_elems) do
add_sub_elem(panel, "image", subname, HUD_elem)
end
end
if def.sub_txt_elems then
for name, HUD_elem in pairs(def.sub_txt_elems) do
add_sub_elem(panel, "text", name, HUD_elem)
for subname, HUD_elem in pairs(def.sub_txt_elems) do
add_sub_elem(panel, "text", subname, HUD_elem)
end
end
@ -157,7 +167,7 @@ function Panel:show()
player:hud_change(self.hud_id[name], "text", self.hud_text[name])
end
self.is_shown = true
self.visible = true
end
@ -172,7 +182,7 @@ function Panel:hide()
end
end
self.is_shown = false
self.visible = false
end
@ -197,7 +207,7 @@ function Panel:update(def, txt_elems, img_elems)
self.hud_text[elem] = v
end
if self.is_shown == true then
if self.visible == true then
player:hud_change(self.hud_id[elem], k, v)
end
end
@ -215,7 +225,7 @@ function Panel:update(def, txt_elems, img_elems)
self.hud_text[elem] = v
end
if self.is_shown == true then
if self.visible == true then
player:hud_change(self.hud_id[elem], k, v)
end
end
@ -240,8 +250,8 @@ end
function Panel:is_shown()
return self.is_shown
function Panel:is_visible()
return self.visible
end
@ -256,7 +266,7 @@ function Panel:remove_sub_elem(name)
self.sub_txt_elems[name] = nil
self.sub_img_elems[name] = nil
if self.is_shown then
if self.visible then
minetest.get_player_by_name(self.player_name):hud_remove(self.hud_id[name])
end
self.hud_id[name] = nil
@ -335,8 +345,22 @@ function add_sub_elem(panel, type, name, HUD_elem)
panel[name].position = mould.position
-- mostro l'elemento se il pannello era già visibile
panel[name].text = panel.is_shown and panel[name].text or ""
panel[name].text = panel.visible and panel[name].text or ""
panel.hud_id[name] = minetest.get_player_by_name(panel.player_name):hud_add(panel[name])
panel.hud_text[name] = HUD_elem.text
end
----------------------------------------------
------------------DEPRECATED------------------
----------------------------------------------
-- to remove in 3.0
function Panel:is_shown()
minetest.log("warning", "[PANEL_LIB] `is_shown()` is deprecated. Use `is_visible()` instead")
return self:is_visible()
end