Guest User

Vircomore Big Reactor

a guest
Jul 21st, 2014
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.24 KB | None | 0 0
  1. print('ReactorControl Engaged. View Monitor.')
  2.  
  3. emptyflag=0
  4. offlineflag=0
  5. flashflag=0
  6.  
  7. reactor=peripheral.wrap('back')
  8. monitor=peripheral.wrap('top')
  9.  
  10. monitor.setTextScale(1)
  11. monitor.setBackgroundColor(colors.black)
  12.  
  13. while true do
  14. monitor.clear()
  15. monitor.setCursorPos(1,1)
  16. monitor.setTextColor(colors.white)
  17. monitor.write('Fuel Level:')
  18. monitor.setCursorPos(1,2)
  19. monitor.setTextColor(colors.yellow)
  20. monitor.write(math.floor(((reactor.getFuelAmount()/reactor.getFuelAmountMax())*100)+0.5)..'% Fuel')
  21. monitor.setCursorPos(1,3)
  22. monitor.setTextColor(colors.lightBlue)
  23. monitor.write(math.floor(((reactor.getWasteAmount()/reactor.getFuelAmountMax())*100)+0.5)..'% Waste')
  24. monitor.setCursorPos(1,5)
  25. monitor.setTextColor(colors.white)
  26. monitor.write('Control Rod Levels:')
  27. monitor.setTextColor(colors.green)
  28. monitor.setCursorPos(1,6)
  29. monitor.write('Rod 1:  '..(100-(reactor.getControlRodLevel(0)))..'% Depth')
  30. monitor.setCursorPos(1,7)
  31. monitor.write('Rod 2:  '..(100-(reactor.getControlRodLevel(1)))..'% Depth')
  32. monitor.setCursorPos(1,8)
  33. monitor.write('Rod 3:  '..(100-(reactor.getControlRodLevel(2)))..'% Depth')
  34. monitor.setCursorPos(1,9)
  35. monitor.write('Rod 4:  '..(100-(reactor.getControlRodLevel(3)))..'% Depth')
  36. monitor.setCursorPos(1,10)
  37. monitor.write('Rod 5:  '..(100-(reactor.getControlRodLevel(4)))..'% Depth')
  38. monitor.setCursorPos(1,12)
  39. monitor.setTextColor(colors.white)
  40. monitor.write('Temperature:')
  41. monitor.setCursorPos(1,13)
  42. monitor.setTextColor(colors.lightGray)
  43. monitor.write('Casing: ')
  44.  
  45. if reactor.getCasingTemperature()>=650 then
  46.     monitor.setTextColor(colors.purple)
  47.     else if reactor.getCasingTemperature()>=950 then
  48.         monitor.setTextColor(colors.red)
  49.     else
  50.         monitor.setTextColor(colors.green)
  51.     end
  52. end
  53. monitor.write(reactor.getCasingTemperature()..'C')
  54.  
  55. monitor.setCursorPos(1,14)
  56. monitor.setTextColor(colors.yellow)
  57. monitor.write('Fuel: ')
  58. if reactor.getFuelTemperature()>=650 then
  59.   monitor.setTextColor(colors.purple)
  60.   else if reactor.getFuelTemperature()>=950 then
  61.     monitor.setTextColor(colors.red)
  62.   else
  63.  monitor.setTextColor(colors.green)
  64.   end
  65. end
  66. monitor.write(reactor.getFuelTemperature()..'C')
  67.  
  68. monitor.setCursorPos(1,16)
  69. monitor.setTextColor(colors.white)
  70. monitor.write('Flux:')
  71. monitor.setCursorPos(1,17)
  72. monitor.setTextColor(colors.green)
  73. monitor.write(reactor.getEnergyStored()..' RF Stored      ')
  74.  
  75. if reactor.getEnergyProducedLastTick()>=500 and reactor.getEnergyProducedLastTick()<2000 then
  76.     monitor.setTextColor(colors.orange)
  77. end
  78.  
  79. if reactor.getEnergyProducedLastTick()>=2000 then
  80.     monitor.setTextColor(colors.red)
  81. end
  82. monitor.write((math.floor(reactor.getEnergyProducedLastTick()+0.5))..'RF/t')
  83.  
  84. monitor.setCursorPos(1,19)
  85. monitor.setTextColor(colors.orange)
  86. monitor.write('Warnings:')
  87.  
  88. if flashflag==0 then
  89.   flashflag=1
  90.   if offlineflag==1 then
  91.     monitor.setCursorPos(1,20)
  92.     monitor.setTextColor(colors.lightGray)
  93.     monitor.write('OFFLINE - Manual Override')
  94.   end
  95.   if emptyflag==1 then
  96.     monitor.setCursorPos(1,20)
  97.     monitor.setTextColor(colors.pink)
  98.     monitor.write('OFFLINE - Fuel Exhausted')
  99.   end
  100.   if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
  101.     monitor.setCursorPos(1,20)
  102.     monitor.setTextColor(colors.yellow)
  103.     monitor.write('ONLINE - Low Power Mode')
  104.   end
  105.   if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
  106.     monitor.setCursorPos(1,20)
  107.     monitor.setTextColor(colors.orange)
  108.     monitor.write('ONLINE - High Power Mode')
  109.   end
  110. else
  111.   flashflag=0
  112.   monitor.setCursorPos(1,20)
  113.   monitor.clearLine()
  114. end
  115.  
  116. if reactor.getEnergyStored()<=10000000 and reactor.getEnergyStored()>100 then
  117.     reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyStored()/100000)))
  118. else
  119.     reactor.setAllControlRodLevels(0)
  120. end
  121.  
  122. if reactor.getFuelAmount()<=100 and offlineflag==0 then
  123.     reactor.setAllControlRodLevels(100)
  124.     reactor.setActive(false)
  125.     emptyflag=1
  126. else
  127.     emptyflag=0
  128. end
  129.  
  130. if rs.getInput('bottom')==false and emptyflag==0 then
  131.     reactor.setActive(true)
  132.     offlineflag=0
  133. end
  134.  
  135. if rs.getInput('bottom')==true and emptyflag==0 then
  136.     reactor.setActive(false)
  137.     reactor.setAllControlRodLevels(100)
  138.     offlineflag=1
  139. end
  140.  
  141. sleep(1)
  142. end
Advertisement
Add Comment
Please, Sign In to add comment