local function emergeblocks_callback(pos, action, num_calls_remaining, ctx) if ctx.total_blocks == 0 then ctx.total_blocks = num_calls_remaining + 1 ctx.current_blocks = 0 end ctx.current_blocks = ctx.current_blocks + 1 if ctx.current_blocks == ctx.total_blocks then if ctx.name then minetest.chat_send_player(ctx.name, string.format("Finished emerging %d blocks in %.2fms.", ctx.total_blocks, (os.clock() - ctx.start_time) * 1000)) end ctx:callback() elseif ctx.progress then ctx:progress() end end function ctf_map.emerge_with_callbacks(name, pos1, pos2, callback, progress) local context = { current_blocks = 0, total_blocks = 0, start_time = os.clock(), name = name, callback = callback, progress = progress } minetest.emerge_area(pos1, pos2, emergeblocks_callback, context) end