killakiaba

kiaba reactor

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