:3
This commit is contained in:
parent
491112768c
commit
68ec37f994
66 changed files with 6591 additions and 10096 deletions
80
computer/15/dirt.lua
Normal file
80
computer/15/dirt.lua
Normal file
|
@ -0,0 +1,80 @@
|
|||
basin = peripheral.wrap("top")
|
||||
|
||||
base_item = "dirt"
|
||||
|
||||
levels = {
|
||||
compressed = 1,
|
||||
double_compressed = 2,
|
||||
triple_compressed = 3,
|
||||
quadruple_compressed = 4,
|
||||
quintuple_compressed = 5,
|
||||
sextuple_compressed = 6,
|
||||
septuple_compressed = 7,
|
||||
octuple_compressed = 8,
|
||||
}
|
||||
|
||||
unpacked = {
|
||||
9,
|
||||
81,
|
||||
729,
|
||||
6561,
|
||||
59049,
|
||||
531441,
|
||||
4782969,
|
||||
43046721
|
||||
}
|
||||
|
||||
last_total = 0
|
||||
last_estimate_time = 0
|
||||
estimate_interval_h = 30/3600
|
||||
estimated_speed = 0
|
||||
|
||||
function update()
|
||||
local counts = {}
|
||||
local raw = basin.list()
|
||||
local total = 0
|
||||
for _, item in pairs(raw) do
|
||||
name = string.sub(item.name, string.len("compressor:_"), -string.len(base_item)-2)
|
||||
count = item.count
|
||||
if levels[name] then
|
||||
counts[levels[name]] = count
|
||||
total = total + unpacked[levels[name]] * count
|
||||
end
|
||||
end
|
||||
|
||||
local time = os.time("utc")
|
||||
if time - last_estimate_time >= estimate_interval_h then
|
||||
last_estimate_time = time
|
||||
estimated_speed = (total - last_total) / (estimate_interval_h * 3600)
|
||||
last_total = total
|
||||
end
|
||||
|
||||
-- draw
|
||||
|
||||
term.clear()
|
||||
term.setCursorPos(1,1)
|
||||
print(base_item, "progress")
|
||||
for level = 1, 7 do
|
||||
local count = counts[level] or 0
|
||||
local bar = string.rep("#", count) .. string.rep(".", 9 - count)
|
||||
print("lvl", level, bar)
|
||||
end
|
||||
print("total: ", total)
|
||||
local progress = math.floor(total / unpacked[8] * 10000) / 100
|
||||
print("progress to octuple: " .. progress .. "%")
|
||||
print("speed:", estimated_speed, base_item.."/s")
|
||||
local eta = math.floor((unpacked[8] - progress) / estimated_speed + 0.5)
|
||||
local eta_s = eta % 60
|
||||
local eta_m = math.floor(eta / 60) % 60
|
||||
local eta_h = math.floor(eta / 3600) % 24
|
||||
local eta_d = math.floor(eta / 86400)
|
||||
-- print(eta)
|
||||
print("time remaining: ", eta_d .. "d", eta_h .. ":" .. eta_m .. ":" .. eta_s)
|
||||
local n = math.floor(30 * (time - last_estimate_time) / estimate_interval_h)
|
||||
print(string.rep(",", n)..string.rep(".", 32-n))
|
||||
end
|
||||
|
||||
while true do
|
||||
update()
|
||||
sleep(2)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue