Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local accum = peripheral.find("modular_accumulator")
- local monitor = peripheral.find("monitor")
- local mon = {}
- local maxCapacity = 40000000
- local curState = 0
- local szX,szY = monitor.getSize()
- local prevEnergy = 0
- local speed = 0
- local fullPercent = 0
- mon.monitor,mon.X,mon.Y = monitor,szX,szY
- local function shorten(num)
- if num >= 1000 and num < 100000 then
- return tostring(math.floor(num/10^2)/10).."K"
- elseif num >= 1000000 and num < 1000000000 then
- return tostring(math.floor(num/10^5)/10).."M"
- end
- return tostring(num)
- end
- local function drawText(x,y,col,text)
- monitor.setBackgroundColor(col)
- monitor.setCursorPos(x,y)
- monitor.write(" ")
- end
- local function fillText(sX,sY,eX,eY,col,text)
- for x=tonumber(sX),tonumber(eX) do
- for y=tonumber(sY),tonumber(eY) do
- drawText(x,y,col,text)
- end
- end
- end
- local function drawPixel(x,y,col)
- drawText(x,y,col," ")
- end
- local function fillPixel(sX,sY,eX,eY,col)
- fillText(sX,sY,eX,eY,col," ")
- end
- local function clear(mon)
- term.clear()
- term.setCursorPos(1,1)
- mon.monitor.setBackgroundColor(colors.black)
- mon.monitor.clear()
- mon.monitor.setCursorPos(1,1)
- end
- local function text()
- while true do
- clear(mon)
- monitor.setCursorPos(2,1)
- monitor.write(shorten(maxCapacity))
- monitor.setCursorPos(3,szY)
- monitor.write(0)
- local spdTxt = "RF/Tick"
- monitor.setCursorPos(8,1)
- monitor.write(spdTxt)
- monitor.setCursorPos(8+string.len(spdTxt)/2-string.len(tostring(speed))/2,2)
- monitor.write(speed)
- local fullTxt = "Full Percent"
- monitor.setCursorPos(6,4)
- monitor.write(fullTxt)
- monitor.setCursorPos(6+string.len(fullTxt)/2-string.len(tostring(fullPercent).."%")/2,5)
- monitor.write(fullPercent.."%")
- fillPixel(2,2,4,szY-1-curState,colors.gray)
- if curState>0 then
- fillPixel(2,szY-curState,4,szY-1,colors.red)
- end
- monitor.setBackgroundColor(colors.red)
- monitor.setTextColor(colors.orange)
- for y=szY-curState,szY-1 do
- monitor.setCursorPos(2,y)
- monitor.write("| |")
- end
- monitor.setBackgroundColor(colors.gray)
- monitor.setTextColor(colors.lightGray)
- for y=2,szY-1-curState do
- monitor.setCursorPos(2,y)
- monitor.write("| |")
- end
- sleep(0)
- end
- end
- local function values()
- while true do
- fullPercent = math.floor(accum.getEnergy()/maxCapacity*100)
- curState = math.floor(fullPercent/10)
- speed = accum.getEnergy()-prevEnergy
- prevEnergy = accum.getEnergy()
- sleep(0.05)
- end
- end
- parallel.waitForAny(text,values)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement