View difference between Paste ID: SM0UP6LJ and 8FipCmH8
SHOW: | | - or go back to the newest paste.
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 checkFuel()
36+
37-
   if turtle.getFuelLevel() < 900 then
37+
38-
      rednet.send(fuelBosses[1], "fuelBoss")
38+
39
   turtle.select(16)
40-
      turtle.select(3)
40+
41-
      turtle.refuel()
41+
   TurnAround()
42-
      turtle.select(1)
42+
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(2)
50+
   turtle.select(14)
51
   turtle.placeDown()
52-
   turtle.attack()
52+
   turtle.select(15)
53
   turtle.place()
54
   cleanup()
55
end
56-
   turtle.select(2)
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-
   checkFuel()
104+
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