Advertisement
DustinRosebery

Untitled

Jun 15th, 2015
544
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 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. -- outputWindow
  45. local outputWindow = window.create(monitor, 2, 14, 17, 3)
  46. outputWindow.setBackgroundColor(windowColor)
  47. outputWindow.setVisible(true)
  48. --heading
  49. monitor.setCursorPos(2,15)
  50. monitor.setTextColor(colors.lime)
  51. monitor.write("Total Output")
  52. monitor.setCursorPos(2,16)
  53.  
  54. output = t1.getEnergyProducedLastTick()
  55. +t2.getEnergyProducedLastTick()
  56. +t3.getEnergyProducedLastTick()
  57. +t4.getEnergyProducedLastTick()
  58. +t5.getEnergyProducedLastTick()
  59.  
  60. formatOutput = output / 1000
  61. monitor.write(round(formatOutput, 2))
  62.  
  63. -- Turbine Window
  64. local turbineWindow = window.create(monitor, 21, 3, 13, 16)
  65. turbineWindow.setBackgroundColor(windowColor)
  66. turbineWindow.setVisible(true)
  67. --heading
  68. monitor.setTextColor(headingColor)
  69. monitor.setCursorPos(21,3)
  70. monitor.write("Turbine 1")
  71.  
  72. monitor.setCursorPos(21,6)
  73. monitor.write("Turbine 2")
  74.  
  75. monitor.setCursorPos(21,9)
  76. monitor.write("Turbine 3")
  77.  
  78. monitor.setCursorPos(21,12)
  79. monitor.write("Turbine 4")
  80.  
  81. monitor.setCursorPos(21,15)
  82. monitor.write("Turbine 5")
  83.  
  84. end -- end drawMain()
  85.  
  86. -- Reactor Functions `
  87. -- Reactor Steam
  88. local function getSteam()
  89. steam = r.getHotFluidProducedLastTick()
  90. monitor.setCursorPos(2,5)
  91. monitor.setTextColor(inert)
  92. monitor.write("Steam: ")
  93.  
  94. if steam < 9500 then
  95. monitor.setTextColor(negative)
  96. else
  97. monitor.setTextColor(positive)
  98. end
  99.  
  100. monitor.write(steam)
  101. monitor.setTextColor(inert)
  102. monitor.write("mB/t")
  103. os.sleep(1)
  104. end -- end Steam
  105.  
  106. -- Reactor Core Temp
  107. local function getCoreTemp()
  108. coreTemp = r.getFuelTemperature()
  109. monitor.setCursorPos(2,6)
  110. monitor.setTextColor(inert)
  111. monitor.write("CoreTemp: "..math.floor(coreTemp).."C")
  112. getSteam()
  113. end
  114.  
  115. -- Reactor Case Temp
  116. local function getCaseTemp()
  117. temp = r.getCasingTemperature()
  118. monitor.setCursorPos(2,7)
  119. monitor.setTextColor(inert)
  120. monitor.write("CaseTemp: "..math.floor(temp).."C")
  121. getCoreTemp()
  122. end
  123.  
  124. -- Rounding
  125. local function roundPercent(num, idp)
  126. local mult = 10^(idp or 0)
  127. return math.floor((num / 1782) * mult + 0.5 / mult)/10
  128. end
  129. local function round(num, idp)
  130. local mult = 10^(idp or 0)
  131. return math.floor(num * mult + 0.5) / mult
  132. end
  133.  
  134. -- Turbine Functions
  135.  
  136. -- determines text color for speed
  137. local function turbineSpeedColor(amount)
  138. if amount < 1750 then
  139. return negative
  140. else
  141. return positive
  142. end
  143. end
  144.  
  145. -- Turbine Speed
  146. local function getTurbine()
  147. drawMain()
  148. speed = t1.getRotorSpeed()
  149. rf = math.floor(t1.getEnergyProducedLastTick())
  150. monitor.setTextColor(inert)
  151. monitor.setCursorPos(21,4)
  152. monitor.write("Speed: ")
  153. monitor.setTextColor( turbineSpeedColor(speed) )
  154. monitor.write(roundPercent(speed,3).."%")
  155. monitor.setTextColor(inert)
  156. monitor.setCursorPos(21,5)
  157. monitor.write("RF/t: "..rf)
  158.  
  159. speed = t2.getRotorSpeed()
  160. rf = math.floor(t2.getEnergyProducedLastTick())
  161. monitor.setTextColor(inert)
  162. monitor.setCursorPos(21,7)
  163. monitor.write("Speed: ")
  164. monitor.setTextColor( turbineSpeedColor(speed) )
  165. monitor.write(roundPercent(speed,3).."%")
  166. monitor.setTextColor(inert)
  167. monitor.setCursorPos(21,8)
  168. monitor.write("RF/t: "..rf)
  169.  
  170. speed = t3.getRotorSpeed()
  171. rf = math.floor(t3.getEnergyProducedLastTick())
  172. monitor.setTextColor(inert)
  173. monitor.setCursorPos(21,10)
  174. monitor.write("Speed: ")
  175. monitor.setTextColor( turbineSpeedColor(speed) )
  176. monitor.write(roundPercent(speed,3).."%")
  177. monitor.setTextColor(inert)
  178. monitor.setCursorPos(21,11)
  179. monitor.write("RF/t: "..rf)
  180.  
  181. speed = t4.getRotorSpeed()
  182. rf = math.floor(t4.getEnergyProducedLastTick())
  183. monitor.setTextColor(inert)
  184. monitor.setCursorPos(21,13)
  185. monitor.write("Speed: ")
  186. monitor.setTextColor( turbineSpeedColor(speed) )
  187. monitor.write(roundPercent(speed,3).."%")
  188. monitor.setTextColor(inert)
  189. monitor.setCursorPos(21,14)
  190. monitor.write("RF/t: "..rf)
  191.  
  192. speed = t5.getRotorSpeed()
  193. rf = math.floor(t5.getEnergyProducedLastTick())
  194. monitor.setTextColor(inert)
  195. monitor.setCursorPos(21,16)
  196. monitor.write("Speed: ")
  197. monitor.setTextColor( turbineSpeedColor(speed) )
  198. monitor.write(roundPercent(speed,3).."%")
  199. monitor.setTextColor(inert)
  200. monitor.setCursorPos(21,17)
  201. monitor.write("RF/t: "..rf)
  202. getCaseTemp()
  203. end -- end turbineSpeed
  204.  
  205. -- Start Of execution
  206. drawMain()
  207.  
  208. while true do
  209. getTurbine()
  210. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement