Advertisement
DustinRosebery

Untitled

Jun 17th, 2015
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.55 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. 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. -- Turns the outputwindows setVisible( false )
  100. function menuListener()local timeout = os.startTimer(1)
  101. while true do
  102. event = {os.pullEvent()}
  103. if event[1] == "monitor_touch" then
  104. --handle monitor touches
  105. reactorDisplay.setVisible(false)
  106. rfOutDisplay.setVisible(false)
  107. turbineDisplay.setVisivle(false)
  108. os.startTimer(1)
  109. elseif event[1] == "timer" and event[2] == timeout then
  110. os.startTimer(1)
  111. end
  112. end
  113.  
  114. end
  115.  
  116. -- Reactor Functions `
  117. -- Reactor Steam
  118. local function getSteam()
  119. steam = r.getHotFluidProducedLastTick()
  120. monitor.setCursorPos(2,5)
  121. monitor.setTextColor(inert)
  122. monitor.write("Steam: ")
  123.  
  124. if steam < 9500 then
  125. monitor.setTextColor(negative)
  126. else
  127. monitor.setTextColor(positive)
  128. end
  129.  
  130. monitor.write(steam)
  131. monitor.setTextColor(inert)
  132. monitor.write(" mB")
  133. end
  134.  
  135. -- Reactor Core Temp
  136. local function getCoreTemp()
  137. coreTemp = r.getFuelTemperature()
  138. monitor.setCursorPos(2,7)
  139. monitor.setTextColor(inert)
  140. monitor.write("CoreTemp: "..math.floor(coreTemp).."C")
  141. getSteam()
  142. end
  143.  
  144. -- Reactor Case Temp
  145. local function getCaseTemp()
  146. temp = r.getCasingTemperature()
  147. monitor.setCursorPos(2,8)
  148. monitor.setTextColor(inert)
  149. monitor.write("CaseTemp: "..math.floor(temp).."C")
  150. getCoreTemp()
  151. end
  152.  
  153. -- Reactor Reactivity
  154. local function getReactivity()
  155. reactivity = math.floor(r.getFuelReactivity())
  156. monitor.setCursorPos(2,10)
  157. monitor.setTextColor(inert)
  158. monitor.write("Reactivity: "..reactivity.."%")
  159. getCaseTemp()
  160. end
  161.  
  162. -- Reactor Fuel Use
  163. local function getFuelUse()
  164. fuelUsed = round(r.getFuelConsumedLastTick(),2)
  165. monitor.setCursorPos(2,11)
  166. monitor.setTextColor(inert)
  167. monitor.write("FuelUse: "..fuelUsed.."mB")
  168. getReactivity()
  169. end
  170.  
  171. -- Turbine Functions
  172.  
  173. -- determines text color for speed
  174. local function turbineSpeedColor(amount)
  175.  
  176. if amount < 1750 then
  177. return negative
  178. else
  179. return positive
  180. end
  181.  
  182. end
  183.  
  184. -- Turbine Speed
  185. local function getTurbine()
  186. drawOverView()
  187. speed = t1.getRotorSpeed()
  188. rf = math.floor(t1.getEnergyProducedLastTick())
  189. monitor.setTextColor(inert)
  190. monitor.setCursorPos(21,4)
  191. monitor.write("Speed: ")
  192. monitor.setTextColor( turbineSpeedColor(speed) )
  193. monitor.write(roundPercent(speed,3).."%")
  194. monitor.setTextColor(inert)
  195. monitor.setCursorPos(21,5)
  196. monitor.write("RF/t: "..rf)
  197.  
  198. speed = t2.getRotorSpeed()
  199. rf = math.floor(t2.getEnergyProducedLastTick())
  200. monitor.setTextColor(inert)
  201. monitor.setCursorPos(21,7)
  202. monitor.write("Speed: ")
  203. monitor.setTextColor( turbineSpeedColor(speed) )
  204. monitor.write(roundPercent(speed,3).."%")
  205. monitor.setTextColor(inert)
  206. monitor.setCursorPos(21,8)
  207. monitor.write("RF/t: "..rf)
  208.  
  209. speed = t3.getRotorSpeed()
  210. rf = math.floor(t3.getEnergyProducedLastTick())
  211. monitor.setTextColor(inert)
  212. monitor.setCursorPos(21,10)
  213. monitor.write("Speed: ")
  214. monitor.setTextColor( turbineSpeedColor(speed) )
  215. monitor.write(roundPercent(speed,3).."%")
  216. monitor.setTextColor(inert)
  217. monitor.setCursorPos(21,11)
  218. monitor.write("RF/t: "..rf)
  219.  
  220. speed = t4.getRotorSpeed()
  221. rf = math.floor(t4.getEnergyProducedLastTick())
  222. monitor.setTextColor(inert)
  223. monitor.setCursorPos(21,13)
  224. monitor.write("Speed: ")
  225. monitor.setTextColor( turbineSpeedColor(speed) )
  226. monitor.write(roundPercent(speed,3).."%")
  227. monitor.setTextColor(inert)
  228. monitor.setCursorPos(21,14)
  229. monitor.write("RF/t: "..rf)
  230.  
  231. speed = t5.getRotorSpeed()
  232. rf = math.floor(t5.getEnergyProducedLastTick())
  233. monitor.setTextColor(inert)
  234. monitor.setCursorPos(21,16)
  235. monitor.write("Speed: ")
  236. monitor.setTextColor( turbineSpeedColor(speed) )
  237. monitor.write(roundPercent(speed,3).."%")
  238. monitor.setTextColor(inert)
  239. monitor.setCursorPos(21,17)
  240. monitor.write("RF/t: "..rf)
  241. getFuelUse()
  242. end -- end turbineSpeed
  243.  
  244.  
  245.  
  246. -- Start Of execution
  247. -- Draws main overview windows
  248. drawOverView()
  249.  
  250. while true do
  251. getTurbine()
  252. menuListener()
  253.  
  254.  
  255. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement