Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cells = {}
- for _, v in pairs(peripheral.getNames()) do
- t = peripheral.getType(v)
- if t == "BigReactors-Reactor" then
- reactor = peripheral.wrap(v)
- elseif t == "BigReactors-Turbine" then
- turbine = peripheral.wrap(v)
- elseif t == "tile_thermalexpansion_cell_resonant_name" then
- table.insert(cells, peripheral.wrap(v))
- end
- end
- maxEnergy = 1*1000*1000 + table.getn(cells)*80*1000*1000
- targetRotorSpeed = 4500
- thresholdOff = 90
- thresholdOn = 10
- function getEnergyStored()
- e = turbine.getEnergyStored()
- for _, c in pairs(cells) do
- e = e + c.getEnergyStored()
- end
- return e
- end
- lastEnergy = getEnergyStored()
- function updateReactor()
- energy = getEnergyStored()
- energyPC = math.floor(energy/maxEnergy*10000)/100
- if energyPC >= thresholdOff then
- activate = false
- elseif energyPC < thresholdOn then
- activate = true
- else
- activate = reactor.getActive()
- end
- reactor.setActive(activate)
- write("Power ")
- write(energyPC)
- write("%")
- if activate then
- write(" - ON")
- else
- write(" - OFF")
- end
- underspeed = turbine.getRotorSpeed() < targetRotorSpeed * 0.99
- turbine.setInductorEngaged(not underspeed)
- if (active and underspeed) then
- write(" - spinning up")
- end
- if energy < lastEnergy then
- write(" - draining")
- elseif energy > lastEnergy then
- write(" - charging")
- end
- write("\n")
- lastEnergy = energy
- end
- function update()
- while true do
- term.clear()
- term.setCursorPos(1,1)
- print("[Hit Enter to exit]")
- updateReactor()
- sleep(1)
- end
- end
- function waitForUser()
- repeat
- local event,key = os.pullEvent("key")
- until key == keys.enter
- reactor.setActive(false)
- print("When you're done, please relaunch startup")
- end
- parallel.waitForAny(update, waitForUser)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement