Advertisement
DustinRosebery

Untitled

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