Advertisement
Guest User

startup.lua

a guest
Jun 25th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.52 KB | None | 0 0
  1. mon = peripheral.wrap("left")
  2. modem = peripheral.wrap("back")
  3. r = peripheral.wrap("BigReactors-Reactor_6")
  4.  
  5. manOver = colors.red
  6. overrideStatus = "Disabled"
  7. MO = 1
  8.  
  9. function autoReactor()
  10.  
  11. energyCap = r.getEnergyCapacity()
  12. energyStored = r.getEnergyStored()
  13.  
  14. energyPerc = 100*(energyStored/energyCap)
  15.  
  16. if energyPerc > 70 then
  17. r.setActive(false)
  18. elseif energyPerc < 10 then
  19. r.setActive(true)
  20. end
  21. end
  22.  
  23.  
  24. function touchLoc()
  25.     _,_,xPos,yPos = os.pullEvent("monitor_touch")
  26. end
  27.  
  28. function withinBox(x,y,xEnd,yEnd)
  29.     if x <= xPos and xEnd >= xPos and y <= yPos and yEnd >= yPos then
  30.     return true
  31.     else
  32.     return false
  33.     end
  34. end
  35.  
  36. term.redirect(mon)
  37. mon.setTextScale(0.5)
  38.  
  39. term.setBackgroundColor(colors.black)
  40. term.clear()
  41.  
  42. function main_loop()
  43. while true do
  44.  
  45. energy = r.getEnergyStored()
  46. gActive = r.getActive()
  47. gEnergyCap = r.getEnergyCapacity()
  48. gEnergyProd = r.getEnergyProducedLastTick()
  49. gFuelAmt = r.getFuelAmount()
  50. gFuelAmtM = r.getFuelAmountMax()
  51. gFuelCons = r.getFuelConsumedLastTick()
  52. gFuelReact = r.getFuelReactivity()
  53. gCasingTemp = r.getCasingTemperature()
  54. gFuelTemp = r.getFuelTemperature()
  55.  
  56. fuelTime = math.floor(1000/(20*gFuelCons))
  57.  
  58. term.setBackgroundColor(colors.black)
  59. term.clear()
  60.  
  61. --Info Box
  62. infoBox = window.create(term.current(),4,2,6,1)
  63. paintutils.drawBox(2,2,47,26,colors.gray)
  64. infoBox.setBackgroundColor(colors.black)
  65. infoBox.setTextColor(colors.blue)
  66. infoBox.setCursorPos(1,1)
  67. infoBox.write(" Info ")
  68. infoInside = window.create(term.current(),6,4,10,10)
  69. infoInside.write(energy)
  70.  
  71. --Manual Override Box
  72. manualBox = window.create(term.current(),51,2,10,1)
  73. paintutils.drawBox(49,2,78,12,colors.gray)
  74. manualBox.setBackgroundColor(colors.black)
  75. manualBox.setTextColor(colors.blue)
  76. manualBox.setCursorPos(1,1)
  77. manualBox.write(" Override ")
  78.  
  79. --Override Buttons
  80. manualInside = window.create(term.current(),51,5,16,1)
  81. manualInside.write("  Override:  ")
  82. paintutils.drawFilledBox(66,4,75,6,manOver)
  83. manualButtonText = window.create(term.current(),67,5,8,1)
  84. manualButtonText.setBackgroundColor(manOver)
  85. manualButtonText.write(overrideStatus)
  86. paintutils.drawFilledBox(52,8,61,10,colors.green)
  87. manualOn = window.create(term.current(),56,9,2,1)
  88. manualOn.setBackgroundColor(colors.green)
  89. manualOn.write("On")
  90. paintutils.drawFilledBox(66,8,75,10,colors.red)
  91. manualOff = window.create(term.current(),69,9,3,1)
  92. manualOff.setBackgroundColor(colors.red)
  93. manualOff.write("Off")
  94.  
  95. --Status Box
  96. statusBox = window.create(term.current(),51,14,8,1)
  97. paintutils.drawBox(49,14,78,37,colors.gray)
  98. statusBox.setBackgroundColor(colors.black)
  99. statusBox.setTextColor(colors.blue)
  100. statusBox.setCursorPos(1,1)
  101. statusBox.write(" Status ")
  102. statusInside = window.create(term.current(),51,16,26,20)
  103. statusInside.setCursorPos(2,2)
  104.  
  105. --Status
  106. if gActive == true then
  107.     status = "On"
  108.     statusColor = colors.green
  109. else
  110.     status = "Off"
  111.     statusColor = colors.red
  112. end
  113. statusInside.write("     Status:  ")
  114. statusInside.setTextColor(statusColor)
  115. statusInside.write(status)
  116. statusInside.setTextColor(colors.white)
  117. statusInside.setCursorPos(2,5)
  118. statusInside.write("  Producing:  ")
  119. statusInside.setTextColor(statusColor)
  120. statusInside.write(math.floor(gEnergyProd))
  121. statusInside.setTextColor(colors.white)
  122. statusInside.write(" RF/t")
  123. statusInside.setCursorPos(2,8)
  124. statusInside.write(" Reactivity:  ")
  125. statusInside.setTextColor(colors.blue)
  126. statusInside.write(math.floor(gFuelReact))
  127. statusInside.setTextColor(colors.white)
  128. statusInside.write("%")
  129. statusInside.setCursorPos(2,11)
  130. if gCasingTemp > 2000 then
  131. casingTempColor = colors.red
  132. elseif gCasingTemp > 1500 then
  133. casingTempColor = colors.orange
  134. elseif gCasingTemp > 1000 then
  135. casingTempColor = colors.yellow
  136. elseif gCasingTemp > 500 then
  137. casingTempColor = colors.white
  138. elseif gCasingTemp > 250 then
  139. casingTempColor = colors.blue
  140. else
  141. casingTempColor = colors.lightBlue
  142. end
  143. statusInside.write("Casing Temp:  ")
  144. statusInside.setTextColor(casingTempColor)
  145. statusInside.write(math.floor(gCasingTemp))
  146. statusInside.setTextColor(colors.white)
  147. statusInside.write("`C")
  148. statusInside.setCursorPos(2,14)
  149. statusInside.write("  Fuel Temp:  ")
  150. statusInside.setTextColor(casingTempColor)
  151. statusInside.write(math.floor(gFuelTemp))
  152. statusInside.setTextColor(colors.white)
  153. statusInside.write("`C")
  154. statusInside.setCursorPos(2,18)
  155. if gActive == true then
  156. fuelTime = fuelTime
  157. else
  158. fuelTime = "0 "
  159. end
  160. statusInside.write("Each Ingot Lasts ")
  161. statusInside.setTextColor(colors.blue)
  162. statusInside.write(fuelTime)
  163. statusInside.setTextColor(colors.white)
  164. statusInside.write(" Secs")
  165.  
  166.  
  167.  
  168. --Author Box
  169. authorBox = window.create(term.current(),4,28,8,1)
  170. paintutils.drawBox(2,28,47,37,colors.gray)
  171. authorBox.setBackgroundColor(colors.black)
  172. authorBox.setTextColor(colors.blue)
  173. authorBox.setCursorPos(1,1)
  174. authorBox.write(" Author ")
  175. authorImg = paintutils.loadImage("author.nfp")
  176. paintutils.drawImage(authorImg,3,29)
  177.  
  178. sleep(0.2)
  179.  
  180. end
  181. end
  182. while true do
  183.  
  184. parallel.waitForAny(touchLoc,main_loop)
  185.  
  186. --Manual Override
  187. manOver = withinBox(66,4,75,6)
  188. if manOver == true then
  189.     MO = MO + 1
  190. else
  191.     MO = MO
  192. end
  193.  
  194. if (MO % 2 == 0) then
  195. manOver = colors.green
  196. overrideStatus = "Enabled "
  197. override = true
  198. else
  199. manOver = colors.red
  200. overrideStatus = "Disabled"
  201. override = false
  202. end
  203.  
  204. onBox = withinBox(52,8,61,10)
  205.  
  206. if onBox == true and override == true then
  207. r.setActive(true)
  208. end
  209.  
  210. offBox = withinBox(66,8,75,10)
  211.  
  212. if offBox == true and override == true then
  213. r.setActive(false)
  214. end
  215.    
  216. if override == false then
  217. autoReactor()
  218. end
  219. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement