2021-04-09 22:25:42 +02:00
|
|
|
local get_connected_players = minetest.get_connected_players
|
|
|
|
|
|
|
|
mcl_util.registered_player_globalstep = {}
|
|
|
|
local registered_player_globalstep = mcl_util.registered_player_globalstep
|
|
|
|
|
2021-04-10 02:04:31 +02:00
|
|
|
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})
|
2021-04-09 22:25:42 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
minetest.register_on_mods_loaded(function()
|
|
|
|
minetest.register_globalstep(function(dtime)
|
|
|
|
local players = get_connected_players()
|
2021-04-10 02:04:31 +02:00
|
|
|
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
|
2021-04-09 22:25:42 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
end)
|