Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local os = require("os")
- local term = require("term")
- if not component.isAvailable("br_reactor") then
- print("Not connected to a reactor.")
- return nil
- end
- local reactor = component.br_reactor
- local MAX_ENERGY = 10000000
- local MIN_ENERGY = MAX_ENERGY * 0.05
- local DESIRED_ENERGY = MAX_ENERGY * 0.95
- local percent = nil
- local mode = "inactive"
- while true do
- local storedEnergy = reactor.getEnergyStored()
- if mode == "inactive" and storedEnergy < MIN_ENERGY then
- mode = "active"
- elseif mode == "active" and storedEnergy > MAX_ENERGY then
- mode = "inactive"
- end
- if mode == "active" then
- if storedEnergy == 0 then
- percent = 0.0
- else
- percent = storedEnergy / DESIRED_ENERGY
- end
- else
- percent = 1.0
- end
- local controlRodCount = reactor.getNumberOfControlRods()
- local controlValue = percent * controlRodCount
- term.clear()
- local energyPercent = math.floor(reactor.getEnergyStored() / MAX_ENERGY)
- local percentText = string.format("%0.1f", energyPercent * 100)
- local productionText = string.format("%0.1f", reactor.getEnergyProducedLastTick())
- print("Mode: "..mode)
- print("Power: "..reactor.getEnergyStored().." RF ("..percentText.."%)")
- print("Production: "..productionText.." RF/t")
- print("Fuel: "..reactor.getFuelAmount().." mB")
- print()
- for i = 0, controlRodCount-1 do
- local rodPercent = 0.0
- if controlValue > 1.0 then
- rodPercent = 1.0
- elseif controlValue == 0.0 then
- rodPercent = 0.0
- else
- rodPercent = controlValue
- end
- controlValue = controlValue - rodPercent
- reactor.setControlRodLevel(i, rodPercent * 100)
- print("Control Rod "..(i + 1)..": "..string.format("%0.1f%%", rodPercent * 100))
- end
- os.sleep(10)
- end
- return nil
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement