Advertisement
Guest User

Untitled

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