Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local sides = {"right", "left", "top", "bottom", "front", "back"}
- local generators = {}
- local timeStill = {}
- local energy = {}
- local draining = {}
- function findGenerators()
- for i=1,6 do
- if "extrautils_generatorsolar" == peripheral.getType(sides[i]) then
- if generators[sides[i]] == nil then
- print("Added generator on side: "..sides[i])
- generators[sides[i]] = peripheral.wrap(sides[i])
- end
- elseif generators[sides[i]] ~= nil then
- print("Removed generator on side: "..sides[i])
- generators[sides[i]] = nil
- end
- end
- end
- function checkGenerator( side )
- local energyStored = generators[side].getEnergyStored()
- if energyStored == generators[side].getMaxEnergyStored() or (draining[side] and energyStored > 0) then
- if energyStored == generators[side].getMaxEnergyStored() then
- print("Side: "..side.." Draining")
- redstone.setOutput(side, true)
- draining[side] = true
- end
- if energy[side] == energyStored then
- timeStill[side] = timeStill[side] + 1
- if timeStill[side] > 5 then
- draining[side] = false
- redstone.setOutput(side, false)
- print("Side: "..side.." Charging")
- end
- else
- timeStill[side] = 0
- energy[side] = energyStored
- end
- print("Side: "..side.." Energy: "..energy[side].." TimeStill: "..timeStill[side])
- else
- print("Side: "..side.." Charging")
- redstone.setOutput(side, false)
- draining[side] = false
- end
- end
- function main()
- while true do
- findGenerators()
- for i=1,6 do
- if generators[sides[i]] ~= nil then
- checkGenerator(sides[i])
- end
- end
- sleep(3)
- end
- end
- while true do
- local ok, err = pcall(main)
- if not ok then
- print(err)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement