Advertisement
Guest User

RC

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