Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local reactor = peripheral.wrap("back")
- reactor.setActive(true)
- local monitor = peripheral.wrap("top")
- monitor.write("Init")
- local width, height = monitor.getSize()
- local fuelTemp = 0
- local casingTemp = 0
- local energy = reactor.getEnergyStored()
- local lastTick = 0
- local rods = 99
- local target = 5000000 -- adjustable between 0 and 10 million depending how much you want on hand
- full = 10000000 -- full buffer size
- function pullInfo()-- pulling the latest from the reactor
- fuelTemp = reactor.getFuelTemperature()
- casingTemp = reactor.getCasingTemperature()
- energy = reactor.getEnergyStored()
- lastTick = reactor.getEnergyProducedLastTick()
- end
- function displayStats() -- display stats to the monitor in 2 columns
- --wrap monitor and pull sizing
- monitor.clear()
- monitor.setCursorPos(1, 1)
- monitor.write("Temperature")
- monitor.setCursorPos(1, 2)
- monitor.write(math.floor(fuelTemp))
- monitor.write("/")
- monitor.write(math.floor(casingTemp) )
- monitor.setCursorPos(1, 4)
- monitor.write("Energy Buffer")
- monitor.setCursorPos(1, 5)
- monitor.write(math.floor(((energy/full) * 100) + 0.5))
- monitor.write(" %")
- monitor.setCursorPos(1, 7)
- monitor.write("Energy Last Tick: ")
- monitor.setCursorPos(1, 8)
- monitor.write(math.floor(lastTick+ 0.5))
- monitor.write("RF/t")
- monitor.setCursorPos(1, 10)
- monitor.write("Rod Insertion")
- monitor.setCursorPos(1, 11)
- monitor.write(rods)
- monitor.write(" %")
- end
- function rodManagement()
- --if we're losing energy and below half or empty... pull rods out by 1%
- if (reactor.getEnergyStored() < energy) and (energy < target) then
- rods = rods-1
- reactor.setAllControlRodLevels(rods)
- end
- -- if energy is increasing and storage is over half insert rods by 1%
- if (reactor.getEnergyStored() > energy) and (energy > target) then
- rods = rods+1
- reactor.setAllControlRodLevels(rods)
- end
- if (reactor.getEnergyStored() == 0) then
- rods=rods-1
- reactor.setAllControlRodLevels(rods)
- end
- end
- function main()
- while (true) do
- pullInfo()
- sleep(1)
- displayStats()
- rodManagement()
- sleep(1)
- end
- end
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement