4 local autodupe = rawget(_G, "autodupe")
7 local function get_float(name, default)
8 return tonumber(minetest.settings:get("autoeat_" .. name) or "") or default
13 function autoeat.eat()
16 for index, stack in pairs(minetest.get_inventory("current_player").main) do
17 local stackname = stack:get_name()
18 if stackname ~= "" then
19 local def = minetest.get_item_def(stackname)
20 if def and def.groups.food then
21 food_count = food_count + 1
30 if food_count == 1 and autodupe then
31 autodupe.needed(food_index)
34 local player = minetest.localplayer
35 local old_index = player:get_wield_index()
36 player:set_wield_index(food_index)
37 minetest.interact("activate", {type = "nothing"})
38 player:set_wield_index(old_index)
44 function autoeat.get_hunger()
46 return minetest.localplayer:hud_get(hud_id).number
52 minetest.register_globalstep(function(dtime)
53 if not minetest.localplayer then return end
55 if autoeat.lock or minetest.settings:get_bool("autoeat") and etime >= get_float("cooldown", 0.5) and autoeat.get_hunger() < get_float("hunger", 9) then
61 minetest.after(3, function()
62 local player = minetest.localplayer
67 def = player:hud_get(i)
68 until not def or def.text == "hbhunger_icon.png"