View difference between Paste ID: dQB1Va65 and bXxWRhX6
SHOW: | | - or go back to the newest paste.
1
--[[
2
Changes:
3
Turtles no longer monitor how many rows they've gone forward (no more rowsProgressed file)
4
Master turtle simply waits for (numberSlaves) unique turtles to send messages saying
5
they are ready and waiting. Slave turtles repeatedly send ready and waiting signals to prevent
6
the sync problems we were having before.
7
--]]
8
 
9
-- Number of neighbouring turtles
10
numberSlaves = 8
11
 
12
-- Open up modem to receive wireless broadcasts
13
rednet.open("right")
14
 
15
-- Wait until neighbouring turtles are ready
16
function waitForSlaves()
17
  local IDsOfWaitingTurtles = {}
18
  local remoteTurtleID, rednetMessage
19
  local newTurtleIsReportingReady
20
 
21
  -- Wait for (numberNeighbours) unique turtles to send ready messages
22
  repeat
23
    remoteTurtleID, rednetMessage, _ = rednet.receive()
24
   
25
    if rednetMessage == "I am ready and waiting master" then
26
      -- Check if turtle has replied already
27
      newTurtleIsReportingReady = true
28
 
29
      for i=1, table.getn(IDsOfWaitingTurtles) do
30
        if remoteTurtleID == IDsOfWaitingTurtles[i] then
31
          newTurtleIsReportingReady = false
32
          break
33
        end
34
      end
35
 
36
      if newTurtleIsReportingReady then
37
        table.insert(IDsOfWaitingTurtles, remoteTurtleID)
38
      end
39
    end
40
  until table.getn(IDsOfWaitingTurtles) >= numberSlaves
41
 
42
  rednet.broadcast("You are authorised to proceed")
43
end
44
 
45
bool=true
46
 
47
while bool==true do
48
  if rs.getInput("back", true) then
49
      print ("Waiting")
50
      sleep (1)
51
  else
52
    print ("Let's Roll!")
53
    bool=false
54
  end
55
end
56
 
57
X=66
58
 
59
60
 
61
  print ("---------------------------")
62
  print ("Starting World Eating Scripts!")
63
  print ("---------------------------")
64
 
65-
  turtle.dig()
65+
66
 
67-
  while not turtle.forward() do
67+
68-
    turtle.attack()
68+
69
70
moves = 0
71
72
ore = false
73
74
turtle.select(2)
75
ore = turtle.compareDown()
76
turtle.select(3)
77
78
while ore == false and moves < 65 do
79
	turtle.digDown()
80-
    
80+
   	moves = moves + 1
81
	while not turtle.down()
82-
      for c = 1, X do
82+
		turtle.attack()
83
	end
84
	turtle.select(2)
85-
	if ore == true then
85+
86
	turtle.select(3)
87-
		for t = 1, c do
87+
88-
			turtle.digUp()
88+
89-
			while not turtle.up() do
89+
for q=1, moves do
90-
				turtle.digUp()
90+
	turtle.digUp()
91-
				turtle.attackUp()
91+
	while not turtle.up()
92-
			end
92+
		turtle.attack()
93-
		end
93+
		turtle.digUp()
94-
	else
94+
95
end
96
97-
        turtle.digDown()
97+
98-
       		 while not turtle.down() do
98+
99-
          		turtle.attackDown()
99+
100-
       		 end
100+
101
 
102
      for r = 1, 2 do
103
        turtle.dig()
104-
if ore == false then
104+
105-
      for d = 1, X do
105+
106
        end
107-
        turtle.digUp()
107+
108-
        while not turtle.up() do
108+
109-
          turtle.attackUp()
109+
110
    print ("Dropping off items")
111
 
112-
else
112+
113
        turtle.attack()
114
     
115
 
116
    turtle.select(1)
117
    while not turtle.place() do
118
      turtle.select(3)
119
      turtle.attack()
120
      turtle.select(1)
121
    end
122
 
123
    for dropslot = 3, 16 do
124
      turtle.select(dropslot)
125
      turtle.drop()
126
    end
127
 
128
    waitForSlaves()
129
 
130
    turtle.select(1)
131
 
132
    turtle.dig()
133
 
134
    turtle.select(3)
135
 
136
  end