nate90909

Untitled

Apr 25th, 2014
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Initialize Variables
  2.  
  3. local reactor
  4. local monitor
  5. local State
  6. local Temp
  7. local Fuel
  8. local Waste
  9. emptyflag=0
  10. offlineflag=0
  11. flashflag=0
  12. turbine = peripheral.wrap("BigReactors-Turbine_0")
  13. reactor = peripheral.wrap("back")
  14. monitor = peripheral.wrap("monitor_2")
  15.  
  16. monitor.setTextScale(1)
  17. monitor.setBackgroundColor(colors.black)
  18.  
  19. --Functions
  20.  
  21. function wipeScreen()
  22. term.clear()
  23. term.setCursorPos(1, 1)
  24. end
  25.  
  26. function delayPrint(pause,msg)
  27. print(msg)
  28. sleep(pause)
  29. end
  30.  
  31. --Program
  32.  
  33. wipeScreen()
  34. print("System Control Startup")
  35. sleep(1)
  36. while true do
  37. reactor.getConnected()
  38.  
  39. monitor.clear()
  40. monitor.setCursorPos(9,1)
  41. monitor.setTextColor(colors.white)
  42. monitor.write('Reactor System Monitor')
  43. monitor.setCursorPos(1,2)
  44. monitor.write('Fuel Level:')
  45. monitor.setCursorPos(1,3)
  46. monitor.setTextColor(colors.yellow)
  47. monitor.write(math.floor((((reactor.getFuelAmount())/(reactor.getFuelAmountMax()))*100)+0.5)..'% Fuel')
  48. monitor.setCursorPos(1,4)
  49. monitor.setTextColor(colors.lightBlue)
  50. monitor.write(math.floor((((reactor.getWasteAmount())/(reactor.getFuelAmountMax()))*100)+0.5)..'% Waste')
  51.  
  52. monitor.setCursorPos(15,2)
  53. monitor.setTextColor(colors.white)
  54. monitor.write('Steam:')
  55. monitor.setCursorPos(13,3)
  56. monitor.setTextColor(colors.green)
  57. monitor.write('Steam Pressure: '..reactor.getHotFluidAmount()..' mb')
  58.  
  59. if reactor.getHotFluidAmount()>=30000 and reactor.getHotFluidAmount()<20000 then
  60. monitor.setTextColor(colors.orange)
  61. end
  62.  
  63. if reactor.getHotFluidAmount()>=40000 then
  64. monitor.setTextColor(colors.red)
  65. end
  66.  
  67.  
  68.  
  69. monitor.setCursorPos(1,6)
  70. monitor.setTextColor(colors.white)
  71. monitor.setTextColor(colors.white)
  72. monitor.write('Temperature:')
  73. monitor.setCursorPos(1,7)
  74. if reactor.getFuelTemperature()>=650 then
  75. monitor.setTextColor(colors.purple)
  76. else if reactor.getFuelTemperature()>=1000 then
  77. monitor.setTextColor(colors.red)
  78. else
  79. monitor.setTextColor(colors.green)
  80. end
  81. end
  82. monitor.write('Fuel: '..reactor.getFuelTemperature()..'C Casing: '..reactor.getCasingTemperature()..'C')
  83.  
  84. monitor.setCursorPos(1,9)
  85. monitor.setTextColor(colors.white)
  86. monitor.write('Control Rod Levels:')
  87. monitor.setTextColor(colors.green)
  88. monitor.setCursorPos(1,10)
  89. monitor.write('Rods 1-24: '..(100-(reactor.getControlRodLevel(0)))..'%')
  90.  
  91. monitor.setCursorPos(20,10)
  92. monitor.write('Rods 24-48: '..(100-(reactor.getControlRodLevel(1)))..'%')
  93.  
  94. monitor.setCursorPos(1,11)
  95. monitor.write('Rods 72-96: '..(100-(reactor.getControlRodLevel(2)))..'%')
  96.  
  97. monitor.setCursorPos(20,11)
  98. monitor.write('Rods 120-144: '..(100-(reactor.getControlRodLevel(3)))..'%')
  99.  
  100. monitor.setCursorPos(1,14)
  101. monitor.setTextColor(colors.white)
  102. monitor.write('Reactor Radioactivity')
  103.  
  104. monitor.setCursorPos(24,14)
  105. monitor.write('Fuel Usage')
  106.  
  107. monitor.setTextColor(colors.green)
  108. monitor.setCursorPos(1,15)
  109. monitor.write(''..reactor.getFuelReactivity()..'%')
  110. monitor.setCursorPos(24,15)
  111. monitor.write(''..reactor.getFuelConsumedLastTick()..' mb/t')
  112.  
  113. monitor.setCursorPos(1,16)
  114. monitor.setTextColor(colors.orange)
  115. monitor.write('Status:')
  116.  
  117. if flashflag==0 then
  118. flashflag=1
  119. if offlineflag==1 then
  120. monitor.setCursorPos(1,17)
  121. monitor.setTextColor(colors.lightGray)
  122. monitor.write('OFFLINE - Manual Override')
  123. end
  124. if emptyflag==1 then
  125. monitor.setCursorPos(1,17)
  126. monitor.setTextColor(colors.pink)
  127. monitor.write('OFFLINE - Fuel Exhausted')
  128. end
  129. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
  130. monitor.setCursorPos(1,17)
  131. monitor.setTextColor(colors.yellow)
  132. monitor.write('ONLINE - Low Power Mode')
  133. end
  134. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
  135. monitor.setCursorPos(1,17)
  136. monitor.setTextColor(colors.orange)
  137. monitor.write('ONLINE - High Power Mode')
  138. end
  139. else
  140. flashflag=0
  141. monitor.setCursorPos(1,17)
  142. monitor.clearLine()
  143. end
  144.  
  145. if reactor.getEnergyProducedLastTick<=5999 then
  146. reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyProducedLastTick()/6000)))
  147.  
  148. elseif reactor.getEnergyProducedLastTick()>=6000 then
  149. reactor.setAllControlRodLevels(100)
  150. else
  151. reactor.setAllControlRodLevels(0)
  152. end
  153.  
  154. if (reactor.getFuelAmount()<=100) and offlineflag==0 then
  155. reactor.setAllControlRodLevels(100)
  156. reactor.setActive(false)
  157. emptyflag=1
  158. else
  159. emptyflag=0
  160. end
  161.  
  162. if rs.getInput('bottom')==false and emptyflag==0 then
  163. reactor.setActive(true)
  164. offlineflag=0
  165. end
  166.  
  167. if rs.getInput('bottom')==true and emptyflag==0 then
  168. reactor.setActive(false)
  169. reactor.setAllControlRodLevels(100)
  170. offlineflag=1
  171. end
  172. sleep(1)
  173. end
Advertisement
Add Comment
Please, Sign In to add comment