Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2015
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. local sides = {"right", "left", "top", "bottom", "front", "back"}
  2.  
  3. local generators = {}
  4. local timeStill = {}
  5. local energy = {}
  6. local draining = {}
  7.  
  8. function findGenerators()
  9. for i=1,6 do
  10. if "extrautils_generatorsolar" == peripheral.getType(sides[i]) then
  11. if generators[sides[i]] == nil then
  12. print("Added generator on side: "..sides[i])
  13. generators[sides[i]] = peripheral.wrap(sides[i])
  14. end
  15. elseif generators[sides[i]] ~= nil then
  16. print("Removed generator on side: "..sides[i])
  17. generators[sides[i]] = nil
  18. end
  19. end
  20. end
  21.  
  22. function checkGenerator( side )
  23. local energyStored = generators[side].getEnergyStored()
  24. if energyStored == generators[side].getMaxEnergyStored() or (draining[side] and energyStored > 0) then
  25. if energyStored == generators[side].getMaxEnergyStored() then
  26. print("Side: "..side.." Draining")
  27. redstone.setOutput(side, true)
  28. draining[side] = true
  29. end
  30. if energy[side] == energyStored then
  31. timeStill[side] = timeStill[side] + 1
  32. if timeStill[side] > 5 then
  33. draining[side] = false
  34. redstone.setOutput(side, false)
  35. print("Side: "..side.." Charging")
  36. end
  37. else
  38. timeStill[side] = 0
  39. energy[side] = energyStored
  40. end
  41. print("Side: "..side.." Energy: "..energy[side].." TimeStill: "..timeStill[side])
  42. else
  43. print("Side: "..side.." Charging")
  44. redstone.setOutput(side, false)
  45. draining[side] = false
  46. end
  47. end
  48.  
  49. function main()
  50. while true do
  51. findGenerators()
  52. for i=1,6 do
  53. if generators[sides[i]] ~= nil then
  54. checkGenerator(sides[i])
  55. end
  56. end
  57. sleep(3)
  58. end
  59. end
  60.  
  61. while true do
  62. local ok, err = pcall(main)
  63. if not ok then
  64. print(err)
  65. end
  66. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement