Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- updateTime = 0.5
- controllerSide = "back"
- reactorMaxEnergy = 10000000
- reactorBuffer = 0.5 -- in percent
- local Args = {...}
- if Args[1] == "update" then
- programName = shell.getRunningProgram()
- print("Updating.")
- fs.delete(programName)
- shell.run( "pastebin","get", "wA9943b8", programName )
- print("Finished updating.")
- error()
- end
- c = peripheral.wrap("back")
- updateTimer = os.startTimer(updateTime)
- if reactorMaxEnergy - reactorBuffer < 0 then error("Reactor buffer too high") end
- function updateReactor()
- energyStored = c.getEnergyStored() / reactorMaxEnergy
- energyBuffered = c.getEnergyStored() / (reactorMaxEnergy - (reactorMaxEnergy * reactorBuffer))
- if energyStored > 1 then energyStored = 1 end
- -- Set rod levels compared to stored energy.
- -- E.g. 0% energy stored = 100 rod level, 100% = 0 rod level.
- rodLevel = math.min(100, energyBuffered * 100)
- print("Energy: " .. energyStored)
- print("Rod level: " .. rodLevel)
- c.setAllControlRodLevels(rodLevel)
- c.setActive(true)
- end
- while true do
- event, p1, p2 = os.pullEvent()
- if event == "timer" and p1 == updateTimer then
- updateReactor()
- updateTimer = os.startTimer(updateTime - 0.05) -- Takes 1 tick
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment