Advertisement
DustinRosebery

Untitled

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