Advertisement
chardog

Reactor v2.1.1

Dec 11th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.91 KB | None | 0 0
  1. --just a backup so I don't lose my progress
  2. reactors = {peripheral.find("BigReactors-Reactor")}
  3. reactor = reactors[1]
  4. reactors = nil
  5. --reactor.setActive(false)
  6. minBuffer = 1000000
  7. --maxBuffer = 9000000
  8. reactorActive = reactor.getActive()
  9. monitor1 = peripheral.wrap("top")
  10. line = 1
  11. w,h = monitor1.getSize()
  12. bufferFullness = 0
  13.  
  14. numberOfCells = 0
  15. energyCells = {peripheral.find("tile_thermalexpansion_cell_resonant_name")}
  16. for _ in pairs(energyCells) do numberOfCells = numberOfCells + 1 end
  17. maxEnergy = 10000000 + numberOfCells * 80000000 --80m per cell and 10m for the reactor
  18.  
  19. maxBuffer = maxEnergy - 1000000
  20.  
  21. --run this each loop before getBackground
  22. function getTotalEnergy()
  23.     local en = 0
  24.     en = en + reactor.getEnergyStored()
  25.     for i = 1, numberOfCells, 1 do
  26.         en = en + energyCells[i].getEnergyStored()
  27.     end
  28.     return en
  29. end
  30.  
  31. totalEnergy = getTotalEnergy()
  32.  
  33. --returns background when given x position
  34. function getCharacterBackground(pos)
  35.     if pos > w * totalEnergy / maxEnergy then
  36.         return "4"
  37.     else
  38.         return "5"
  39.     end
  40. end
  41.  
  42. --calculates the background for word at a specific position, returns a string
  43. function getBackground(first, last)
  44.     local bg = ""
  45.     local i = first
  46.     repeat
  47.         bg = bg .. getCharacterBackground(i)
  48.         i = i + 1
  49.     until i > last
  50. end
  51.  
  52. print("Starting up...")
  53.  
  54. while true do
  55.     line = 0
  56.     monitor1.clear()
  57.    
  58.     totalEnergy = getTotalEnergy()
  59.     print(totalEnergy)
  60.  
  61.     monitor1.setCursorPos(1, 1 + line)
  62.     monitor1.write("Reactor Status: ")
  63.     if (reactorActive) then
  64.         monitor1.blit("ACTIVE", "dddddd", "ffffff")
  65.     else
  66.         monitor1.blit("INACTIVE", "eeeeeeee", "ffffffff")
  67.     end
  68.     line = line + 1
  69.  
  70.     monitor1.setCursorPos(1, 1 + line)
  71.     monitor1.write("Energy: " .. totalEnergy .. "/" .. maxEnergy .. " RF")
  72.     line = line + 1
  73.    
  74.     --monitor1.setCursorPos(1, 1 + line)
  75.     --bufferFullness = 10 * totalEnergy / maxEnergy
  76.     --for i = 1, bufferFullness, 1 do
  77.     --    monitor1.blit(" ","5","5")
  78.     --end
  79.     --for i = 1, 10 - bufferFullness, 1 do
  80.     --    monitor1.blit(" ","4","4")
  81.     --end
  82.     --line = line + 1
  83.  
  84.     if (reactorActive) then
  85.         if (totalEnergy > maxBuffer) then
  86.             reactor.setActive(false)
  87.             reactorActive = false
  88.             print("Buffer full, shutting down")
  89.             monitor1.setCursorPos(w / 2 - 6, h / 2)
  90.             monitor1.blit("Shutting Down...", "dddddddddddddddd", "0000000000000000")
  91.             os.sleep(10)
  92.         end
  93.     else
  94.         if (totalEnergy < minBuffer) then
  95.             reactor.setActive(true)
  96.             reactorActive = true
  97.             print("Buffer empty, restarting reactor")
  98.             monitor1.setCursorPos(w / 2 - 6, h / 2)
  99.             monitor1.blit("Starting Up...", "dddddddddddddd", "00000000000000")
  100.             os.sleep(10)
  101.         end
  102.     end
  103.    
  104.     os.sleep(5)
  105. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement