Advertisement
nate90909

Untitled

Apr 25th, 2014
63
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. turbine1 = peripheral.wrap("BigReactors-Turbine_1")
  14. turbine2 = peripheral.wrap("BigReactors-Turbine_2")
  15. turbine3 = peripheral.wrap("BigReactors-Turbine_3")
  16. reactor = peripheral.wrap("back")
  17. monitor = peripheral.wrap("monitor_2")
  18.  
  19. monitor.setTextScale(1)
  20. monitor.setBackgroundColor(colors.black)
  21.  
  22. --Functions
  23.  
  24. function wipeScreen()
  25. term.clear()
  26. term.setCursorPos(1, 1)
  27. end
  28.  
  29. function delayPrint(pause,msg)
  30. print(msg)
  31. sleep(pause)
  32. end
  33.  
  34. --Program
  35.  
  36. wipeScreen()
  37. print("System Control Startup")
  38. sleep(1)
  39. while true do
  40. reactor.getConnected()
  41.  
  42. monitor.clear()
  43. monitor.setCursorPos(9,1)
  44. monitor.setTextColor(colors.white)
  45. monitor.write('Reactor System Monitor')
  46. monitor.setCursorPos(1,2)
  47. monitor.write('Fuel Level:')
  48. monitor.setCursorPos(1,3)
  49. monitor.setTextColor(colors.yellow)
  50. monitor.write(math.floor((((reactor.getFuelAmount())/(reactor.getFuelAmountMax()))*100)+0.5)..'% Fuel')
  51. monitor.setCursorPos(1,4)
  52. monitor.setTextColor(colors.lightBlue)
  53. monitor.write(math.floor((((reactor.getWasteAmount())/(reactor.getFuelAmountMax()))*100)+0.5)..'% Waste')
  54.  
  55. monitor.setCursorPos(15,2)
  56. monitor.setTextColor(colors.white)
  57. monitor.write('Steam:')
  58. monitor.setCursorPos(13,3)
  59. monitor.setTextColor(colors.green)
  60.  
  61.  
  62. if reactor.getHotFluidAmount()>=30000 and reactor.getHotFluidAmount()<20000 then
  63. monitor.setTextColor(colors.orange)
  64. end
  65.  
  66. if reactor.getHotFluidAmount()>=40000 then
  67. monitor.setTextColor(colors.red)
  68. end
  69.  
  70. monitor.write('Steam Pressure: '..reactor.getHotFluidAmount()..' mb')
  71.  
  72. monitor.setCursorPos(13,3)
  73. monitor.write(' Outlet: '..reactor.getEnergyProducedLastTick()..' mb/t')
  74.  
  75.  
  76. monitor.setCursorPos(1,6)
  77. monitor.setTextColor(colors.white)
  78. monitor.setTextColor(colors.white)
  79. monitor.write('Temperature:')
  80. monitor.setCursorPos(1,7)
  81. if reactor.getFuelTemperature()>=650 then
  82. monitor.setTextColor(colors.purple)
  83. elseif reactor.getFuelTemperature()>=1000 then
  84. monitor.setTextColor(colors.red)
  85. else
  86. monitor.setTextColor(colors.green)
  87. end
  88. end
  89. monitor.write('Fuel: '..reactor.getFuelTemperature()..'C Casing: '..reactor.getCasingTemperature()..'C')
  90.  
  91. monitor.setCursorPos(40,2)
  92. monitor.setTextColor(colors.white)
  93. monitor.write('Turbine 1 Status')
  94. monitor.setCursorPos(40,3)
  95. if turbine1.getFluidFlowRate()>=1999 then
  96. monitor.setTextColor(colors.green)
  97. elseif turbine1.getFluidFlowRate()>=1500 then
  98. monitor.setTextColor(colors.orange)
  99. else
  100. monitor.setTextColor(colors.red)
  101. end
  102. monitor.write('Flow Rate: '..turbine1.getFluidFlowRate()..'mb/t')
  103.  
  104. monitor.setCursorPos(40,4)
  105. if turbine1.getRotorSpeed()>=1700 and turbine1.getRotorSpeed()<=1900 then
  106. monitor.setTextColor(colors.green)
  107. else
  108. monitor.setTextColor(colors.red)
  109. end
  110.  
  111. monitor.write('Rotor Speed: '..turbine1.getRotorSpeed()..' rpm')
  112.  
  113. monitor.setCursorPos(40,5)
  114. if turbine1.getEnergyProducedLastTick()>= 25000 then
  115. monitor.setTextColor(colors.green)
  116. else
  117. monitor.setTextColor(colors.red)
  118. end
  119. monitor.write('Generation: '..turbine1.getEnergyProducedLastTick()..' rf/t')
  120.  
  121. monitor.setCursorPos(40,7)
  122. monitor.setTextColor(colors.white)
  123. monitor.write('Turbine 2 Status')
  124. monitor.setCursorPos(40,8)
  125. if turbine2.getFluidFlowRate()>=1999 then
  126. monitor.setTextColor(colors.green)
  127. elseif turbine2.getFluidFlowRate()>=1500 then
  128. monitor.setTextColor(colors.orange)
  129. else
  130. monitor.setTextColor(colors.red)
  131. end
  132. monitor.write('Flow Rate: '..turbine2.getFluidFlowRate()..'mb/t')
  133.  
  134. monitor.setCursorPos(40,9)
  135. if turbine2.getRotorSpeed()>=1700 and turbine2.getRotorSpeed()<=1900 then
  136. monitor.setTextColor(colors.green)
  137. else
  138. monitor.setTextColor(colors.red)
  139. end
  140.  
  141. monitor.write('Rotor Speed: '..turbine2.getRotorSpeed()..' rpm')
  142.  
  143. monitor.setCursorPos(40,10)
  144. if turbine2.getEnergyProducedLastTick()>= 25000 then
  145. monitor.setTextColor(colors.green)
  146. else
  147. monitor.setTextColor(colors.red)
  148. end
  149. monitor.write('Generation: '..turbine2.getEnergyProducedLastTick()..' rf/t')
  150.  
  151. monitor.setCursorPos(40,12)
  152. monitor.setTextColor(colors.white)
  153. monitor.write('Turbine 3 Status')
  154. monitor.setCursorPos(40,13)
  155. if turbine3.getFluidFlowRate()>=1999 then
  156. monitor.setTextColor(colors.green)
  157. elseif turbine3.getFluidFlowRate()>=1500 then
  158. monitor.setTextColor(colors.orange)
  159. else
  160. monitor.setTextColor(colors.red)
  161. end
  162. monitor.write('Flow Rate: '..turbine3.getFluidFlowRate()..'mb/t')
  163.  
  164. monitor.setCursorPos(40,14)
  165. if turbine3.getRotorSpeed()>=1700 and turbine3.getRotorSpeed()<=1900 then
  166. monitor.setTextColor(colors.green)
  167. else
  168. monitor.setTextColor(colors.red)
  169. end
  170.  
  171. monitor.write('Rotor Speed: '..turbine3.getRotorSpeed()..' rpm')
  172.  
  173. monitor.setCursorPos(40,15)
  174. if turbine3.getEnergyProducedLastTick()>= 25000 then
  175. monitor.setTextColor(colors.green)
  176. else
  177. monitor.setTextColor(colors.red)
  178. end
  179. monitor.write('Generation: '..turbine3.getEnergyProducedLastTick()..' rf/t')
  180.  
  181. monitor.setCursorPos(40,17)
  182. monitor.setTextColor(colors.white)
  183. monitor.write('Capacitor Banks:')
  184.  
  185. monitor.setCursorPos(40,18)
  186. if turbine1.getEnergyStored()>=9900000 then
  187. monitor.setTextColor(colors.red)
  188. else
  189. monitor.setTextColor(colors.green)
  190. end
  191. monitor.write('Turbine 1: '..turbine1.getEnergyStored()..' RF')
  192.  
  193. monitor.setCursorPos(40,19)
  194. if turbine2.getEnergyStored()>=9900000 then
  195. monitor.setTextColor(colors.red)
  196. else
  197. monitor.setTextColor(colors.green)
  198. end
  199. monitor.write('Turbine 2: '..turbine2.getEnergyStored()..' RF')
  200.  
  201. monitor.setCursorPos(40,18)
  202. if turbine3.getEnergyStored()>=9900000 then
  203. monitor.setTextColor(colors.red)
  204. else
  205. monitor.setTextColor(colors.green)
  206. end
  207. monitor.write('Turbine 3: '..turbine3.getEnergyStored()..' RF')
  208.  
  209.  
  210.  
  211. monitor.setCursorPos(1,9)
  212. monitor.setTextColor(colors.white)
  213. monitor.write('Control Rod Levels:')
  214. monitor.setTextColor(colors.green)
  215. monitor.setCursorPos(1,10)
  216. monitor.write('Rods 1-24: '..(100-(reactor.getControlRodLevel(0)))..'%')
  217.  
  218. monitor.setCursorPos(20,10)
  219. monitor.write('Rods 24-48: '..(100-(reactor.getControlRodLevel(1)))..'%')
  220.  
  221. monitor.setCursorPos(1,11)
  222. monitor.write('Rods 72-96: '..(100-(reactor.getControlRodLevel(2)))..'%')
  223.  
  224. monitor.setCursorPos(20,11)
  225. monitor.write('Rods 120-144: '..(100-(reactor.getControlRodLevel(3)))..'%')
  226.  
  227. monitor.setCursorPos(1,14)
  228. monitor.setTextColor(colors.white)
  229. monitor.write('Reactor Radioactivity')
  230.  
  231. monitor.setCursorPos(24,14)
  232. monitor.write('Fuel Usage')
  233.  
  234. monitor.setTextColor(colors.green)
  235. monitor.setCursorPos(1,15)
  236. monitor.write(''..reactor.getFuelReactivity()..'%')
  237. monitor.setCursorPos(24,15)
  238. monitor.write(''..reactor.getFuelConsumedLastTick()..' mb/t')
  239.  
  240. monitor.setCursorPos(1,16)
  241. monitor.setTextColor(colors.orange)
  242. monitor.write('Status:')
  243.  
  244. if flashflag==0 then
  245. flashflag=1
  246. if offlineflag==1 then
  247. monitor.setCursorPos(1,17)
  248. monitor.setTextColor(colors.lightGray)
  249. monitor.write('OFFLINE - Manual Override')
  250. end
  251. if emptyflag==1 then
  252. monitor.setCursorPos(1,17)
  253. monitor.setTextColor(colors.pink)
  254. monitor.write('OFFLINE - Fuel Exhausted')
  255. end
  256. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
  257. monitor.setCursorPos(1,17)
  258. monitor.setTextColor(colors.yellow)
  259. monitor.write('ONLINE - Low Power Mode')
  260. end
  261. if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
  262. monitor.setCursorPos(1,17)
  263. monitor.setTextColor(colors.orange)
  264. monitor.write('ONLINE - High Power Mode')
  265. end
  266. else
  267. flashflag=0
  268. monitor.setCursorPos(1,17)
  269. monitor.clearLine()
  270. end
  271.  
  272.  
  273.  
  274.  
  275. if reactor.getEnergyProducedLastTick<=5999 then
  276. reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyProducedLastTick()/6000)))
  277.  
  278. elseif reactor.getEnergyProducedLastTick()>=6000 then
  279. reactor.setAllControlRodLevels(100)
  280. else
  281. reactor.setAllControlRodLevels(0)
  282. end
  283.  
  284. if (reactor.getFuelAmount()<=100) and offlineflag==0 then
  285. reactor.setAllControlRodLevels(100)
  286. reactor.setActive(false)
  287. emptyflag=1
  288. else
  289. emptyflag=0
  290. end
  291.  
  292. if rs.getInput('bottom')==false and emptyflag==0 then
  293. reactor.setActive(true)
  294. offlineflag=0
  295. end
  296.  
  297. if rs.getInput('bottom')==true and emptyflag==0 then
  298. reactor.setActive(false)
  299. reactor.setAllControlRodLevels(100)
  300. offlineflag=1
  301. end
  302. sleep(1)
  303. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement