Advertisement
DustinRosebery

Untitled

Jun 15th, 2015
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.57 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(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(string.format("%.1f",f))
  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. monit.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.  
  130. -- Turbine Functions
  131.  
  132. -- determines text color for speed
  133. local function turbineSpeedColor(amount)
  134. if amount < 1750 then
  135. return negative
  136. else
  137. return positive
  138. end
  139. end
  140.  
  141. -- Turbine Speed
  142. local function getTurbine()
  143. drawMain()
  144. speed = t1.getRotorSpeed()
  145. rf = math.floor(t1.getEnergyProducedLastTick())
  146. monitor.setTextColor(inert)
  147. monitor.setCursorPos(21,4)
  148. monitor.write("Speed: ")
  149. monitor.setTextColor( turbineSpeedColor(speed) )
  150. monitor.write(roundPercent(speed,3).."%")
  151. monitor.setTextColor(inert)
  152. monitor.setCursorPos(21,5)
  153. monitor.write("RF/t: "..rf)
  154.  
  155. speed = t2.getRotorSpeed()
  156. rf = math.floor(t2.getEnergyProducedLastTick())
  157. monitor.setTextColor(inert)
  158. monitor.setCursorPos(21,7)
  159. monitor.write("Speed: ")
  160. monitor.setTextColor( turbineSpeedColor(speed) )
  161. monitor.write(roundPercent(speed,3).."%")
  162. monitor.setTextColor(inert)
  163. monitor.setCursorPos(21,8)
  164. monitor.write("RF/t: "..rf)
  165.  
  166. speed = t3.getRotorSpeed()
  167. rf = math.floor(t3.getEnergyProducedLastTick())
  168. monitor.setTextColor(inert)
  169. monitor.setCursorPos(21,10)
  170. monitor.write("Speed: ")
  171. monitor.setTextColor( turbineSpeedColor(speed) )
  172. monitor.write(roundPercent(speed,3).."%")
  173. monitor.setTextColor(inert)
  174. monitor.setCursorPos(21,11)
  175. monitor.write("RF/t: "..rf)
  176.  
  177. speed = t4.getRotorSpeed()
  178. rf = math.floor(t4.getEnergyProducedLastTick())
  179. monitor.setTextColor(inert)
  180. monitor.setCursorPos(21,13)
  181. monitor.write("Speed: ")
  182. monitor.setTextColor( turbineSpeedColor(speed) )
  183. monitor.write(roundPercent(speed,3).."%")
  184. monitor.setTextColor(inert)
  185. monitor.setCursorPos(21,14)
  186. monitor.write("RF/t: "..rf)
  187.  
  188. speed = t5.getRotorSpeed()
  189. rf = math.floor(t5.getEnergyProducedLastTick())
  190. monitor.setTextColor(inert)
  191. monitor.setCursorPos(21,16)
  192. monitor.write("Speed: ")
  193. monitor.setTextColor( turbineSpeedColor(speed) )
  194. monitor.write(roundPercent(speed,3).."%")
  195. monitor.setTextColor(inert)
  196. monitor.setCursorPos(21,17)
  197. monitor.write("RF/t: "..rf)
  198. getCaseTemp()
  199. end -- end turbineSpeed
  200.  
  201. -- Start Of execution
  202. drawMain()
  203.  
  204. while true do
  205. getTurbine()
  206. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement