Advertisement
DustinRosebery

Untitled

Jun 17th, 2015
647
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.11 KB | None | 0 0
  1. --HD & IPJ's KickAss Reactor Control v1.0.0
  2. -------------------------------------------
  3.  
  4. -- Abbreviations
  5. monitor = peripheral.wrap("monitor_26")
  6. t1 = peripheral.wrap("BigReactors-Turbine_18")
  7. t2 = peripheral.wrap("BigReactors-Turbine_24")
  8. t3 = peripheral.wrap("BigReactors-Turbine_25")
  9. t4 = peripheral.wrap("BigReactors-Turbine_23")
  10. t5 = peripheral.wrap("BigReactors-Turbine_19")
  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.black
  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. -- Overview Component Windows
  30. local function drawOverView() --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(positive)
  38. monitor.write(" HD & IPJ's KickAss Reactor Control")
  39.  
  40. -- Windows
  41. -- Reactor levels display Window
  42. local reactorDisplay = window.create(monitor, 2, 3, 17, 10)
  43. reactorDisplay.setBackgroundColor(windowColor)
  44. reactorDisplay.setVisible(true)
  45. --heading
  46. monitor.setCursorPos(2,3)
  47. monitor.setTextColor(headingColor)
  48. monitor.write("Reactor")
  49.  
  50. -- total rf/t output display window
  51. local rfOutDisplay = window.create(monitor, 2, 15, 17, 3)
  52. rfOutDisplay.setBackgroundColor(windowColor)
  53. rfOutDisplay.setVisible(true)
  54. --heading
  55. monitor.setCursorPos(2,15)
  56. monitor.setTextColor(colors.blue)
  57. monitor.write("Total Output")
  58.  
  59. monitor.setTextColor(positive)
  60. monitor.setCursorPos(2,17)
  61. output = round( (t1.getEnergyProducedLastTick()
  62. +t2.getEnergyProducedLastTick()
  63. +t3.getEnergyProducedLastTick()
  64. +t4.getEnergyProducedLastTick()
  65. +t5.getEnergyProducedLastTick() ) / 1000 , 2)
  66.  
  67. monitor.write(output.." kRF/t")
  68.  
  69. -- Turbine Window
  70. local turbineDisplay = window.create(monitor, 21, 3, 13, 15)
  71. turbineDisplay.setBackgroundColor(windowColor)
  72. turbineDisplay.setVisible(true)
  73. --heading
  74. turbineDisplay.setTextColor(headingColor)
  75. turbineDisplay.setCursorPos(21,3)
  76. turbineDisplay.write("Turbine 1")
  77.  
  78. turbineDisplay.setCursorPos(21,6)
  79. turbineDisplay.write("Turbine 2")
  80.  
  81. turbineDisplay.setCursorPos(21,9)
  82. turbineDisplay.write("Turbine 3")
  83.  
  84. turbineDisplay.setCursorPos(21,12)
  85. turbineDisplay.write("Turbine 4")
  86.  
  87. turbineDisplay.setCursorPos(21,15)
  88. turbineDisplay.write("Turbine 5")
  89.  
  90. -- Bottom Menu bar Window
  91. local menuBar = window.create(monitor, 2,19, 34, 2)
  92. menuBar.setBackgroundColor( windowColor )
  93. menubar.setVisible(true)
  94.  
  95.  
  96.  
  97. end -- end drawMain()
  98.  
  99. -- Reactor Functions `
  100. -- Reactor Steam
  101. local function getSteam()
  102. steam = r.getHotFluidProducedLastTick()
  103. monitor.setCursorPos(2,5)
  104. monitor.setTextColor(inert)
  105. monitor.write("Steam: ")
  106.  
  107. if steam < 9500 then
  108. monitor.setTextColor(negative)
  109. else
  110. monitor.setTextColor(positive)
  111. end
  112.  
  113. monitor.write(steam)
  114. monitor.setTextColor(inert)
  115. monitor.write(" mB")
  116. os.sleep(1)
  117. end
  118.  
  119. -- Reactor Core Temp
  120. local function getCoreTemp()
  121. coreTemp = r.getFuelTemperature()
  122. monitor.setCursorPos(2,7)
  123. monitor.setTextColor(inert)
  124. monitor.write("CoreTemp: "..math.floor(coreTemp).."C")
  125. getSteam()
  126. end
  127.  
  128. -- Reactor Case Temp
  129. local function getCaseTemp()
  130. temp = r.getCasingTemperature()
  131. monitor.setCursorPos(2,8)
  132. monitor.setTextColor(inert)
  133. monitor.write("CaseTemp: "..math.floor(temp).."C")
  134. getCoreTemp()
  135. end
  136.  
  137. -- Reactor Reactivity
  138. local function getReactivity()
  139. reactivity = math.floor(r.getFuelReactivity())
  140. monitor.setCursorPos(2,10)
  141. monitor.setTextColor(inert)
  142. monitor.write("Reactivity: "..reactivity.."%")
  143. getCaseTemp()
  144. end
  145.  
  146. -- Reactor Fuel Use
  147. local function getFuelUse()
  148. fuelUsed = round(r.getFuelConsumedLastTick(),2)
  149. monitor.setCursorPos(2,11)
  150. monitor.setTextColor(inert)
  151. monitor.write("FuelUse: "..fuelUsed.."mB")
  152. getReactivity()
  153. end
  154.  
  155. -- Turbine Functions
  156.  
  157. -- determines text color for speed
  158. local function turbineSpeedColor(amount)
  159.  
  160. if amount < 1750 then
  161. return negative
  162. else
  163. return positive
  164. end
  165.  
  166. end
  167.  
  168. -- Turbine Speed
  169. local function getTurbine()
  170. drawMain()
  171. speed = t1.getRotorSpeed()
  172. rf = math.floor(t1.getEnergyProducedLastTick())
  173. monitor.setTextColor(inert)
  174. monitor.setCursorPos(21,4)
  175. monitor.write("Speed: ")
  176. monitor.setTextColor( turbineSpeedColor(speed) )
  177. monitor.write(roundPercent(speed,3).."%")
  178. monitor.setTextColor(inert)
  179. monitor.setCursorPos(21,5)
  180. monitor.write("RF/t: "..rf)
  181.  
  182. speed = t2.getRotorSpeed()
  183. rf = math.floor(t2.getEnergyProducedLastTick())
  184. monitor.setTextColor(inert)
  185. monitor.setCursorPos(21,7)
  186. monitor.write("Speed: ")
  187. monitor.setTextColor( turbineSpeedColor(speed) )
  188. monitor.write(roundPercent(speed,3).."%")
  189. monitor.setTextColor(inert)
  190. monitor.setCursorPos(21,8)
  191. monitor.write("RF/t: "..rf)
  192.  
  193. speed = t3.getRotorSpeed()
  194. rf = math.floor(t3.getEnergyProducedLastTick())
  195. monitor.setTextColor(inert)
  196. monitor.setCursorPos(21,10)
  197. monitor.write("Speed: ")
  198. monitor.setTextColor( turbineSpeedColor(speed) )
  199. monitor.write(roundPercent(speed,3).."%")
  200. monitor.setTextColor(inert)
  201. monitor.setCursorPos(21,11)
  202. monitor.write("RF/t: "..rf)
  203.  
  204. speed = t4.getRotorSpeed()
  205. rf = math.floor(t4.getEnergyProducedLastTick())
  206. monitor.setTextColor(inert)
  207. monitor.setCursorPos(21,13)
  208. monitor.write("Speed: ")
  209. monitor.setTextColor( turbineSpeedColor(speed) )
  210. monitor.write(roundPercent(speed,3).."%")
  211. monitor.setTextColor(inert)
  212. monitor.setCursorPos(21,14)
  213. monitor.write("RF/t: "..rf)
  214.  
  215. speed = t5.getRotorSpeed()
  216. rf = math.floor(t5.getEnergyProducedLastTick())
  217. monitor.setTextColor(inert)
  218. monitor.setCursorPos(21,16)
  219. monitor.write("Speed: ")
  220. monitor.setTextColor( turbineSpeedColor(speed) )
  221. monitor.write(roundPercent(speed,3).."%")
  222. monitor.setTextColor(inert)
  223. monitor.setCursorPos(21,17)
  224. monitor.write("RF/t: "..rf)
  225. getFuelUse()
  226. end -- end turbineSpeed
  227.  
  228. -- Start Of execution
  229. -- Draws main overview windows
  230. drawOverView()
  231.  
  232. while true do
  233. getTurbine()
  234. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement