Advertisement
peptide

BigReactor

May 9th, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.11 KB | None | 0 0
  1.     local reactor = peripheral.wrap("back")
  2.     reactor.setActive(true)
  3.  
  4.     local monitor = peripheral.wrap("top")
  5.     monitor.write("Init")
  6.     local width, height = monitor.getSize()
  7.  
  8.     local fuelTemp = 0
  9.     local casingTemp = 0
  10.     local energy = reactor.getEnergyStored()
  11.     local lastTick = 0
  12.     local rods = 99
  13.     local target = 5000000 -- adjustable between 0 and 10 million depending how much you want on hand
  14.     full = 10000000 -- full buffer size
  15.    
  16. function pullInfo()-- pulling the latest from the reactor
  17.     fuelTemp = reactor.getFuelTemperature()
  18.     casingTemp = reactor.getCasingTemperature()
  19.     energy = reactor.getEnergyStored()
  20.     lastTick = reactor.getEnergyProducedLastTick()
  21. end
  22.  
  23. function displayStats() -- display stats to the monitor in 2 columns
  24. --wrap monitor and pull sizing
  25.     monitor.clear()
  26.  
  27.     monitor.setCursorPos(1, 1)
  28.     monitor.write("Temperature")
  29.     monitor.setCursorPos(1, 2)
  30.     monitor.write(math.floor(fuelTemp))
  31.     monitor.write("/")
  32.     monitor.write(math.floor(casingTemp) )
  33.  
  34.     monitor.setCursorPos(1, 4)
  35.     monitor.write("Energy Buffer")
  36.     monitor.setCursorPos(1, 5)
  37.     monitor.write(math.floor(((energy/full) * 100) + 0.5))
  38.     monitor.write(" %")
  39.  
  40.     monitor.setCursorPos(1, 7)
  41.     monitor.write("Energy Last Tick: ")
  42.     monitor.setCursorPos(1, 8)
  43.     monitor.write(math.floor(lastTick+ 0.5))
  44.     monitor.write("RF/t")
  45.  
  46.     monitor.setCursorPos(1, 10)
  47.     monitor.write("Rod Insertion")
  48.     monitor.setCursorPos(1, 11)
  49.     monitor.write(rods)
  50.     monitor.write(" %")
  51. end
  52.  
  53. function rodManagement()
  54. --if we're losing energy and below half or empty... pull rods out by 1%
  55.     if (reactor.getEnergyStored() < energy) and (energy < target) then
  56.         rods = rods-1
  57.         reactor.setAllControlRodLevels(rods)
  58.         end
  59. -- if energy is increasing and storage is over half  insert rods by 1%
  60.     if (reactor.getEnergyStored() > energy) and (energy > target) then
  61.         rods = rods+1
  62.         reactor.setAllControlRodLevels(rods)
  63.         end
  64.     if (reactor.getEnergyStored() == 0) then
  65.         rods=rods-1
  66.         reactor.setAllControlRodLevels(rods)
  67.         end
  68. end
  69.  
  70.  
  71. function main()
  72.     while (true) do
  73.         pullInfo()
  74.         sleep(1)
  75.         displayStats()
  76.         rodManagement()
  77.         sleep(1)
  78.     end
  79. end
  80. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement