Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- os.loadAPI("myapis/button")
- p = peripheral.find("tile_blockcapacitorbank_name")
- m = peripheral.find("monitor")
- r = peripheral.find("BigReactors-Reactor")
- t = peripheral.find("BigReactors-Turbine")
- local steamReactor = r.isActivelyCooled()
- local numCapacitors = 4.65
- local energy = 0
- local energyStoredPercent = 0
- local turnOnAt = 50
- local turnOffAt = 95
- local reactorOnline = false
- local turbineOnline = false
- local turbineRotorSpeed = 0
- function autoMenu()
- m.setTextScale(1)
- button.clearTable()
- button.setTable("Reactor", reactorMode, "", 3, 13, 6, 6)
- button.setTable("Turbine", turbineMode, "", 15, 25, 6, 6)
- button.setTable("Automatic", autoReactor, "", 5, 18, 15, 15)
- button.setTable("Manual", manualReactor, "", 22,35, 15, 15)
- button.screen()
- --checkMode()
- --menuMode()
- end
- function checkMode()
- button.toggleButton(mode)
- end
- function reactorMode()
- print("Reactor Mode")
- if not reactorOnline then
- online()
- else
- offline()
- end
- end
- function turbineMode()
- print("Turbine Mode")
- if not turbineOnline then
- setTurbineOnline()
- else
- setTurbineOffline()
- end
- end
- function checkEn()
- local tempEngery = 0
- energyStored = p.getEnergyStored()
- energyMax = p.getMaxEnergyStored()
- energyStoredPercent = math.floor((energyStored/energyMax)*100)
- RFProduction = r.getEnergyProducedLastTick()
- fuelUse = r.getFuelConsumedLastTick()
- fuelUse = math.floor(fuelUse*100)
- coreTemp = r.getFuelTemperature()
- reactorOnline = r.getActive()
- tempEnergy = p.getEnergyStored()
- sleep(0.1)
- energy = (p.getEnergyStored()-tempEnergy)/2
- energy = energy*numCapacitors
- if steamReactor then
- turbineOnline = t.getActive()
- turbineRotorSpeed = t.getRotorSpeed()
- turbineRFGen = t.getEnergyProducedLastTick()
- turbineFluidRate = t.getFluidFlowRate()
- end
- end
- function displayEn()
- m.clear()
- m.setCursorPos(1,1)
- m.write("Energy Use: ")
- if energy < 0 then
- m.setTextColor(colors.red)
- else
- m.setTextColor(colors.green)
- end
- --m.write(comma_value(math.floor(energy)).."RF/t")
- m.write(energy.."RF/t")
- m.setTextColor(colors.white)
- m.setCursorPos(1,2)
- m.write("Energy Stored: "..energyStoredPercent.."%")
- m.setCursorPos(1,3)
- m.write("Reactor is: ")
- if reactorOnline then
- m.setTextColor(colors.green)
- m.write("Online")
- else
- m.setTextColor(colors.red)
- m.write("Offline")
- end
- m.setTextColor(colors.white)
- m.setCursorPos(1,4)
- m.write("Turbine is: ")
- if turbineOnline then
- m.setTextColor(colors.green)
- m.write("Online")
- else
- m.setTextColor(colors.red)
- m.write("Offline")
- end
- m.setTextColor(colors.white)
- m.setCursorPos(1,5)
- m.write("Turbine Rotor Speed: "..turbineRotorSpeed)
- m.setCursorPos(22,1)
- end
- function manualReactor()
- offline()
- setTurbineOffline()
- end
- function autoReactor()
- print("Auto Reactor started")
- print("Energy: "..energyStoredPercent)
- print("turn on: "..turnOnAt)
- reactorOnline = r.getActive()
- turbineOnline = t.getActive()
- if energyStoredPercent < turnOnAt then
- if not reactorOnline then
- online()
- setTurbineOnline()
- end
- end
- if energyStoredPercent > turnOffAt then
- if reactorOnline then
- offline()
- setTurbineOffline()
- end
- end
- end
- function online()
- r.setActive(true)
- end
- function offline()
- r.setActive(false)
- end
- function setTurbineOnline()
- t.setActive(true)
- end
- function setTurbineOffline()
- t.setActive(false)
- end
- function displayScreen()
- checkEn()
- displayEn()
- autoMenu()
- timerCode = os.startTimer(1)
- local event,side,x,y
- repeat
- event,side,x,y = os.pullEvent()
- print(event)
- if event == "timer" then
- print(timerCode..":"..side)
- if timerCode == side then
- print("Wrong Code")
- else
- print("Right Code")
- end
- end
- until event ~= "timer" or timerCode == side
- if event == "monitor_touch" then
- print(x.." : "..y)
- button.checkxy(x,y)
- end
- end
- while true do
- displayScreen()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement