forked from mtcontrib/minetest_hudbars
Hide bar background when max == 0
The bars are intended to show the ratio between value and max. For a max of 0 (which implies a value of 0), this implies a value/max ratio of 0/0, which is undefined. Therefore, for this very special case, we just hide the bar altogether.
This commit is contained in:
parent
017b304396
commit
e6e8f2d688
7
init.lua
7
init.lua
@ -142,6 +142,11 @@ function hud.change_hudbar(player, hudtable, new_value, new_max_value)
|
|||||||
hudtable.hudstate[name].value = new_value
|
hudtable.hudstate[name].value = new_value
|
||||||
hudtable.hudstate[name].max = new_max_value
|
hudtable.hudstate[name].max = new_max_value
|
||||||
if hudtable.hudstate[name].hidden == false then
|
if hudtable.hudstate[name].hidden == false then
|
||||||
|
if hudtable.hudstate[name].max == 0 then
|
||||||
|
player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0})
|
||||||
|
else
|
||||||
|
player:hud_change(hudtable.hudids[name].bg, "scale", {x=1,y=1})
|
||||||
|
end
|
||||||
player:hud_change(hudtable.hudids[name].bar, "number", hud.value_to_barlength(new_value, new_max_value))
|
player:hud_change(hudtable.hudids[name].bar, "number", hud.value_to_barlength(new_value, new_max_value))
|
||||||
player:hud_change(hudtable.hudids[name].text, "text",
|
player:hud_change(hudtable.hudids[name].text, "text",
|
||||||
tostring(string.format(hudtable.format_string, hudtable.label, new_value, new_max_value))
|
tostring(string.format(hudtable.format_string, hudtable.label, new_value, new_max_value))
|
||||||
@ -167,7 +172,9 @@ function hud.unhide_hudbar(player, hudtable)
|
|||||||
local value = hudtable.hudstate[name].value
|
local value = hudtable.hudstate[name].value
|
||||||
local max = hudtable.hudstate[name].max
|
local max = hudtable.hudstate[name].max
|
||||||
player:hud_change(hudtable.hudids[name].icon, "scale", {x=1,y=1})
|
player:hud_change(hudtable.hudids[name].icon, "scale", {x=1,y=1})
|
||||||
|
if hudtable.hudstate[name].max == 0 then
|
||||||
player:hud_change(hudtable.hudids[name].bg, "scale", {x=1,y=1})
|
player:hud_change(hudtable.hudids[name].bg, "scale", {x=1,y=1})
|
||||||
|
end
|
||||||
player:hud_change(hudtable.hudids[name].bar, "number", hud.value_to_barlength(value, max))
|
player:hud_change(hudtable.hudids[name].bar, "number", hud.value_to_barlength(value, max))
|
||||||
player:hud_change(hudtable.hudids[name].text, "text", tostring(string.format(hudtable.format_string, hudtable.label, value, max)))
|
player:hud_change(hudtable.hudids[name].text, "text", tostring(string.format(hudtable.format_string, hudtable.label, value, max)))
|
||||||
hudtable.hudstate[name].hidden = false
|
hudtable.hudstate[name].hidden = false
|
||||||
|
Loading…
Reference in New Issue
Block a user