58 lines
1.4 KiB
Lua
58 lines
1.4 KiB
Lua
abm_counter = 0
|
|
abm_timer = 0
|
|
abm_limit = 999
|
|
abm_time_limit = 1
|
|
|
|
function abm_limiter()
|
|
if abm_counter > abm_limit then
|
|
return true
|
|
end
|
|
abm_counter = abm_counter + 1
|
|
return false
|
|
end
|
|
|
|
function abm_globalstep(dtime)
|
|
abm_timer = abm_timer + dtime
|
|
if abm_timer > abm_time_limit then
|
|
abm_counter = 0
|
|
abm_timer = 0
|
|
end
|
|
end
|
|
|
|
adventuretest.pl_hooks = {}
|
|
function adventuretest.player_loop(dtime)
|
|
local p = minetest.get_connected_players()
|
|
for _, player in pairs(p) do
|
|
local name = player:get_player_name()
|
|
for k,hook in pairs(adventuretest.pl_hooks) do
|
|
adventuretest.pl_hooks[k].timer = adventuretest.pl_hooks[k].timer + dtime
|
|
if adventuretest.pl_hooks[k].timer >= adventuretest.pl_hooks[k].timeout then
|
|
adventuretest.pl_hooks[k].timer = 0
|
|
adventuretest.pl_hooks[k].func(player,name,dtime)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function adventuretest.register_pl_hook(f,t)
|
|
table.insert(adventuretest.pl_hooks,{func=f,timeout=t,timer=0})
|
|
end
|
|
|
|
function adventuretest.teleport(player,pos)
|
|
local name = player:get_player_name();
|
|
pd.set(name,"lastpos",pos)
|
|
player:moveto(pos)
|
|
end
|
|
|
|
function hunger_join_player(player)
|
|
local name = player:get_player_name()
|
|
local lvl = pd.get_number(name,"hunger_lvl")
|
|
if lvl > 20 then
|
|
lvl = 20
|
|
end
|
|
minetest.after(0.8, function()
|
|
hud.change_item(player, "hunger", {offset = "item", item_name = "hunger"})
|
|
hud.change_item(player, "hunger", {number = lvl, max = 20})
|
|
end)
|
|
end
|