nate90909

Untitled

Apr 24th, 2014
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  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.  
  13. reactor = peripheral.wrap("back")
  14. monitor = peripheral.wrap("monitor_0")
  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(4,1)
  41. monitor.setTextColor(colors.white)
  42. monitor.write('Main 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('Flux:')
  55. monitor.setCursorPos(13,3)
  56. monitor.setTextColor(colors.green)
  57. monitor.write('Power Level: '..reactor.getEnergyStored()..' RF')
  58.  
  59. if reactor.getEnergyProducedLastTick()>=25000 and reactor.getEnergyProducedLastTick()<2000 then
  60. monitor.setTextColor(colors.orange)
  61. end
  62.  
  63. if reactor.getEnergyProducedLastTick()>=50000 then
  64. monitor.setTextColor(colors.red)
  65. end
  66. monitor.setCursorPos(13,4)
  67. monitor.write(Energy Generation: math.floor(reactor.getEnergyProducedLastTick()+0.5))..'RF/t')
  68.  
  69.  
  70. monitor.setCursorPos(1,6)
  71. monitor.setTextColor(colors.white)
  72. monitor.setTextColor(colors.white)
  73. monitor.write('Temperature:')
  74. monitor.setCursorPos(1,7)
  75. if reactor.getFuelTemperature()>=650 then
  76. monitor.setTextColor(colors.purple)
  77. else if reactor.getFuelTemperature()>=1000 then
  78. monitor.setTextColor(colors.red)
  79. else
  80. monitor.setTextColor(colors.green)
  81. end
  82. end
  83. monitor.write('Fuel: '..reactor.getFuelTemperature()..'C Casing: '..reactor.getCasingTemperature()..'C')
  84.  
  85. monitor.setCursorPos(1,9)
  86. monitor.setTextColor(colors.white)
  87. monitor.write('Control Rod Levels:')
  88. monitor.setTextColor(colors.green)
  89. monitor.setCursorPos(1,10)
  90. monitor.write('Rods 1-24: '..(100-(reactor.getControlRodLevel(0)))..'% Depth')
  91.  
  92. monitor.setCursorPos(20,10)
  93. monitor.write('Rods 24-48: '..(100-(reactor.getControlRodLevel(1)))..'% Depth')
  94.  
  95. monitor.setCursorPos(1,11)
  96. monitor.write('Rods 72-96: '..(100-(reactor.getControlRodLevel(2)))..'% Depth')
  97.  
  98. monitor.setCursorPos(20,11)
  99. monitor.write('Rods 120-144: '..(100-(reactor.getControlRodLevel(3)))..'% Depth')
  100.  
  101.  
  102. monitor.setCursorPos(1,14)
  103. monitor.setTextColor(colors.white)
  104. monitor.write('Reactor Radioactivity')
  105.  
  106. monitor.setCursorPos(24,14)
  107. monitor.write('Fuel Usage')
  108.  
  109. monitor.setTextColor(colors.green)
  110. monitor.setCursorPos(1,15)
  111. monitor.write(''..reactor.getFuelReactivity..'%')
  112. monitor.setCursorPos(24,15)
  113. monitor.write(''..reactor.getFuelConsumedLastTick..' mb/t')
  114.  
  115. monitor.setCursorPos(1,16)
  116. monitor.setTextColor(colors.orange)
  117. monitor.write('Status:')
  118.  
  119. if flashflag==0 then
  120. flashflag=1
  121. if offlineflag==1 then
  122. monitor.setCursorPos(1,17)
  123. monitor.setTextColor(colors.lightGray)
  124. monitor.write('OFFLINE - Manual Override')
  125. end
  126. if emptyflag==1 then
  127. monitor.setCursorPos(1,17)
  128. monitor.setTextColor(colors.pink)
  129. monitor.write('OFFLINE - Fuel Exhausted')
  130. end
  131. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
  132. monitor.setCursorPos(1,17)
  133. monitor.setTextColor(colors.yellow)
  134. monitor.write('ONLINE - Low Power Mode')
  135. end
  136. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
  137. monitor.setCursorPos(1,17)
  138. monitor.setTextColor(colors.orange)
  139. monitor.write('ONLINE - High Power Mode')
  140. end
  141. else
  142. flashflag=0
  143. monitor.setCursorPos(1,17)
  144. monitor.clearLine()
  145. end
  146.  
  147. if reactor.getEnergyStored()<=10000000 and reactor.getEnergyStored()>100 then
  148. reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyStored()/100000)))
  149. else
  150. reactor.setAllControlRodLevels(0)
  151. end
  152.  
  153. if (reactor.getFuelAmount()<=100) and offlineflag==0 then
  154. reactor.setAllControlRodLevels(100)
  155. reactor.setActive(false)
  156. emptyflag=1
  157. else
  158. emptyflag=0
  159. end
  160.  
  161. if rs.getInput('bottom')==false and emptyflag==0 then
  162. reactor.setActive(true)
  163. offlineflag=0
  164. end
  165.  
  166. if rs.getInput('bottom')==true and emptyflag==0 then
  167. reactor.setActive(false)
  168. reactor.setAllControlRodLevels(100)
  169. offlineflag=1
  170. end
  171. sleep(1)
  172. end
Advertisement
Add Comment
Please, Sign In to add comment