nate90909

Untitled

Apr 25th, 2014
56
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.getHotFluidAmount()<=10000 then
  146. reactor.setAllControlRodLevels(0+(math.floor(reactor.getHotFluidAmount()/50000)))
  147.  
  148. elseif reactor.getHotFluidAmount()>=45000
  149. reactor.setAllControlRodLevels(100)
  150. end
  151.  
  152. if (reactor.getFuelAmount()<=100) and offlineflag==0 then
  153. reactor.setAllControlRodLevels(100)
  154. reactor.setActive(false)
  155. emptyflag=1
  156. else
  157. emptyflag=0
  158. end
  159.  
  160. if rs.getInput('bottom')==false and emptyflag==0 then
  161. reactor.setActive(true)
  162. offlineflag=0
  163. end
  164.  
  165. if rs.getInput('bottom')==true and emptyflag==0 then
  166. reactor.setActive(false)
  167. reactor.setAllControlRodLevels(100)
  168. offlineflag=1
  169. end
  170. sleep(1)
  171. end
Advertisement
Add Comment
Please, Sign In to add comment