TKArchie

mainProg

Aug 11th, 2013
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. rednet.open("right")
  2. local miners = {}
  3. local loaders = {}
  4. local fuelBosses = {}
  5. local tArgs = {...}
  6. local powers = {}
  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 == "fuelBoss" then
  22. print(id..":"..msg)
  23. fuelBosses[#fuelBosses+1] = id
  24. miners[#miners+1] = id
  25. elseif msg == "power" then
  26. print(id..":"..msg)
  27. powers[#powers+1] = id
  28. elseif msg == "Done" then
  29. else
  30. print("Done")
  31. gotMsg = false
  32. end
  33. end
  34. end
  35.  
  36. function checkFuel()
  37. if turtle.getFuelLevel() < 900 then
  38. rednet.send(fuelBosses[1], "fuelBoss")
  39. rednet.receive()
  40. turtle.select(3)
  41. turtle.refuel()
  42. turtle.select(1)
  43. end
  44. end
  45.  
  46. function place()
  47. turtle.select(1)
  48. turtle.place()
  49. turtle.down()
  50. turtle.select(2)
  51. turtle.place()
  52. turtle.attack()
  53. end
  54.  
  55. function remove()
  56. turtle.select(2)
  57. turtle.dig()
  58. turtle.up()
  59. turtle.select(1)
  60. turtle.dig()
  61. end
  62.  
  63. minersGo = function()
  64. for x,y in pairs(miners) do
  65. rednet.send(y, "cycle")
  66. end
  67. place()
  68. local total = 0
  69. while total < #miners do
  70. local id,msg,dist=rednet.receive()
  71. total = total+1
  72. end
  73. remove()
  74. end
  75.  
  76. function moveLoaders()
  77. for x,y in pairs(loaders) do
  78. rednet.send(y,"chunkLoad")
  79. rednet.receive()
  80. sleep(0.5)
  81. end
  82. end
  83.  
  84. powerGo = function()
  85. for x,y in pairs(powers) do
  86. rednet.send(y,"power")
  87. rednet.receive()
  88. sleep(0.5)
  89. end
  90. end
  91.  
  92. findTurtles()
  93. if tArgs[1] == nil then tArgs[1] = 1 end
  94. for i = 1,tArgs[1] do
  95. print("Interation: "..tostring(i).." of "..tostring(tArgs[1]))
  96. parallel.waitForAll(powerGo,minersGo)
  97. turtle.forward()
  98. checkFuel()
  99. moveLoaders()
  100. end
Advertisement
Add Comment
Please, Sign In to add comment