Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- dofile("devices")
- print ("Running Reactor Control...")
- local maxEnergy = 10000000
- --local controlRodPos = math.floor((reactor.getEnergyStored()/maxEnergy) * 100)
- local controlRodPos = reactor.getControlRodLevel(0)
- local lastEnergy = 987654321
- local function maxPercent(percent)
- return (maxEnergy * percent)/100
- end
- local function updateMonitor()
- monitor.clear()
- local x = 3
- local y = 3
- monitor.setCursorPos(x,y)
- monitor.write("Generating: "..tostring(reactor.getEnergyProducedLastTick()).." rf/t")
- monitor.setCursorPos(x,y+1)
- monitor.write("Consuming: "..tostring(reactor.getFuelConsumedLastTick()).." mb/t")
- monitor.setCursorPos(x,y+2)
- if lastEnergy == 987654321 then
- monitor.write("Calculating Output...")
- else
- monitor.write("Outputing: "..tostring(math.floor((lastEnergy-reactor.getEnergyStored())/20)+reactor.getEnergyProducedLastTick()).." rf/t ")
- end
- monitor.setCursorPos(x,y+3)
- monitor.write("Power: "..tostring(math.floor((reactor.getEnergyStored()/maxEnergy)*100)).."%")
- lastEnergy = reactor.getEnergyStored()
- end
- while true do
- updateMonitor()
- reactor.setActive(true)
- local energy=reactor.getEnergyStored()
- local adjustAmount=0
- if energy < maxPercent(10) then
- adjustAmount = -100 --fire up the reactor all the way
- -- elseif energy < maxPercent(20) then
- -- adjustAmount = -50
- -- elseif energy < maxPercent(30) then
- -- adjustAmount = -25
- -- elseif energy < maxPercent(40) then
- -- adjustAmount = -10
- -- elseif energy < maxPercent(45) then
- -- adjustAmount = -1
- -- try to hold the internal power level between 45 and 55 percent
- elseif energy > maxPercent(90) then
- adjustAmount = 100
- -- elseif energy > maxPercent(80) then
- -- adjustAmount = 25
- -- elseif energy > maxPercent(70) then
- -- adjustAmount = 15
- -- elseif energy > maxPercent(60) then
- -- adjustAmount = 10
- -- elseif energy > maxPercent(55) then
- -- adjustAmount = 1
- end
- if (adjustAmount + controlRodPos) > 100 then
- controlRodPos = 100
- elseif (adjustAmount + controlRodPos) < 0 then
- controlRodPos = 0
- else
- controlRodPos = controlRodPos + adjustAmount
- end
- if reactor.getControlRodLevel(0) ~= controlRodPos then
- reactor.setAllControlRodLevels(controlRodPos)
- print ("Adjusting Control Rods ("..tostring(controlRodPos)..")")
- end
- sleep(1)
- end
Advertisement
Add Comment
Please, Sign In to add comment