From: Olav Bakke Svendsen Date: Thu, 12 Oct 2023 03:37:57 +0000 (+0200) Subject: Monitor write doesn't newline X-Git-Tag: stable-steam~24 X-Git-Url: http://git.olavbs.no/?a=commitdiff_plain;h=e7259478fa3058b306be626960bbcd2bd231a575;p=cc.git Monitor write doesn't newline --- diff --git a/steam/temporary-coal-feeder.lua b/steam/temporary-coal-feeder.lua index f14f663..5703f89 100644 --- a/steam/temporary-coal-feeder.lua +++ b/steam/temporary-coal-feeder.lua @@ -3,10 +3,10 @@ local refill_when = function(amt) return amt < 2 end local refill_amt = 2 -local monitor = peripheral.wrap("monitor_1") +local main_monitor = peripheral.wrap("monitor_1") local treefarm_monitor = peripheral.wrap("monitor_0") -local coal_barrels_1 = {} +local coal_barrels = {} for _,n in pairs({ "0", "1" }) do local prefix = "sophisticatedstorage:limited_barrel_" coal_barrels[prefix..n] = peripheral.wrap(prefix..n) @@ -56,19 +56,26 @@ local feed = function(stock) end end -local print_stats = function(to, stock) +local print_stats = function(monitor, stock) local total_coal = 0 local str = "" for k,v in pairs(stock) do total_coal = total_coal + v - str = str..tostring(v).." in "..string.match(k, "barrel_%d+$").."\n" + str = str.." + "..tostring(v) end - m.clear() - m.setCursorPos(1,1) - m.write(tostring(num_deployers).." deployers connected\n\n") - m.write(tostring(num_deployers/2).." charcoal/minute needed\n") - m.write(tostring(total_coal).." available\n"..str) - m.write("refreshes once every minute") + monitor.clear() + monitor.setTextColor(1) + monitor.setCursorPos(1,1) + monitor.write(tostring(num_deployers).." burners") + monitor.setCursorPos(1,2) + monitor.write(tostring(num_deployers/2).." charcoal/minute needed") + monitor.setCursorPos(1,3) + monitor.write(tostring(total_coal).." available") + monitor.setCursorPos(1,4) + monitor.setTextColor(128) + monitor.write(string.gsub(str, "^%s++%s*", "")) + monitor.setCursorPos(1,6) + monitor.write("refreshes once every minute") end local spinner_chars = {"\\","-","/","|"} @@ -81,7 +88,7 @@ local main_timer = os.startTimer(0) local spinner_timer = os.startTimer(0) while true do - local e = table.pack(os.pullSignal()) + local e = table.pack(os.pullEvent()) if e[1] == "monitor_touch" and e[2] == treefarm_monitor then treefarm_monitor.write(spinner()) elseif e[1] == "timer" and e[2] == main_timer then @@ -90,9 +97,10 @@ while true do print_stats(main_monitor, stock) feed(stock) elseif e[1] == "timer" and e[2] == spinner_timer then - spinner_timer(0.5) + spinner_timer = os.startTimer(0.5) local s = spinner() - main_monitor.setCursorPos(29,12) + main_monitor.setCursorPos(27,10) + monitor.setTextColor(1) main_monitor.write(s) end end