From 0afbba4deb0eb81bbd9d64d121448109f7723c83 Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Fri, 26 Jun 2020 20:46:35 +0100 Subject: [PATCH] =?UTF-8?q?os.clock()=20=E2=86=92=20minetest.get=5Fus=5Fti?= =?UTF-8?q?me()=20....how=20did=20I=20miss=20that=20:P?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldeditadditions/lib/maze2d.lua | 4 +- worldeditadditions/lib/maze3d.lua | 2 +- worldeditadditions/utils/numbers.lua | 16 +++++ .../commands/bonemeal.lua | 4 +- .../commands/convolve.lua | 4 +- .../commands/count.lua | 4 +- .../commands/ellipsoid.lua | 8 +-- .../commands/floodfill.lua | 4 +- .../commands/layers.lua | 4 +- worldeditadditions_commands/commands/maze.lua | 8 +-- .../commands/overlay.lua | 4 +- .../commands/replacemix.lua | 4 +- .../commands/subdivide.lua | 58 ++++++++++--------- .../commands/torus.lua | 8 +-- .../commands/walls.lua | 4 +- worldeditadditions_commands/multi.lua | 8 +-- 16 files changed, 82 insertions(+), 62 deletions(-) diff --git a/worldeditadditions/lib/maze2d.lua b/worldeditadditions/lib/maze2d.lua index ef159fe..717a627 100644 --- a/worldeditadditions/lib/maze2d.lua +++ b/worldeditadditions/lib/maze2d.lua @@ -17,7 +17,7 @@ local function printspace(space, w, h) end local function generate_maze(seed, width, height, path_length, path_width) - start_time = os.clock() + start_time = worldeditadditions.get_ms_time() if not path_length then path_length = 2 end if not path_width then path_width = 1 end @@ -112,7 +112,7 @@ local function generate_maze(seed, width, height, path_length, path_width) end end - local end_time = os.clock() + local end_time = worldeditadditions.get_ms_time() return world, (end_time - start_time) * 1000 end diff --git a/worldeditadditions/lib/maze3d.lua b/worldeditadditions/lib/maze3d.lua index 703489c..fe84aa4 100644 --- a/worldeditadditions/lib/maze3d.lua +++ b/worldeditadditions/lib/maze3d.lua @@ -19,7 +19,7 @@ function printspace3d(space, w, h, d) end -- Initialise the world -start_time = os.clock() +start_time = worldeditadditions.get_ms_time() local function generate_maze3d(seed, width, height, depth, path_length, path_width, path_depth) diff --git a/worldeditadditions/utils/numbers.lua b/worldeditadditions/utils/numbers.lua index 06a9d63..cefd879 100644 --- a/worldeditadditions/utils/numbers.lua +++ b/worldeditadditions/utils/numbers.lua @@ -9,3 +9,19 @@ function worldeditadditions.hypotenuse(x1, y1, x2, y2) local ySquare = math.pow(y1 - y2, 2); return math.sqrt(xSquare + ySquare); end + + +function worldeditadditions.average(list) + if #list == 0 then return 0 end + local sum = 0 + for i,value in ipairs(list) do + sum = sum + value + end + return sum / #list +end + +--- Returns the minetest.get_us_time() in ms +-- @return float +function worldeditadditions.get_ms_time() + return minetest.get_us_time() / 1000 +end diff --git a/worldeditadditions_commands/commands/bonemeal.lua b/worldeditadditions_commands/commands/bonemeal.lua index 9fe696e..2e3363e 100644 --- a/worldeditadditions_commands/commands/bonemeal.lua +++ b/worldeditadditions_commands/commands/bonemeal.lua @@ -46,14 +46,14 @@ worldedit.register_command("bonemeal", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) / 2 end, func = function(name, strength, chance) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local success, nodes_bonemealed, candidates = worldeditadditions.bonemeal(worldedit.pos1[name], worldedit.pos2[name], strength, chance) if not success then -- nodes_bonemealed is an error message here because success == false return success, nodes_bonemealed end local percentage = worldeditadditions.round((nodes_bonemealed / candidates)*100, 2) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //bonemeal at "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", bonemealing " .. nodes_bonemealed.." nodes (out of "..candidates.." nodes) at strength "..strength.." in "..time_taken.."s") return true, nodes_bonemealed.." out of "..candidates.." (~"..percentage.."%) candidates bonemealed in "..time_taken.."s" diff --git a/worldeditadditions_commands/commands/convolve.lua b/worldeditadditions_commands/commands/convolve.lua index 3efa14b..2ceae3d 100644 --- a/worldeditadditions_commands/commands/convolve.lua +++ b/worldeditadditions_commands/commands/convolve.lua @@ -50,7 +50,7 @@ worldedit.register_command("convolve", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) end, func = function(name, kernel_name, kernel_width, kernel_height, sigma) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() print("[exec] kernel_width", kernel_width, "kernel_height", kernel_height) local success, kernel = worldeditadditions.get_conv_kernel(kernel_name, kernel_width, kernel_height, sigma) @@ -65,7 +65,7 @@ worldedit.register_command("convolve", { kernel, kernel_size ) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name.." used //convolve at "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", adding "..stats.added.." nodes and removing "..stats.removed.." nodes in "..time_taken.."s") diff --git a/worldeditadditions_commands/commands/count.lua b/worldeditadditions_commands/commands/count.lua index e4eaa4b..4a1699a 100644 --- a/worldeditadditions_commands/commands/count.lua +++ b/worldeditadditions_commands/commands/count.lua @@ -17,14 +17,14 @@ worldedit.register_command("count", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) end, func = function(name) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local success, counts, total = worldeditadditions.count(worldedit.pos1[name], worldedit.pos2[name], target_node) local result = worldeditadditions.make_ascii_table(counts).."\n".. string.rep("=", 6 + #tostring(total) + 6).."\n".. "Total "..total.." nodes\n" - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name.." used //count at "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", counting "..total.." nodes in "..time_taken.."s") diff --git a/worldeditadditions_commands/commands/ellipsoid.lua b/worldeditadditions_commands/commands/ellipsoid.lua index 7eedf11..602dedc 100644 --- a/worldeditadditions_commands/commands/ellipsoid.lua +++ b/worldeditadditions_commands/commands/ellipsoid.lua @@ -43,9 +43,9 @@ worldedit.register_command("ellipsoid", { return math.ceil(4/3 * math.pi * radius.x * radius.y * radius.z) end, func = function(name, target_node, radius) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local replaced = worldeditadditions.ellipsoid(worldedit.pos1[name], radius, target_node, false) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //ellipsoid at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. replaced .. " nodes in " .. time_taken .. "s") return true, replaced .. " nodes replaced in " .. time_taken .. "s" @@ -66,9 +66,9 @@ worldedit.register_command("hollowellipsoid", { return math.ceil(4/3 * math.pi * radius.x * radius.y * radius.z) end, func = function(name, target_node, radius) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local replaced = worldeditadditions.ellipsoid(worldedit.pos1[name], radius, target_node, true) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //hollowellipsoid at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. replaced .. " nodes in " .. time_taken .. "s") return true, replaced .. " nodes replaced in " .. time_taken .. "s" diff --git a/worldeditadditions_commands/commands/floodfill.lua b/worldeditadditions_commands/commands/floodfill.lua index 1d361a1..bd2caeb 100644 --- a/worldeditadditions_commands/commands/floodfill.lua +++ b/worldeditadditions_commands/commands/floodfill.lua @@ -35,9 +35,9 @@ worldedit.register_command("floodfill", { return math.ceil(((4 * math.pi * (tonumber(radius) ^ 3)) / 3) / 2) end, func = function(name, replace_node, radius) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local nodes_replaced = worldeditadditions.floodfill(worldedit.pos1[name], radius, replace_node) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time if nodes_replaced == false then return false, "Error: The search node is the same as the replace node." diff --git a/worldeditadditions_commands/commands/layers.lua b/worldeditadditions_commands/commands/layers.lua index 8794ba1..c275f08 100644 --- a/worldeditadditions_commands/commands/layers.lua +++ b/worldeditadditions_commands/commands/layers.lua @@ -23,9 +23,9 @@ worldedit.register_command("layers", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) end, func = function(name, node_list) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local changes = worldeditadditions.layers(worldedit.pos1[name], worldedit.pos2[name], node_list) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //layers at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. changes.replaced .. " nodes and skipping " .. changes.skipped_columns .. " columns in " .. time_taken .. "s") return true, changes.replaced .. " nodes replaced and " .. changes.skipped_columns .. " columns skipped in " .. time_taken .. "s" diff --git a/worldeditadditions_commands/commands/maze.lua b/worldeditadditions_commands/commands/maze.lua index e2b3a4c..2c86136 100644 --- a/worldeditadditions_commands/commands/maze.lua +++ b/worldeditadditions_commands/commands/maze.lua @@ -72,9 +72,9 @@ worldedit.register_command("maze", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) end, func = function(name, replace_node, seed, path_length, path_width) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local replaced = worldeditadditions.maze2d(worldedit.pos1[name], worldedit.pos2[name], replace_node, seed, path_length, path_width) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //maze at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. " - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", replacing " .. replaced .. " nodes in " .. time_taken .. "s") return true, replaced .. " nodes replaced in " .. time_taken .. "s" @@ -102,9 +102,9 @@ worldedit.register_command("maze3d", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) end, func = function(name, replace_node, seed, path_length, path_width, path_depth) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local replaced = worldeditadditions.maze3d(worldedit.pos1[name], worldedit.pos2[name], replace_node, seed, path_length, path_width, path_depth) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //maze3d at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. " - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", replacing " .. replaced .. " nodes in " .. time_taken .. "s") diff --git a/worldeditadditions_commands/commands/overlay.lua b/worldeditadditions_commands/commands/overlay.lua index 23300e0..956c01c 100644 --- a/worldeditadditions_commands/commands/overlay.lua +++ b/worldeditadditions_commands/commands/overlay.lua @@ -20,9 +20,9 @@ worldedit.register_command("overlay", { return (pos2.x - pos1.x) * (pos2.y - pos1.y) end, func = function(name, node_list) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local changes = worldeditadditions.overlay(worldedit.pos1[name], worldedit.pos2[name], node_list) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //overlay at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. changes.updated .. " nodes and skipping " .. changes.skipped_columns .. " columns in " .. time_taken .. "s") return true, changes.updated .. " nodes replaced and " .. changes.skipped_columns .. " columns skipped in " .. time_taken .. "s" diff --git a/worldeditadditions_commands/commands/replacemix.lua b/worldeditadditions_commands/commands/replacemix.lua index 60ff8bd..5a70bcb 100644 --- a/worldeditadditions_commands/commands/replacemix.lua +++ b/worldeditadditions_commands/commands/replacemix.lua @@ -64,7 +64,7 @@ worldedit.register_command("replacemix", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) end, func = function(name, target_node, target_node_chance, replace_nodes) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local success, changed, candidates, distribution = worldeditadditions.replacemix( worldedit.pos1[name], worldedit.pos2[name], @@ -83,7 +83,7 @@ worldedit.register_command("replacemix", { changed ) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //replacemix at "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", replacing " .. changed.." nodes (out of "..nodes_total.." nodes) in "..time_taken.."s") diff --git a/worldeditadditions_commands/commands/subdivide.lua b/worldeditadditions_commands/commands/subdivide.lua index 5427299..fef44a8 100644 --- a/worldeditadditions_commands/commands/subdivide.lua +++ b/worldeditadditions_commands/commands/subdivide.lua @@ -1,5 +1,8 @@ +local wea = worldeditadditions + -- Test command: -- //multi //fp set1 1330 60 5455 //fp set2 1355 35 5430 //subdivide 10 10 10 fixlight //y + local function will_trigger_saferegion(name, cmd_name, args) if not worldedit.registered_commands[cmd_name] then return nil, "Error: That worldedit command could not be found (perhaps it hasn't been upgraded to worldedit.register_command() yet?)" end local def = worldedit.registered_commands[cmd_name] @@ -22,7 +25,7 @@ worldedit.register_command("subdivide", { privs = { worldedit = true }, require_pos = 2, parse = function(params_text) - local parts = worldeditadditions.split(params_text, "%s+", false) + local parts = wea.split(params_text, "%s+", false) if #parts < 4 then return false, "Error: Not enough arguments (try /help /subdivide)." @@ -55,7 +58,7 @@ worldedit.register_command("subdivide", { return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name]) end, func = function(name, chunk_size, cmd_name, args) - local time_total = os.clock() + local time_total = worldeditadditions.get_ms_time() local pos1, pos2 = worldedit.sort_pos(worldedit.pos1[name], worldedit.pos2[name]) local volume = worldedit.volume(pos1, pos2) @@ -68,12 +71,13 @@ worldedit.register_command("subdivide", { chunk_size.y = chunk_size.y - 1 -- WorldEdit regions are inclusive chunk_size.z = chunk_size.z - 1 -- WorldEdit regions are inclusive - worldedit.player_notify(name, worldeditadditions.vector.tostring(pos1).." - "..worldeditadditions.vector.tostring(pos2).." chunk size: "..worldeditadditions.vector.tostring(chunk_size)) + worldedit.player_notify(name, wea.vector.tostring(pos1).." - "..wea.vector.tostring(pos2).." chunk size: "..wea.vector.tostring(chunk_size)) local i = 1 local chunks_total = math.ceil((pos2.x - pos1.x) / chunk_size.x) * math.ceil((pos2.y - pos1.y) / chunk_size.y) * math.ceil((pos2.z - pos1.z) / chunk_size.z) + local time_last_msg = worldeditadditions.get_ms_time() local time_chunks = {} for z = pos2.z, pos1.z, -(chunk_size.z + 1) do for y = pos2.y, pos1.y, -(chunk_size.y + 1) do @@ -84,36 +88,36 @@ worldedit.register_command("subdivide", { y = y - chunk_size.y, z = z - chunk_size.z } - print("c1", worldeditadditions.vector.tostring(c_pos1), "c2", worldeditadditions.vector.tostring(c_pos2), "volume", worldedit.volume(c_pos1, c_pos2)) - if c_pos1.x < pos1.x then - print("clamping c1.x", c_pos1.x, "to", pos1.x) - c_pos1.x = pos1.x - end - if c_pos1.y < pos1.y then - print("clamping c1.y", c_pos1.y, "to", pos1.y) - c_pos1.y = pos1.y - end - if c_pos1.z < pos1.z then - print("clamping c1.z", c_pos1.z, "to", pos1.z) - c_pos1.z = pos1.z - end + -- print("c1", wea.vector.tostring(c_pos1), "c2", wea.vector.tostring(c_pos2), "volume", worldedit.volume(c_pos1, c_pos2)) + if c_pos1.x < pos1.x then c_pos1.x = pos1.x end + if c_pos1.y < pos1.y then c_pos1.y = pos1.y end + if c_pos1.z < pos1.z then c_pos1.z = pos1.z end - local time_this = os.clock() + local time_this = worldeditadditions.get_ms_time() worldedit.pos1[name] = c_pos1 worldedit.pos2[name] = c_pos2 cmd.func(name, args) if will_trigger_saferegion(name, cmd_name, args) then minetest.chatcommands["/y"].func() end - time_this = os.clock() - time_this + time_this = worldeditadditions.get_ms_time() - time_this + table.insert(time_chunks, time_this) - worldedit.player_notify(name, - "[ //subdivide "..cmd_name.." "..args.." ] " - ..i.." / "..chunks_total.." (~" - ..string.format("%.2f", (i / chunks_total) * 100).."%) complete | ".. - worldeditadditions.vector.tostring(c_pos1).." - ".. - worldeditadditions.vector.tostring(c_pos2).."("..worldedit.volume(c_pos1, c_pos2).." nodes)" - ) + local time_average = wea.average(time_chunks) + local eta = (chunks_total - i) * time_average + + if worldeditadditions.get_ms_time() - time_last_msg > 5 * 1000 then + worldedit.player_notify(name, + "[ //subdivide "..cmd_name.." "..args.." ] " + ..i.." / "..chunks_total.." (~" + ..string.format("%.2f", (i / chunks_total) * 100).."%) complete | " + .."this chunk: "..wea.human_time(time_this) + .."("..worldedit.volume(c_pos1, c_pos2).." nodes)" + ..", average: "..wea.human_time(time_average) + ..", ETA: ~"..wea.human_time(eta) + ) + time_last_msg = worldeditadditions.get_ms_time() + end i = i + 1 end @@ -121,10 +125,10 @@ worldedit.register_command("subdivide", { end worldedit.pos1[name] = pos1 worldedit.pos2[name] = pos2 - time_total = os.clock() - time_total + time_total = worldeditadditions.get_ms_time() - time_total - minetest.log("action", name.." used //subdivide at "..worldeditadditions.vector.tostring(pos1).." - "..worldeditadditions.vector.tostring(pos2)..", with "..i.." chunks and "..worldedit.volume(pos1, pos2).." total nodes in "..time_total.."s") + minetest.log("action", name.." used //subdivide at "..wea.vector.tostring(pos1).." - "..wea.vector.tostring(pos2)..", with "..i.." chunks and "..worldedit.volume(pos1, pos2).." total nodes in "..time_total.."s") return true, "/subdivide complete" end }) diff --git a/worldeditadditions_commands/commands/torus.lua b/worldeditadditions_commands/commands/torus.lua index 355e3d0..8294c36 100644 --- a/worldeditadditions_commands/commands/torus.lua +++ b/worldeditadditions_commands/commands/torus.lua @@ -41,9 +41,9 @@ worldedit.register_command("torus", { return math.ceil(2 * math.pi*math.pi * major_radius * minor_radius*minor_radius) end, func = function(name, target_node, major_radius, minor_radius) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local replaced = worldeditadditions.torus(worldedit.pos1[name], major_radius, minor_radius, target_node, false) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //torus at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. replaced .. " nodes in " .. time_taken .. "s") return true, replaced .. " nodes replaced in " .. time_taken .. "s" @@ -64,9 +64,9 @@ worldedit.register_command("hollowtorus", { return math.ceil(2 * math.pi*math.pi * major_radius * minor_radius*minor_radius) end, func = function(name, target_node, major_radius, minor_radius) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local replaced = worldeditadditions.torus(worldedit.pos1[name], major_radius, minor_radius, target_node, true) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //hollowtorus at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. replaced .. " nodes in " .. time_taken .. "s") return true, replaced .. " nodes replaced in " .. time_taken .. "s" diff --git a/worldeditadditions_commands/commands/walls.lua b/worldeditadditions_commands/commands/walls.lua index 8ba0f79..14f2444 100644 --- a/worldeditadditions_commands/commands/walls.lua +++ b/worldeditadditions_commands/commands/walls.lua @@ -24,9 +24,9 @@ worldedit.register_command("walls", { return worldedit.volume(pos1, pos2) - worldedit.volume(pos1, pos3) end, func = function(name, target_node) - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local success, replaced = worldeditadditions.walls(worldedit.pos1[name], worldedit.pos2[name], target_node) - local time_taken = os.clock() - start_time + local time_taken = worldeditadditions.get_ms_time() - start_time minetest.log("action", name .. " used //walls from "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." to "..worldeditadditions.vector.tostring(worldedit.pos1[name])..", replacing " .. replaced .. " nodes in " .. time_taken .. "s") return true, replaced .. " nodes replaced in " .. time_taken .. "s" diff --git a/worldeditadditions_commands/multi.lua b/worldeditadditions_commands/multi.lua index 5951f37..59aa1b7 100644 --- a/worldeditadditions_commands/multi.lua +++ b/worldeditadditions_commands/multi.lua @@ -38,12 +38,12 @@ minetest.register_chatcommand("/multi", { func = function(name, params_text) local i = 1 -- For feedback only - local master_start_time = os.clock() + local master_start_time = worldeditadditions.get_ms_time() local times = {} -- Things start at 1, not 0 in Lua :-( for command in explode(" /", string.sub(params_text, 2)) do - local start_time = os.clock() + local start_time = worldeditadditions.get_ms_time() local found, _, command_name, args = command:find("^([^%s]+)%s(.+)$") if not found then command_name = command end command_name = trim(command_name) @@ -61,11 +61,11 @@ minetest.register_chatcommand("/multi", { minetest.log("action", name.." runs "..command) cmd.func(name, args) - times[#times + 1] = (os.clock() - start_time) * 1000 + times[#times + 1] = (worldeditadditions.get_ms_time() - start_time) * 1000 i = i + 1 end - local total_time = (os.clock() - master_start_time) * 1000 + local total_time = (worldeditadditions.get_ms_time() - master_start_time) * 1000 local done_message = {} table.insert(done_message, string.format("Executed %d commands in %s (",