Advertisement
Malishara

BigReactorsController

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