Advertisement
DustinRosebery

Untitled

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