MineClone2/mods/CORE/mcl_util/playerstep.lua

25 lines
1.0 KiB
Lua

local get_connected_players = minetest.get_connected_players
mcl_util.registered_player_globalstep = {}
local registered_player_globalstep = mcl_util.registered_player_globalstep
function mcl_util.register_player_globalstep(def)
if not def.can_execute then def.can_execute = function() return true end end
table.insert(mcl_util.registered_player_globalstep, {can_execute=def.can_execute, func=def.execute})
end
minetest.register_on_mods_loaded(function()
minetest.register_globalstep(function(dtime)
local players = get_connected_players()
for i = 1, #registered_player_globalstep do
if registered_player_globalstep[i].can_execute and registered_player_globalstep[i].can_execute(dtime) then
for p = 1, #players do
registered_player_globalstep[i].func(players[p], dtime)
end
if registered_player_globalstep[i].after_execute then
registered_player_globalstep[i].after_execute(dtime)
end
end
end
end)
end)