4 local autodupe
= false --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 minetest
.place_node(minetest
.localplayer
:get_pos())
39 player
:set_wield_index(old_index
)
45 function autoeat
.get_hunger()
47 return minetest
.localplayer
:hud_get(hud_id
).number
53 minetest
.register_globalstep(function(dtime
)
54 if not minetest
.localplayer
then return end
56 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 local function get_hud()
62 local player
= minetest
.localplayer
65 if not player
then minetest
.after(5,get_hud
) return end
68 def
= player
:hud_get(i
)
69 until not def
or def
.text
== "hbhunger_icon.png"
74 minetest
.after(15,get_hud
)
76 minetest
.register_cheat("AutoEat", "Player", "autoeat")