Add block breaking induced hunger and tweak hunger mechanics even further

This commit is contained in:
oilboi 2020-05-05 04:13:39 -04:00
parent 28b0614fa8
commit c5c0cb7d91

View File

@ -4,7 +4,7 @@ minetest.register_on_joinplayer(function(player)
hud_elem_type = "statbar", hud_elem_type = "statbar",
position = {x = 0.5, y = 1}, position = {x = 0.5, y = 1},
text = "hunger_icon_bg.png", text = "hunger_icon_bg.png",
number = meta:get_int("hunger"), number = 20,
direction = 1, direction = 1,
size = {x = 24, y = 24}, size = {x = 24, y = 24},
offset = {x = 24*10, y= -(48 + 50 + 39)}, offset = {x = 24*10, y= -(48 + 50 + 39)},
@ -48,26 +48,25 @@ local function hunger_update()
local sneaking = (meta:get_string("player.player_movement_state") == "3") local sneaking = (meta:get_string("player.player_movement_state") == "3")
local got_hungry = math.random() local got_hungry = math.random()
if satiation > 0 then if satiation > 0 then
if running and got_hungry > 0.995 then if running and got_hungry > 0.989 then
satiation = satiation - 1 satiation = satiation - 1
elseif bunny_hopping and got_hungry > 0.990 then elseif bunny_hopping and got_hungry > 0.983 then
satiation = satiation - 1 satiation = satiation - 1
elseif sneaking and got_hungry > 0.9998 then elseif sneaking and got_hungry > 0.9930 then
satiation = satiation - 1 satiation = satiation - 1
elseif got_hungry > 0.9996 then elseif got_hungry > 0.99 then
satiation = satiation - 1 satiation = satiation - 1
end end
end end
if satiation == 0 then if satiation == 0 then
if hunger > 0 then if hunger > 0 then
if running and got_hungry > 0.982 then if running and got_hungry > 0.962 then
hunger = hunger - 1 hunger = hunger - 1
elseif bunny_hopping and got_hungry > 0.977 then elseif bunny_hopping and got_hungry > 0.957 then
hunger = hunger - 1 hunger = hunger - 1
elseif sneaking and got_hungry > 0.9968 then elseif sneaking and got_hungry > 0.981 then
hunger = hunger - 1 hunger = hunger - 1
elseif got_hungry > 0.9954 then elseif got_hungry > 0.9774 then
hunger = hunger - 1 hunger = hunger - 1
end end
end end
@ -88,7 +87,6 @@ local function hunger_update()
satiation = 0 satiation = 0
end end
end end
print(satiation)
meta:set_int("satiation", satiation) meta:set_int("satiation", satiation)
local hunger_bar = meta:get_int("hunger_bar") local hunger_bar = meta:get_int("hunger_bar")
player:hud_change(hunger_bar, "number", hunger) player:hud_change(hunger_bar, "number", hunger)
@ -101,6 +99,32 @@ end
hunger_update() hunger_update()
--take away hunger and satiation randomly while mining
minetest.register_on_dignode(function(pos, oldnode, digger)
local meta = digger:get_meta()
local satiation = meta:get_int("satiation")
local hunger = meta:get_int("hunger")
local got_hungry = math.random()
if satiation > 0 then
if got_hungry > 0.975 then
satiation = satiation - 1
meta:set_int("satiation", satiation)
end
end
if satiation == 0 then
if hunger > 0 then
if got_hungry > 0.955 then
hunger = hunger - 1
meta:set_int("hunger", hunger)
local hunger_bar = meta:get_int("hunger_bar")
digger:hud_change(hunger_bar, "number", hunger)
end
end
end
end)
--allow players to eat food --allow players to eat food
function minetest.eat_food(player,item) function minetest.eat_food(player,item)
local meta = player:get_meta() local meta = player:get_meta()