forked from mtcontrib/minetest_hudbars
Allow hud.change_hudbar to change only one or no value of both
This commit is contained in:
parent
28551721f4
commit
79997659d9
4
API.md
4
API.md
@ -104,7 +104,9 @@ After a HUD bar has been added, you can change the current and maximum value on
|
|||||||
You use the function `hud.change_hudbar` for this.
|
You use the function `hud.change_hudbar` for this.
|
||||||
|
|
||||||
### `hud.change_hudbar(player, identifier, new_value, new_max_value)`
|
### `hud.change_hudbar(player, identifier, new_value, new_max_value)`
|
||||||
Changes the values of. If
|
Changes the values of an initialized HUD bar for a certain player. `new_value` and `new_max_value`
|
||||||
|
can be `nil`; if one of them is `nil`, that means the value is unchanged. If both values
|
||||||
|
are `nil`, this function is a no-op.
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
* `player`: `ObjectRef` of the player to which the HUD bar belongs to
|
* `player`: `ObjectRef` of the player to which the HUD bar belongs to
|
||||||
|
14
init.lua
14
init.lua
@ -156,10 +156,24 @@ function hud.init_hudbar(player, identifier, start_value, start_max)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function hud.change_hudbar(player, identifier, new_value, new_max_value)
|
function hud.change_hudbar(player, identifier, new_value, new_max_value)
|
||||||
|
if new_value == nil and new_max_value == nil then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local hudtable = hud.get_hudtable(identifier)
|
local hudtable = hud.get_hudtable(identifier)
|
||||||
|
|
||||||
|
if new_value ~= nil then
|
||||||
hudtable.hudstate[name].value = new_value
|
hudtable.hudstate[name].value = new_value
|
||||||
|
else
|
||||||
|
new_value = hudtable.hudstate[name].value
|
||||||
|
end
|
||||||
|
if new_max_value ~= nil then
|
||||||
hudtable.hudstate[name].max = new_max_value
|
hudtable.hudstate[name].max = new_max_value
|
||||||
|
else
|
||||||
|
new_max_value = hudtable.hudstate[name].max
|
||||||
|
end
|
||||||
|
|
||||||
if hudtable.hudstate[name].hidden == false then
|
if hudtable.hudstate[name].hidden == false then
|
||||||
if hudtable.hudstate[name].max == 0 then
|
if hudtable.hudstate[name].max == 0 then
|
||||||
player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0})
|
player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0})
|
||||||
|
Loading…
Reference in New Issue
Block a user