capturetheflag/mods/ctf/ctf_map/emerge.lua
2019-01-11 15:52:47 +00:00

33 lines
862 B
Lua

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