Glitchies

PowerMain

Oct 11th, 2013
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. rednet.open("right")
  2. local miners = {}
  3. local loaders = {}
  4. local power = {}
  5. local fuelBosses = {}
  6. local tArgs = {...}
  7.  
  8.  
  9. function findTurtles()
  10.    local gotMsg = true
  11.    local id, msg, dist
  12.    rednet.broadcast("checkIn")
  13.    while gotMsg do
  14.       id,msg,dist = rednet.receive(1)
  15.       if msg == "Miner" then
  16.          print(id..":"..msg)
  17.          miners[#miners+1] = id
  18.       elseif msg == "chunkloader" then
  19.          print(id..":"..msg)
  20.          loaders[#loaders+1] = id
  21.       elseif msg == "power" then
  22.          print(id..":"..msg)
  23.          power[#power+1] = id
  24.       elseif msg == "fuelBoss" then
  25.          print(id..":"..msg)
  26.          fuelBosses[#fuelBosses+1] = id
  27.          miners[#miners+1] = id
  28.       elseif msg == "Done" then
  29.       else
  30.          print("Done")
  31.          gotMsg = false
  32.       end
  33.    end      
  34. end
  35.  
  36. function place()
  37.    turtle.select(1)
  38.    turtle.dig()
  39.    turtle.select(16)
  40.    turtle.place()
  41.    TurnAround()
  42.    turtle.place()
  43.    turtle.down()
  44.    turtle.placeUp()
  45.    turtle.select(13)
  46.    turtle.place()
  47.    TurnAround()
  48.    turtle.select(1)
  49.    turtle.dig()
  50.    turtle.select(14)
  51.    turtle.placeDown()
  52.    turtle.select(15)
  53.    turtle.place()
  54.    cleanup()
  55. end
  56.  
  57. function remove()
  58.    turtle.select(14)
  59.    turtle.digDown()
  60.    turtle.select(15)
  61.    turtle.dig()
  62.    TurnAround()
  63.    turtle.select(13)
  64.    turtle.dig()
  65.    turtle.select(16)
  66.    turtle.digUp()
  67.    turtle.up()
  68.    turtle.dig()
  69.    TurnAround()
  70.    turtle.dig()
  71. end
  72.  
  73. function powerGo()
  74.    for x,y in pairs(power) do
  75.       rednet.send(y, "powerPlace")
  76.    end
  77. end
  78.  
  79. function minersGo()
  80.    for x,y in pairs(miners) do
  81.       rednet.send(y, "cycle")
  82.    end
  83.    place()
  84.    local total = 0
  85.    while total < #miners do
  86.       local id,msg,dist=rednet.receive()
  87.       total = total+1
  88.    end  
  89.    remove()
  90. end
  91.  
  92. function powerStop()
  93.    for x,y in pairs(power) do
  94.       rednet.send(y, "powerRemove")
  95.    end
  96. end
  97.  
  98. function moveLoaders()
  99.    for x,y in pairs(loaders) do
  100.       rednet.send(y,"chunkLoad")
  101.       rednet.receive()
  102.       sleep(0.5)
  103.    end
  104. end
  105.  
  106. findTurtles()
  107. if tArgs[1] == nil then tArgs[1] = 1 end
  108. for i = 1,tArgs[1] do
  109.    print("Interation: "..tostring(i).." of "..tostring(tArgs[1]))
  110.    powerGo()
  111.    minersGo()
  112.    powerStop()
  113.    turtle.forward()
  114.    moveLoaders()
  115. end
Advertisement
Add Comment
Please, Sign In to add comment