View difference between Paste ID: ivgJMPvK and dQB1Va65
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
66
 
67
  while true do
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
   	moves = moves + 1
81-
	while not turtle.down()
81+
	while not turtle.down() do
82
		turtle.attack()
83
	end
84
	turtle.select(2)
85
	ore = turtle.compareDown()
86
	turtle.select(3)
87
end
88
89
for q=1, moves do
90
	turtle.digUp()
91-
	while not turtle.up()
91+
	while not turtle.up() do
92
		turtle.attack()
93
		turtle.digUp()
94
	end
95
end
96
97
98
99
100
101
 
102
      for r = 1, 2 do
103
        turtle.dig()
104
        while not turtle.forward() do
105
          turtle.attack()
106
        end
107
 
108
      end
109
 
110
    print ("Dropping off items")
111
 
112
        turtle.dig()
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