NielsUtrecht

reactor

Dec 15th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.47 KB | None | 0 0
  1. local confModemSide = "back"
  2.  
  3. if(not os.loadAPI("hydraApi")) then
  4.         error("Could not load hydraApi")
  5. end
  6.  
  7. local modem = peripheral.wrap(confModemSide)
  8. local monitor = hydraApi.getMonitor()
  9. monitor.clear()
  10.  
  11. local reactorIds = modem.getNamesRemote()
  12.  
  13. local reactor = {}
  14.  
  15. function getReactorInfo(reactor)
  16.     local info = {}
  17.     info['energyfraction'] = reactor.getEnergyStored() / 10000000
  18.     info['energypercent'] = hydraApi.formatPercent(info['energyfraction'])
  19.     info['rods'] = reactor.getNumberOfControlRods()
  20.     local avg = 0
  21.     for i = 0,info['rods'] - 1 do
  22.       avg = avg + reactor.getControlRodLevel(i)
  23.     end
  24.    
  25.     info['rodaverage'] = avg / info['rods']
  26.    
  27.     return info
  28. end
  29.  
  30. function round(number)
  31.     return math.floor(number * 10) / 10
  32. end
  33.  
  34. function padLeft(str, len)
  35.     str = '' .. str
  36.     return  string.rep(' ', len - #str) .. str
  37. end
  38.  
  39. for k,v in pairs(reactorIds) do
  40.         reactor[k] = peripheral.wrap(v)
  41.                 print("Connected to: " .. v)
  42. end
  43.  
  44. while true do
  45.         local row = 1
  46.         for key, r in pairs(reactor) do
  47.             local info = getReactorInfo(r)
  48.             monitor.setCursorPos(1,row)
  49.             monitor.write(padLeft(info['energypercent'], 6) .. ' ')
  50.             monitor.write(padLeft(round(r.getFuelTemperature()),6) .. ' ')  
  51.             monitor.write(padLeft(round(info['rodaverage']),4) .. ' ')            
  52.             row = row + 1          
  53.         end
  54.  
  55.         os.sleep(2)
  56. end
Advertisement
Add Comment
Please, Sign In to add comment