I am trying to add a hunger bar to my mod for Minetest Game using hudbars to add a hunger bar, but when calling the hb.change_hudbar() function to change the value it does not update visibly. However, using hb.get_hudbar_state() does return the new value.
I register the HUD Bar here
Code: Select all
hb.register_hudbar(
"hunger",
0xFFFFFF,
"Hunger",
{
bar = "advanced_survival_hunger_bar.png",
icon = "farming_bread.png"
},
20,
maxHunger
)
Code: Select all
minetest.register_on_joinplayer(function(player)
local playerMetaData = player:get_meta()
-- Set up their attributes if they aren't set up
if playerMetaData:get_float("advanced_survival:stats_are_setup") == 0 then
playerMetaData:set_float("advanced_survival:hydration", 20)
playerMetaData:set_float("advanced_survival:hunger", 20)
playerMetaData:set_float("advanced_survival:stats_are_setup", 1)
else
local playerHydration = playerMetaData:get_float("advanced_survival:hydration")
local playerHunger = playerMetaData:get_float("advanced_survival:hunger")
handleStatEffects(player, playerHydration, playerHunger)
end
-- Set up hunger bar
hb.init_hudbar(player, "hunger")
end)
Code: Select all
minetest.register_on_item_eat(function(hp_change, replace_with_item, itemstack, user, pointed_thing)
local playerMetaData = user:get_meta()
local playerHunger = playerMetaData:get_float("advanced_survival:hunger")
playerHunger = clamp(playerHunger + hp_change, 0, maxHunger)
playerMetaData:set_float("advanced_survival:hunger", playerHunger)
hb.change_hudbar(user, "hunger", playerHunger)
end)