Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local reactor = nil
- local maxEnergyStored = 10000000
- local curControlRod = 0
- local waitingTicks = 4
- local curWaitingTicks = 0
- local energyOffset = 50
- local function changeControlRodLevel(change)
- local nextRod = 0
- if change ~= 0 then nextRod = 1 end
- curControlRod = (curControlRod+nextRod) % reactor.getNumberOfControlRods()
- local curControlRodLevel = reactor.getControlRodLevel(curControlRod)
- local potentialLevel = curControlRodLevel + change
- if potentialLevel > 100 then
- potentialLevel = 100
- elseif potentialLevel < 0 then
- potentialLevel = 0
- end
- reactor.setControlRodLevel(curControlRod, potentialLevel)
- --if change > 0 and curControlRodLevel < 100 then
- --local potentialLevel = curControlRodLevel + change
- --reactor.setControlRodLevel()
- --elseif change < 0 and curControlRodLevel > 0) then
- --reactor.setControlRodLevel(curControlRod, curControlRodLevel + change)
- --end
- end
- local function regulateReactor()
- local curEnergyStored = reactor.getEnergyStored()
- print("Current energy: ",curEnergyStored," RF")
- if curEnergyStored >= maxEnergyStored then
- reactor.setActive(false)
- print("Reactor off")
- else
- reactor.setActive(true)
- local curEnergyProduced = reactor.getEnergyProducedLastTick()
- print("Reactor energy production: ",curEnergyProduced," RF/t")
- local curEnergyMissing = maxEnergyStored - curEnergyStored
- if curWaitingTicks == 0 then
- if curEnergyMissing > 0 then
- local change = 0
- local wantedEnergyProduction = curEnergyMissing + energyOffset
- if wantedEnergyProduction < curEnergyProduced then
- change = math.ceil((curEnergyProduced - wantedEnergyProduction) / 200)
- print("Decreasing energy production")
- else
- change = math.floor((curEnergyProduced - wantedEnergyProduction) / 200)
- print("Increasing energy production")
- end
- changeControlRodLevel(change)
- end
- end
- curWaitingTicks = (curWaitingTicks+1)%waitingTicks
- end
- end
- local function getReactor()
- local r = peripheral.find("BigReactors-Reactor")
- if r == nil then
- print("Reactor not detected")
- else
- write("Reactor found")
- if r.getConnected() == true then
- print("and connected")
- else
- print("but not connected")
- end
- end
- return r
- end
- while true do
- term.clear()
- term.setCursorPos(0,0)
- reactor = getReactor()
- if reactor ~= nil then
- print("Energy missing: ",maxEnergyStored - reactor.getEnergyStored(), " RF")
- regulateReactor()
- end
- reactor = nil
- os.sleep(0.05)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement