Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mon = peripheral.wrap("left")
- modem = peripheral.wrap("back")
- r = peripheral.wrap("BigReactors-Reactor_6")
- manOver = colors.red
- overrideStatus = "Disabled"
- MO = 1
- function autoReactor()
- energyCap = r.getEnergyCapacity()
- energyStored = r.getEnergyStored()
- energyPerc = 100*(energyStored/energyCap)
- if energyPerc > 70 then
- r.setActive(false)
- elseif energyPerc < 10 then
- r.setActive(true)
- end
- end
- function touchLoc()
- _,_,xPos,yPos = os.pullEvent("monitor_touch")
- end
- function withinBox(x,y,xEnd,yEnd)
- if x <= xPos and xEnd >= xPos and y <= yPos and yEnd >= yPos then
- return true
- else
- return false
- end
- end
- term.redirect(mon)
- mon.setTextScale(0.5)
- term.setBackgroundColor(colors.black)
- term.clear()
- function main_loop()
- while true do
- energy = r.getEnergyStored()
- gActive = r.getActive()
- gEnergyCap = r.getEnergyCapacity()
- gEnergyProd = r.getEnergyProducedLastTick()
- gFuelAmt = r.getFuelAmount()
- gFuelAmtM = r.getFuelAmountMax()
- gFuelCons = r.getFuelConsumedLastTick()
- gFuelReact = r.getFuelReactivity()
- gCasingTemp = r.getCasingTemperature()
- gFuelTemp = r.getFuelTemperature()
- fuelTime = math.floor(1000/(20*gFuelCons))
- term.setBackgroundColor(colors.black)
- term.clear()
- --Info Box
- infoBox = window.create(term.current(),4,2,6,1)
- paintutils.drawBox(2,2,47,26,colors.gray)
- infoBox.setBackgroundColor(colors.black)
- infoBox.setTextColor(colors.blue)
- infoBox.setCursorPos(1,1)
- infoBox.write(" Info ")
- infoInside = window.create(term.current(),6,4,10,10)
- infoInside.write(energy)
- --Manual Override Box
- manualBox = window.create(term.current(),51,2,10,1)
- paintutils.drawBox(49,2,78,12,colors.gray)
- manualBox.setBackgroundColor(colors.black)
- manualBox.setTextColor(colors.blue)
- manualBox.setCursorPos(1,1)
- manualBox.write(" Override ")
- --Override Buttons
- manualInside = window.create(term.current(),51,5,16,1)
- manualInside.write(" Override: ")
- paintutils.drawFilledBox(66,4,75,6,manOver)
- manualButtonText = window.create(term.current(),67,5,8,1)
- manualButtonText.setBackgroundColor(manOver)
- manualButtonText.write(overrideStatus)
- paintutils.drawFilledBox(52,8,61,10,colors.green)
- manualOn = window.create(term.current(),56,9,2,1)
- manualOn.setBackgroundColor(colors.green)
- manualOn.write("On")
- paintutils.drawFilledBox(66,8,75,10,colors.red)
- manualOff = window.create(term.current(),69,9,3,1)
- manualOff.setBackgroundColor(colors.red)
- manualOff.write("Off")
- --Status Box
- statusBox = window.create(term.current(),51,14,8,1)
- paintutils.drawBox(49,14,78,37,colors.gray)
- statusBox.setBackgroundColor(colors.black)
- statusBox.setTextColor(colors.blue)
- statusBox.setCursorPos(1,1)
- statusBox.write(" Status ")
- statusInside = window.create(term.current(),51,16,26,20)
- statusInside.setCursorPos(2,2)
- --Status
- if gActive == true then
- status = "On"
- statusColor = colors.green
- else
- status = "Off"
- statusColor = colors.red
- end
- statusInside.write(" Status: ")
- statusInside.setTextColor(statusColor)
- statusInside.write(status)
- statusInside.setTextColor(colors.white)
- statusInside.setCursorPos(2,5)
- statusInside.write(" Producing: ")
- statusInside.setTextColor(statusColor)
- statusInside.write(math.floor(gEnergyProd))
- statusInside.setTextColor(colors.white)
- statusInside.write(" RF/t")
- statusInside.setCursorPos(2,8)
- statusInside.write(" Reactivity: ")
- statusInside.setTextColor(colors.blue)
- statusInside.write(math.floor(gFuelReact))
- statusInside.setTextColor(colors.white)
- statusInside.write("%")
- statusInside.setCursorPos(2,11)
- if gCasingTemp > 2000 then
- casingTempColor = colors.red
- elseif gCasingTemp > 1500 then
- casingTempColor = colors.orange
- elseif gCasingTemp > 1000 then
- casingTempColor = colors.yellow
- elseif gCasingTemp > 500 then
- casingTempColor = colors.white
- elseif gCasingTemp > 250 then
- casingTempColor = colors.blue
- else
- casingTempColor = colors.lightBlue
- end
- statusInside.write("Casing Temp: ")
- statusInside.setTextColor(casingTempColor)
- statusInside.write(math.floor(gCasingTemp))
- statusInside.setTextColor(colors.white)
- statusInside.write("`C")
- statusInside.setCursorPos(2,14)
- statusInside.write(" Fuel Temp: ")
- statusInside.setTextColor(casingTempColor)
- statusInside.write(math.floor(gFuelTemp))
- statusInside.setTextColor(colors.white)
- statusInside.write("`C")
- statusInside.setCursorPos(2,18)
- if gActive == true then
- fuelTime = fuelTime
- else
- fuelTime = "0 "
- end
- statusInside.write("Each Ingot Lasts ")
- statusInside.setTextColor(colors.blue)
- statusInside.write(fuelTime)
- statusInside.setTextColor(colors.white)
- statusInside.write(" Secs")
- --Author Box
- authorBox = window.create(term.current(),4,28,8,1)
- paintutils.drawBox(2,28,47,37,colors.gray)
- authorBox.setBackgroundColor(colors.black)
- authorBox.setTextColor(colors.blue)
- authorBox.setCursorPos(1,1)
- authorBox.write(" Author ")
- authorImg = paintutils.loadImage("author.nfp")
- paintutils.drawImage(authorImg,3,29)
- sleep(0.2)
- end
- end
- while true do
- parallel.waitForAny(touchLoc,main_loop)
- --Manual Override
- manOver = withinBox(66,4,75,6)
- if manOver == true then
- MO = MO + 1
- else
- MO = MO
- end
- if (MO % 2 == 0) then
- manOver = colors.green
- overrideStatus = "Enabled "
- override = true
- else
- manOver = colors.red
- overrideStatus = "Disabled"
- override = false
- end
- onBox = withinBox(52,8,61,10)
- if onBox == true and override == true then
- r.setActive(true)
- end
- offBox = withinBox(66,8,75,10)
- if offBox == true and override == true then
- r.setActive(false)
- end
- if override == false then
- autoReactor()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement