Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local reactorName = "BiggerReactors_Reactor_1"
- local maxTemp = 2200
- local minTemp = 1800
- local turbineName = "BiggerReactors_Turbine_0"
- local targetRPM = 1800
- local stepSize = 10
- local checkInterval = 0.1
- local mon = peripheral.wrap("monitor_2")
- term.redirect(mon)
- local reactor = peripheral.wrap(reactorName)
- if not reactor then
- error("Reactor not found: " .. reactorName)
- end
- local turbine = peripheral.wrap(turbineName)
- if not turbine then
- error("Turbine not found: " .. turbineName)
- end
- while true do
- local rodPercent = 100 * math.max(reactor.getCasingTemperature() - minTemp, 0) / (maxTemp - minTemp)
- reactor.setAllControlRodLevels(rodPercent)
- local rpm = turbine.rotor().RPM()
- if rpm > targetRPM then
- turbine.fluidTank().setNominalFlowRate(turbine.fluidTank().nominalFlowRate() - stepSize)
- else
- turbine.fluidTank().setNominalFlowRate(turbine.fluidTank().nominalFlowRate() + stepSize)
- end
- if turbine.battery().stored() / turbine.battery().capacity() < 0.2 then
- if not reactor.active() then
- reactor.setActive(true)
- print("Reactor ON")
- end
- elseif turbine.battery().stored() / turbine.battery().capacity() > 0.8 then
- if reactor.active() then
- reactor.setActive(false)
- print("Reactor OFF")
- end
- end
- term.clear()
- term.setCursorPos(1,1)
- print("Temperature: " .. math.floor(reactor.fuelTemperature()))
- print("Rods: " .. math.floor(reactor.getControlRod(0).level()))
- sleep(checkInterval)
- end
Advertisement
Add Comment
Please, Sign In to add comment