nate90909

Untitled

Apr 24th, 2014
50
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.  
  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('Flux:')
  55. monitor.setCursorPos(13,3)
  56. monitor.setTextColor(colors.green)
  57. monitor.write('Power Level: '..reactor.getEnergyStored()..' RF')
  58.  
  59. if reactor.getEnergyProducedLastTick()>=500 and reactor.getEnergyProducedLastTick()<2000 then
  60. monitor.setTextColor(colors.orange)
  61. end
  62.  
  63. if reactor.getEnergyProducedLastTick()>=2000 then
  64. monitor.setTextColor(colors.red)
  65. end
  66. monitor.setCursorPos(13,4)
  67. monitor.write((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.getTemperature()>=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)))..'%')
  91.  
  92. monitor.setCursorPos(20,10)
  93. monitor.write('Rods 24-48: '..(100-(reactor.getControlRodLevel(1)))..'%')
  94.  
  95. monitor.setCursorPos(1,11)
  96. monitor.write('Rods 72-96: '..(100-(reactor.getControlRodLevel(2)))..'%')
  97.  
  98. monitor.setCursorPos(20,11)
  99. monitor.write('Rods 120-144: '..(100-(reactor.getControlRodLevel(3)))..'%')
  100.  
  101. monitor.setCursorPos(1,14)
  102. monitor.setTextColor(colors.white)
  103. monitor.write('Reactor Radioactivity')
  104.  
  105. monitor.setCursorPos(24,14)
  106. monitor.write('Fuel Usage')
  107.  
  108. monitor.setTextColor(colors.green)
  109. monitor.setCursorPos(1,15)
  110. monitor.write(''..reactor.getFuelReactivity()..'%')
  111. monitor.setCursorPos(24,15)
  112. monitor.write(''..reactor.getFuelConsumedLastTick()..' mb/t')
  113.  
  114. monitor.setCursorPos(1,16)
  115. monitor.setTextColor(colors.orange)
  116. monitor.write('Status:')
  117.  
  118. if flashflag==0 then
  119. flashflag=1
  120. if offlineflag==1 then
  121. monitor.setCursorPos(1,17)
  122. monitor.setTextColor(colors.lightGray)
  123. monitor.write('OFFLINE - Manual Override')
  124. end
  125. if emptyflag==1 then
  126. monitor.setCursorPos(1,17)
  127. monitor.setTextColor(colors.pink)
  128. monitor.write('OFFLINE - Fuel Exhausted')
  129. end
  130. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
  131. monitor.setCursorPos(1,17)
  132. monitor.setTextColor(colors.yellow)
  133. monitor.write('ONLINE - Low Power Mode')
  134. end
  135. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
  136. monitor.setCursorPos(1,17)
  137. monitor.setTextColor(colors.orange)
  138. monitor.write('ONLINE - High Power Mode')
  139. end
  140. else
  141. flashflag=0
  142. monitor.setCursorPos(1,17)
  143. monitor.clearLine()
  144. end
  145.  
  146. if reactor.getEnergyStored()<=10000000 and reactor.getEnergyStored()>100 then
  147. reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyStored()/100000)))
  148. else
  149. reactor.setAllControlRodLevels(0)
  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