Advertisement
Guest User

basemonitor

a guest
Feb 18th, 2020
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.74 KB | None | 0 0
  1. local debugmode = false
  2. local pollingspeed = 5
  3.  
  4. local component = require("component")
  5. local sides = require("sides")
  6. local colours = require("colors")
  7. local power = component.getPrimary("energy_device")
  8. local lava = component.getPrimary("tank_controller")
  9. local gpu = component.gpu
  10. local mecontroller = component.getPrimary("me_controller")
  11.  
  12. local localscreen = "93cc8b17-cde6-496a-8f88-183a9d1f5cf1"
  13. local bigscreen = "15cb3096-1875-4751-a9b2-f0017aabdc80"
  14.  
  15. if not debugmode then
  16.   gpu.bind(bigscreen,true)
  17. end
  18.  
  19. local w,h = gpu.getResolution()
  20.  
  21. gpu.setBackground(0xFFFFFF) --Set to white
  22. gpu.setForeground(0x00000) --Set to black
  23. gpu.fill(1, 1, w, h," ") --Clear screen
  24.  
  25. --Battery values
  26. local maxpower = power.getMaxEnergyStored()
  27. local currentpower = power.getEnergyStored()
  28.  
  29. --Lava values
  30. local tankside = sides.left
  31. local maxlava = lava.getTankCapacity(tankside)
  32. local currentlava = lava.getTankLevel(tankside)
  33.  
  34. function progressbar(label, currentvalue, maxvalue, posx, posy)
  35.   local progressbarsize=60
  36.   local percvalue = math.floor((currentvalue / maxvalue) * progressbarsize)
  37.   local realpercvalue = math.floor((currentvalue / maxvalue) * 100)
  38.   local labeloffset = string.len(label)
  39.   local originalbackcolour = gpu.getBackground()
  40.  
  41. --  gpu.setBackground(808080)
  42.  
  43.   gpu.set(posx, posy, label)
  44.  
  45.   gpu.set(posx + labeloffset, posy, "[")
  46.  
  47.   if realpercvalue >= 75 then
  48.     gpu.setForeground(0xFFFFF) --Green
  49.   elseif realpercvalue >= 30 and realpercvalue < 75 then
  50.     gpu.setForeground(0xffbf00)
  51.   elseif realpercvalue < 30 then
  52.     gpu.setForeground(0xff0000)
  53.   end
  54.  
  55.   gpu.set(posx + labeloffset + 1, posy , string.rep("#", percvalue)
  56.   ..string.rep(" ", progressbarsize - percvalue))
  57.  
  58.   gpu.setForeground(0x00000)
  59.   gpu.set(posx + labeloffset + progressbarsize, posy, "]")
  60.  
  61.   gpu.set(posx + labeloffset + progressbarsize + (3 - string.len(realpercvalue)) + 1, posy," "..realpercvalue.."%")
  62.  
  63.   gpu.setBackground(originalbackcolour)
  64. end
  65.  
  66. function renderMEItems(posx, posy, rows, cols)
  67.   local meitems = mecontroller.getItemsInNetwork()
  68.   local colsoffset = 35
  69.   local maxlabelsize = 24
  70.   table.sort(meitems, function(a, b) return a.size > b.size end)
  71.  
  72. local currentindex = 1
  73.  
  74. for i = 0, cols - 1, 1 do
  75.   for k = 1, rows, 1 do
  76.     gpu.set(posx + (i * colsoffset), posy + k, meitems[currentindex].label..string.rep(" ", maxlabelsize  - string.len(meitems[currentindex].label)).. ": "..meitems[currentindex].size)
  77.     currentindex = currentindex + 1
  78.   end
  79. end
  80.  
  81. end
  82.  
  83. while true do
  84.  
  85. progressbar("Power ", currentpower, maxpower, 3, 2)
  86. progressbar("Lava  ", currentlava, maxlava, 3, 3)
  87.  
  88. currentpower = power.getEnergyStored()
  89. currentlava = lava.getTankLevel(tankside)
  90.  
  91. renderMEItems(5, 4, 18, 2)
  92.  
  93. if debugmode then break end
  94. os.sleep(pollingspeed)
  95. gpu.fill(1, 1, w, h, " ")
  96.  
  97. end
  98.  
  99. gpu.bind(localscreen, true)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement