Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local debugmode = false
- local pollingspeed = 5
- local component = require("component")
- local sides = require("sides")
- local colours = require("colors")
- local power = component.getPrimary("energy_device")
- local lava = component.getPrimary("tank_controller")
- local gpu = component.gpu
- local mecontroller = component.getPrimary("me_controller")
- local localscreen = "93cc8b17-cde6-496a-8f88-183a9d1f5cf1"
- local bigscreen = "15cb3096-1875-4751-a9b2-f0017aabdc80"
- if not debugmode then
- gpu.bind(bigscreen,true)
- end
- local w,h = gpu.getResolution()
- gpu.setBackground(0xFFFFFF) --Set to white
- gpu.setForeground(0x00000) --Set to black
- gpu.fill(1, 1, w, h," ") --Clear screen
- --Battery values
- local maxpower = power.getMaxEnergyStored()
- local currentpower = power.getEnergyStored()
- --Lava values
- local tankside = sides.left
- local maxlava = lava.getTankCapacity(tankside)
- local currentlava = lava.getTankLevel(tankside)
- function progressbar(label, currentvalue, maxvalue, posx, posy)
- local progressbarsize=60
- local percvalue = math.floor((currentvalue / maxvalue) * progressbarsize)
- local realpercvalue = math.floor((currentvalue / maxvalue) * 100)
- local labeloffset = string.len(label)
- local originalbackcolour = gpu.getBackground()
- -- gpu.setBackground(808080)
- gpu.set(posx, posy, label)
- gpu.set(posx + labeloffset, posy, "[")
- if realpercvalue >= 75 then
- gpu.setForeground(0xFFFFF) --Green
- elseif realpercvalue >= 30 and realpercvalue < 75 then
- gpu.setForeground(0xffbf00)
- elseif realpercvalue < 30 then
- gpu.setForeground(0xff0000)
- end
- gpu.set(posx + labeloffset + 1, posy , string.rep("#", percvalue)
- ..string.rep(" ", progressbarsize - percvalue))
- gpu.setForeground(0x00000)
- gpu.set(posx + labeloffset + progressbarsize, posy, "]")
- gpu.set(posx + labeloffset + progressbarsize + (3 - string.len(realpercvalue)) + 1, posy," "..realpercvalue.."%")
- gpu.setBackground(originalbackcolour)
- end
- function renderMEItems(posx, posy, rows, cols)
- local meitems = mecontroller.getItemsInNetwork()
- local colsoffset = 35
- local maxlabelsize = 24
- table.sort(meitems, function(a, b) return a.size > b.size end)
- local currentindex = 1
- for i = 0, cols - 1, 1 do
- for k = 1, rows, 1 do
- gpu.set(posx + (i * colsoffset), posy + k, meitems[currentindex].label..string.rep(" ", maxlabelsize - string.len(meitems[currentindex].label)).. ": "..meitems[currentindex].size)
- currentindex = currentindex + 1
- end
- end
- end
- while true do
- progressbar("Power ", currentpower, maxpower, 3, 2)
- progressbar("Lava ", currentlava, maxlava, 3, 3)
- currentpower = power.getEnergyStored()
- currentlava = lava.getTankLevel(tankside)
- renderMEItems(5, 4, 18, 2)
- if debugmode then break end
- os.sleep(pollingspeed)
- gpu.fill(1, 1, w, h, " ")
- end
- gpu.bind(localscreen, true)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement