mirror of
https://github.com/sbrl/Minetest-WorldEditAdditions.git
synced 2024-12-23 03:55:01 +00:00
Add ETA to //many, and tidy up message generation in //subdivide
This commit is contained in:
parent
4367b4bc70
commit
ef165b9c58
4 changed files with 32 additions and 9 deletions
|
@ -5,6 +5,7 @@ It's about time I started a changelog! This will serve from now on as the master
|
|||
## v1.10 (unreleased)
|
||||
- `//maze`: Fix some parts of generated mazes staying solid
|
||||
- `//maze`, `//maze3d`: Allow non-number seeds (existing seeds aren't affected - they will still produce identical output)
|
||||
- `//many`: Improve format of progress messages, add ETA
|
||||
|
||||
|
||||
## v1.9: The Nature Update (20th September 2020)
|
||||
|
|
|
@ -25,3 +25,10 @@ end
|
|||
function worldeditadditions.get_ms_time()
|
||||
return minetest.get_us_time() / 1000
|
||||
end
|
||||
|
||||
function worldeditadditions.eta(existing_times, times_total_count)
|
||||
local average = worldeditadditions.average(existing_times)
|
||||
local times_left = times_total_count - #existing_times
|
||||
if times_left == 0 then return 0 end
|
||||
return average * times_left
|
||||
end
|
||||
|
|
|
@ -35,7 +35,14 @@ local function step(params)
|
|||
local start_time = worldeditadditions.get_ms_time()
|
||||
|
||||
local full_cmd = params.cmd_name.." "..params.args
|
||||
worldedit.player_notify(params.name, "[ many ] [ /"..full_cmd.." ] "..(params.i + 1).." / "..params.count.." (~"..worldeditadditions.round(((params.i + 1) / params.count)*100, 2).."%)")
|
||||
worldedit.player_notify(params.name, string.format("[ many | /%s ] %d / %d (~%.2f%%) complete | last: %s, average: %s, ETA: ~%s",
|
||||
full_cmd,
|
||||
(params.i + 1), params.count,
|
||||
((params.i + 1) / params.count)*100,
|
||||
worldeditadditions.human_time(params.times[#params.times] or 0),
|
||||
worldeditadditions.human_time(worldeditadditions.average(params.times)),
|
||||
worldeditadditions.human_time(worldeditadditions.eta(params.times, params.count))
|
||||
))
|
||||
|
||||
local cmd = minetest.chatcommands[params.cmd_name]
|
||||
|
||||
|
@ -43,7 +50,7 @@ local function step(params)
|
|||
cmd.func(params.name, params.args)
|
||||
|
||||
|
||||
params.times[#params.times + 1] = (worldeditadditions.get_ms_time() - start_time)
|
||||
table.insert(params.times, worldeditadditions.get_ms_time() - start_time)
|
||||
|
||||
params.i = params.i + 1
|
||||
if params.i < params.count then
|
||||
|
@ -52,7 +59,7 @@ local function step(params)
|
|||
local total_time = (worldeditadditions.get_ms_time() - params.master_start_time)
|
||||
local done_message = {}
|
||||
table.insert(done_message,
|
||||
string.format("Executed '"..full_cmd.."' %d times in %s (~%s / time",
|
||||
string.format("Executed '"..full_cmd.."' %d times in %s (~%s / time)",
|
||||
#params.times,
|
||||
worldeditadditions.human_time(total_time),
|
||||
worldeditadditions.human_time(
|
||||
|
|
|
@ -136,14 +136,22 @@ worldedit.register_command("subdivide", {
|
|||
-- print("eta", eta, "time_average", time_average, "chunks_left", chunks_total - i)
|
||||
|
||||
-- Send updates every 2 seconds, and after the first 3 chunks are done
|
||||
print("[DEBUG]",
|
||||
i, chunks_total,
|
||||
(i / chunks_total) * 100,
|
||||
wea.human_time(time_this),
|
||||
wea.human_time(time_average),
|
||||
"eta", eta, "[human]", wea.human_time(eta), "end")
|
||||
if worldeditadditions.get_ms_time() - time_last_msg > 2 * 1000 or i == 3 or i == chunks_total then
|
||||
worldedit.player_notify(name,
|
||||
msg_prefix
|
||||
..i.." / "..chunks_total.." (~"
|
||||
..string.format("%.2f", (i / chunks_total) * 100).."%) complete | "
|
||||
.."last chunk: "..wea.human_time(time_this)
|
||||
..", average: "..wea.human_time(time_average)
|
||||
..", ETA: ~"..wea.human_time(eta)
|
||||
string.format("%s%d / %d (~%.2f%%) complete | last chunk: %s, average: %s, ETA: ~%s",
|
||||
msg_prefix,
|
||||
i, chunks_total,
|
||||
(i / chunks_total) * 100,
|
||||
wea.human_time(time_this),
|
||||
wea.human_time(time_average),
|
||||
wea.human_time(eta)
|
||||
)
|
||||
)
|
||||
time_last_msg = worldeditadditions.get_ms_time()
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue