Advertisement
DustinRosebery

reactorControl v1.0.0

Jun 15th, 2015
536
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.00 KB | None | 0 0
  1. --HD & IPJ's KickAss Reactor Control v1.0.0
  2. -------------------------------------------
  3.  
  4. -- Abbreviations
  5. monitor = peripheral.wrap("monitor_25")
  6. t1 = peripheral.wrap("BigReactors-Turbine_18")
  7. t2 = peripheral.wrap("BigReactors-Turbine_18")
  8. t3 = peripheral.wrap("BigReactors-Turbine_18")
  9. t4 = peripheral.wrap("BigReactors-Turbine_18")
  10. t5 = peripheral.wrap("BigReactors-Turbine_18")
  11. r = peripheral.wrap("back")
  12. -- Colors
  13. headingColor = colors.blue
  14. inert = colors.yellow
  15. positive = colors.lime
  16. negative = colors.red
  17. backgroundColor = colors.gray
  18. windowColor = colors.lightGray
  19.  
  20. local function drawMain() --Defines Main GUI
  21.  
  22. -- Main window Heading
  23. monitor.setCursorPos(1,1)
  24. monitor.setBackgroundColor(backgroundColor)
  25. monitor.clear()
  26. monitor.setTextScale(2)
  27. monitor.setTextColor(headingColor)
  28. monitor.write(" HD & IPJ's KickAss Reactor Control")
  29. monitor.setCursorPos(1,2)
  30. monitor.write("- - - - - - - - - - - - - - - - - - -")
  31.  
  32. -- Windows
  33. -- ReactorWindow
  34. local reactorWindow = window.create(monitor, 2, 3, 17, 7)
  35. reactorWindow.setBackgroundColor(windowColor)
  36. reactorWindow.setVisible(true)
  37. --heading
  38. monitor.setCursorPos(2,3)
  39. monitor.setTextColor(headingColor)
  40. monitor.write("Reactor")
  41. monitor.setCursorPos(2,4)
  42. monitor.write("- - - -")
  43.  
  44. -- Turbine Window
  45. local turbineWindow = window.create(monitor, 21, 3, 13, 16)
  46. turbineWindow.setBackgroundColor(windowColor)
  47. turbineWindow.setVisible(true)
  48. --heading
  49. monitor.setTextColor(headingColor)
  50. monitor.setCursorPos(21,3)
  51. monitor.write("Turbine 1")
  52.  
  53. monitor.setCursorPos(21,6)
  54. monitor.write("Turbine 2")
  55.  
  56. monitor.setCursorPos(21,9)
  57. monitor.write("Turbine 3")
  58.  
  59. monitor.setCursorPos(21,12)
  60. monitor.write("Turbine 4")
  61.  
  62. monitor.setCursorPos(21,15)
  63. monitor.write("Turbine 5")
  64.  
  65. end -- end drawMain()
  66.  
  67. -- Reactor Functions
  68.  
  69. -- Reactor Steam
  70. local function getSteam()
  71. steam = r.getHotFluidProducedLastTick()
  72. monitor.setCursorPos(2,5)
  73. monitor.setTextColor(inert)
  74. monitor.write("Steam: ")
  75.  
  76. if steam < 9500 then
  77. monitor.setTextColor(negative)
  78. else
  79. monit.setTextColor(positive)
  80. end
  81.  
  82. monitor.write(steam)
  83. monitor.setTextColor(inert)
  84. monitor.write("mB/t")
  85. os.sleep(1)
  86. end -- end Steam
  87.  
  88. -- Reactor Core Temp
  89. local function getCoreTemp()
  90. coreTemp = r.getFuelTemperature()
  91. monitor.setCursorPos(2,6)
  92. monitor.setTextColor(inert)
  93. monitor.write("CoreTemp: "..math.floor(coreTemp).."C")
  94. getSteam()
  95. end
  96.  
  97. -- Reactor Case Temp
  98. local function getCaseTemp()
  99. temp = r.getCasingTemperature()
  100. monitor.setCursorPos(2,7)
  101. monitor.setTextColor(inert)
  102. monitor.write("CaseTemp: "..math.floor(temp).."C")
  103. getCoreTemp()
  104.  
  105. -- Rounding
  106. local function roundPercent(num, idp)
  107. local mult = 10^(idp or 0)
  108. return math.floor((num / 1782) * mult + 0.5 / mult)/10
  109. end
  110.  
  111. -- Turbine Functions
  112.  
  113. -- determines text color for speed
  114. local function turbineSpeedColor(amount)
  115. if amount < 1750 then
  116. return negative
  117. else
  118. return positive
  119. end
  120. end
  121.  
  122. -- Turbine Speed
  123. local function getTurbine()
  124. drawMain()
  125. speed = t1.getRotorSpeed()
  126. rf = math.floor(t1.getEnergyProducedLastTick())
  127. monitor.setTextColor(inert)
  128. monitor.setCursorPos(21,4)
  129. monitor.write("Speed: ")
  130. monitor.setTextColor( turbineSpeedColor(speed) )
  131. monitor.write(roundPercent(speed,3).."%")
  132. monitor.setTextColor(inert)
  133. monitor.setCursorPos(21,5)
  134. monitor.write("RF/t: "..rf)
  135.  
  136. speed = t2.getRotorSpeed()
  137. rf = math.floor(t2.getEnergyProducedLastTick())
  138. monitor.setTextColor(inert)
  139. monitor.setCursorPos(21,7)
  140. monitor.write("Speed: ")
  141. monitor.setTextColor( turbineSpeedColor(speed) )
  142. monitor.write(roundPercent(speed,3).."%")
  143. monitor.setTextColor(inert)
  144. monitor.setCursorPos(21,8)
  145. monitor.write("RF/t: "..rf)
  146.  
  147. speed = t3.getRotorSpeed()
  148. rf = math.floor(t3.getEnergyProducedLastTick())
  149. monitor.setTextColor(inert)
  150. monitor.setCursorPos(21,10)
  151. monitor.write("Speed: ")
  152. monitor.setTextColor( turbineSpeedColor(speed) )
  153. monitor.write(roundPercent(speed,3).."%")
  154. monitor.setTextColor(inert)
  155. monitor.setCursorPos(21,11)
  156. monitor.write("RF/t: "..rf)
  157.  
  158. speed = t4.getRotorSpeed()
  159. rf = math.floor(t4.getEnergyProducedLastTick())
  160. monitor.setTextColor(inert)
  161. monitor.setCursorPos(21,13)
  162. monitor.write("Speed: ")
  163. monitor.setTextColor( turbineSpeedColor(speed) )
  164. monitor.write(roundPercent(speed,3).."%")
  165. monitor.setTextColor(inert)
  166. monitor.setCursorPos(21,14)
  167. monitor.write("RF/t: "..rf)
  168.  
  169. speed = t5.getRotorSpeed()
  170. rf = math.floor(t5.getEnergyProducedLastTick())
  171. monitor.setTextColor(inert)
  172. monitor.setCursorPos(21,16)
  173. monitor.write("Speed: ")
  174. monitor.setTextColor( turbineSpeedColor(speed) )
  175. monitor.write(roundPercent(speed,3).."%")
  176. monitor.setTextColor(inert)
  177. monitor.setCursorPos(21,17)
  178. monitor.write("RF/t: "..rf)
  179. getCaseTemp()
  180. end -- end turbineSpeed
  181.  
  182. -- Start Of execution
  183. drawMain()
  184.  
  185. while true do
  186. getTurbine()
  187. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement