Advertisement
Banane9

tankMonitor

Jun 25th, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.17 KB | None | 0 0
  1. tankBlocks = {}
  2. monitors = {}
  3. for _, side in pairs(peripheral.getNames()) do
  4.     local p = peripheral.wrap(side)
  5.     if type(p[getTanks]) == "function" then
  6.         tankBlocks[#tankBlocks + 1] = p
  7.     elseif peripheral.getType(side) == "monitor" then
  8.         if p.isColour() then
  9.             monitors[#monitors + 1] = p
  10.         end
  11.     end
  12. end
  13.  
  14. refreshTime = tonumber((...))
  15. if not refreshTime then
  16.     print("No Refresh-Time Argument found! Defaulting to 10s!")
  17.     refreshTime = 10
  18. else
  19.     print("Refresh-Time Argument found! Refreshinterval set to ", refreshTime, "s!")
  20. end
  21.  
  22. os.startTimer(refreshTime)
  23. while true do
  24.     os.pullEvent("timer")
  25.    
  26.     tankStats = {}
  27.     for _, tankBlock in pairs(tankBlocks) do
  28.         for __, tankStat in pairs(tankBlock.getTanks("")) do
  29.             tankStats[#tankStats + 1] = tankStat
  30.         end
  31.     end
  32.    
  33.     for _, monitor in pairs(monitors) do
  34.         local x, y = monitor.getSize()
  35.         local barWidth = x / #tankStats
  36.         local barString = string.rep(" ", barWidth)
  37.         for index, tankStat in pairs(tankStats) do
  38.             local barStart = barWidth * (index - 1) + 1
  39.             monitor.setColour(colours.lime)
  40.             for yP = 1, y, 1 do
  41.                 monitor.setCursorPos(barStart, yP)
  42.                 monitor.write(barString)
  43.             end
  44.         end
  45.     end
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement