minetest_sloweater/init.lua

30 lines
944 B
Lua
Raw Normal View History

2018-10-14 09:39:46 -07:00
local EATING_DELAY = 5 -- time in seconds player must wait before being allowed to eat again
minetest.register_on_item_eat(function(hp_change, replace_with_item, itemstack, user, pointed_thing)
2019-08-23 01:32:47 -07:00
local last_eat_time = user:get_meta():get_int("last_eat_time")
2018-10-14 09:39:46 -07:00
local can_eat = true
if last_eat_time ~= nil then
last_eat_time = tonumber(last_eat_time)
end
if type(last_eat_time) == "number" then
local current_time = minetest.get_gametime()
if current_time - last_eat_time < EATING_DELAY then
can_eat = false
end
end
if can_eat then
2019-08-23 01:32:47 -07:00
user:get_meta():set_int("last_eat_time", minetest.get_gametime())
2018-10-14 09:39:46 -07:00
local def = itemstack:get_definition()
local eat_sound
if def.sounds and def.sounds.eat then
eat_sound = def.sounds.eat
else
eat_sound = { name = "sloweater_eat_generic", gain = 1 }
end
2019-08-23 01:29:04 -07:00
minetest.sound_play(eat_sound, {pos=user:get_pos(), max_hear_distance = 16})
2018-10-14 09:39:46 -07:00
return nil
else
return itemstack
end
end)