2020-05-11 03:02:02 +02:00
|
|
|
-- From http://lua-users.org/wiki/SimpleRound
|
2020-05-12 01:38:42 +02:00
|
|
|
function worldeditadditions.round(num, numDecimalPlaces)
|
2021-02-26 05:22:39 +01:00
|
|
|
local mult = 10^(numDecimalPlaces or 0)
|
|
|
|
return math.floor(num * mult + 0.5) / mult
|
2020-05-11 03:02:02 +02:00
|
|
|
end
|
2020-06-09 02:21:32 +02:00
|
|
|
|
|
|
|
function worldeditadditions.hypotenuse(x1, y1, x2, y2)
|
|
|
|
local xSquare = math.pow(x1 - x2, 2);
|
|
|
|
local ySquare = math.pow(y1 - y2, 2);
|
|
|
|
return math.sqrt(xSquare + ySquare);
|
|
|
|
end
|
2020-06-26 21:46:35 +02:00
|
|
|
|
2020-10-10 22:43:22 +02:00
|
|
|
function worldeditadditions.sum(list)
|
2021-02-26 05:22:39 +01:00
|
|
|
if #list == 0 then return 0 end
|
2020-06-26 21:46:35 +02:00
|
|
|
local sum = 0
|
|
|
|
for i,value in ipairs(list) do
|
|
|
|
sum = sum + value
|
|
|
|
end
|
2021-02-26 05:22:39 +01:00
|
|
|
return sum
|
2020-10-10 22:43:22 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function worldeditadditions.average(list)
|
2021-02-26 05:22:39 +01:00
|
|
|
if #list == 0 then return 0 end
|
2020-10-10 22:43:22 +02:00
|
|
|
return worldeditadditions.sum(list) / #list
|
2020-06-26 21:46:35 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
--- Returns the minetest.get_us_time() in ms
|
|
|
|
-- @return float
|
|
|
|
function worldeditadditions.get_ms_time()
|
|
|
|
return minetest.get_us_time() / 1000
|
|
|
|
end
|
2020-10-10 18:01:08 +02:00
|
|
|
|
2021-02-07 03:45:34 +01:00
|
|
|
function worldeditadditions.eta(existing_times, done_count, total_count)
|
2021-02-26 05:22:39 +01:00
|
|
|
local max = 100
|
|
|
|
local average = worldeditadditions.average(
|
|
|
|
worldeditadditions.table_get_last(existing_times, max)
|
|
|
|
)
|
|
|
|
local times_left = total_count - done_count
|
|
|
|
if times_left == 0 then return 0 end
|
|
|
|
return average * times_left
|
|
|
|
end
|
|
|
|
|
|
|
|
--- Returns the sign (+ or -) at the beginning of a string if present.
|
|
|
|
-- @param str string Input string.
|
|
|
|
-- @param type string The type of value to return. Valid values: "string" (default), "int"
|
|
|
|
-- @return string|int Returns the sign string or signed multiplier (1|-1).
|
|
|
|
function worldeditadditions.getsign(str, type)
|
|
|
|
if not type then type = "string" end
|
|
|
|
if not (type == "string" or type == "int") then
|
|
|
|
return false, "Error: Unknown type '"..type.."'."
|
|
|
|
end
|
|
|
|
if str:sub(1, 1) == "-" then
|
2021-02-28 16:25:31 +01:00
|
|
|
if type == "int" then return true, -1
|
|
|
|
else return true, "-" end
|
2021-02-26 05:22:39 +01:00
|
|
|
else
|
2021-02-28 16:25:31 +01:00
|
|
|
if type == "int" then return true, 1
|
|
|
|
else return true, "+" end
|
2021-02-26 05:22:39 +01:00
|
|
|
end
|
2020-10-10 18:01:08 +02:00
|
|
|
end
|
2021-02-28 18:59:09 +01:00
|
|
|
|
|
|
|
-- For Testing:
|
|
|
|
-- worldeditadditions = {}
|
|
|
|
-- print(worldeditadditions.getsign('-y'))
|