Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local bundledSide = "right"
- local redstoneSide = "left"
- local maxReactors = 8
- local maxNeedCycles = 10
- local maxCurrCycles = 30
- local waitBetween = 60 -- (Seconds, so 60 = 1-Minute)
- local curReactors = 0
- local inNeedCycles = 0
- local currentCycles = 0
- -- Toggle reactor on based on intger
- local function setOn(howMany)
- -- print("Number of reactors online: "..howMany)
- if howMany == 0 then
- rs.setBundledOutput(bundledSide, 0)
- else
- rs.setBundledOutput(bundledSide, (2^howMany) - 1)
- end
- end
- -- Increase reactor count
- local function morePower()
- if curReactors >= maxReactors then
- -- Do nothing
- setOn(0)
- else
- -- Add one
- curReactors = curReactors + 1
- setOn(curReactors)
- end
- end
- -- Decrease reactor count
- local function lessPower()
- if curReactors <= 0 then
- -- Set reactors
- curReactors = 0
- setOn(0)
- else
- curReactors = curReactors- 1
- setOn(curReactors)
- end
- end
- -- Reset please
- rs.setBundledOutput(bundledSide, 0)
- -- Actual run loop
- while true do
- -- Is capacitor in need of charging? (redstoneSide)
- if redstone.getInput(redstoneSide) then
- -- How many cycles have we been in need of charging? inNeedCycles vs currentCycles
- if inNeedCycles >= maxNeedCycles then
- -- Increase power if still in need
- morePower()
- -- Reset currentCycles
- currentCycles = 0
- inNeedCycles = 0
- else
- inNeedCycles = inNeedCycles + 1
- end
- elseif currentCycles >= maxCurrCycles then
- -- Decrease power if currentCycles is over 10
- lessPower()
- currentCycles = 0
- inNeedCycles = 0
- end
- currentCycles = currentCycles + 1
- -- Pause until next loop
- print("---------------------------------------------")
- print("Current C:"..currentCycles)
- print("Need C:"..inNeedCycles)
- print("#Reactors:"..curReactors)
- sleep(waitBetween)
- end
Advertisement
Add Comment
Please, Sign In to add comment