nate90909

Untitled

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