SummitSummit

DW20's mainProg

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