SHOW:
|
|
- or go back to the newest paste.
1 | local args = {...} | |
2 | if args[1] == "-reboot" then | |
3 | rowLength = args[2] | |
4 | rows = args[3] | |
5 | startingY = args[4] | |
6 | curRow = args[5] | |
7 | y = args[6] | |
8 | else | |
9 | if fs.exists("startup") then | |
10 | fs.delete("startup") | |
11 | end | |
12 | if #args ~= 3 then | |
13 | print("Usage: dig <row length> <width> <current y>") | |
14 | error() | |
15 | end | |
16 | rowLength = args[1] | |
17 | rows = args[2] | |
18 | startingY = args[3] | |
19 | curRow = 1 | |
20 | ||
21 | y = startingY | |
22 | end | |
23 | function full() | |
24 | fullSlots = 0 | |
25 | for i=2,15 do | |
26 | if turtle.getItemCount(i) > 0 then | |
27 | fullSlots = fullSlots + 1 | |
28 | end | |
29 | end | |
30 | print(fullSlots .. " slots are full") | |
31 | return(fullSlots == 14) | |
32 | end | |
33 | ||
34 | function checkFuel() | |
35 | if turtle.getFuelLevel() < 10 then | |
36 | turtle.select(1) | |
37 | turtle.refuel(1) | |
38 | end | |
39 | end | |
40 | ||
41 | function digMove() | |
42 | checkFuel() | |
43 | while turtle.detect() do | |
44 | turtle.dig() | |
45 | os.sleep(0.5) | |
46 | ||
47 | end | |
48 | turtle.forward() | |
49 | updateloc() | |
50 | turtle.digUp() | |
51 | turtle.digDown() | |
52 | if full() then | |
53 | turtle.dig() | |
54 | turtle.select(16) | |
55 | turtle.place() | |
56 | for i = 1,15 do | |
57 | turtle.select(i) | |
58 | turtle.drop() | |
59 | end | |
60 | turtle.select(16) | |
61 | turtle.dig() | |
62 | end | |
63 | end | |
64 | ||
65 | function turn() | |
66 | updateloc() | |
67 | if curRow % 2 == 0 then | |
68 | turtle.turnRight() | |
69 | else | |
70 | turtle.turnLeft() | |
71 | end | |
72 | end | |
73 | ||
74 | function dig() | |
75 | turtle.digDown() | |
76 | turtle.down() | |
77 | y = y - 1 | |
78 | updateloc() | |
79 | if full() then | |
80 | turtle.dig() | |
81 | turtle.select(16) | |
82 | turtle.place() | |
83 | for i = 1,15 do | |
84 | turtle.select(i) | |
85 | turtle.drop() | |
86 | end | |
87 | turtle.select(16) | |
88 | turtle.dig() | |
89 | updateloc() | |
90 | end | |
91 | end | |
92 | ||
93 | function back() | |
94 | turtle.turnLeft() | |
95 | for i=1,rows do | |
96 | checkFuel() | |
97 | turtle.forward() | |
98 | updateloc() | |
99 | end | |
100 | turtle.turnLeft() | |
101 | end | |
102 | ||
103 | function up() | |
104 | for i=1,(startingY - y) do | |
105 | checkFuel() | |
106 | turtle.up() | |
107 | y = y + 1 | |
108 | updateloc() | |
109 | end | |
110 | end | |
111 | ||
112 | ||
113 | function down(x) | |
114 | for i=1,x do | |
115 | checkFuel() | |
116 | dig(x) | |
117 | end | |
118 | end | |
119 | ||
120 | function chest() | |
121 | turtle.turnLeft() | |
122 | turtle.turnLeft() | |
123 | for i=2,16 do | |
124 | turtle.select(i) | |
125 | turtle.drop() | |
126 | end | |
127 | if turtle.getItemCount(1) < 3 then | |
128 | turtle.up() | |
129 | turtle.select(1) | |
130 | turtle.suck() | |
131 | turtle.down() | |
132 | end | |
133 | turtle.turnRight() | |
134 | turtle.turnRight() | |
135 | end | |
136 | ||
137 | function level() | |
138 | curRow = 1 | |
139 | for i=1,rows do | |
140 | for i=1,rowLength-1 do | |
141 | digMove() | |
142 | updateloc() | |
143 | end | |
144 | if curRow == tonumber(rows) then | |
145 | ||
146 | else | |
147 | turn() | |
148 | digMove() | |
149 | turn() | |
150 | curRow = curRow + 1 | |
151 | updateloc() | |
152 | end | |
153 | end | |
154 | back() | |
155 | tempY = y | |
156 | if full() then | |
157 | turtle.dig() | |
158 | turtle.select(16) | |
159 | turtle.place() | |
160 | for i = 1,15 do | |
161 | turtle.select(i) | |
162 | turtle.drop() | |
163 | end | |
164 | turtle.select(16) | |
165 | turtle.dig() | |
166 | down(3) | |
167 | else | |
168 | down(3) | |
169 | end | |
170 | turtle.digDown() | |
171 | end | |
172 | function updateloc() | |
173 | w = fs.open("startup","w") | |
174 | w.writeLine('shell.run("dig -reboot '..rowLength..' '..rows..' '..startingY..' '..curRow..' '..y..'")') | |
175 | end | |
176 | function quarry() | |
177 | if args[1] == "-reboot" then | |
178 | else | |
179 | down(2) | |
180 | end | |
181 | turtle.digDown() | |
182 | updateloc() | |
183 | while y > 2 do | |
184 | level() | |
185 | end | |
186 | up() | |
187 | fs.delete("startup") | |
188 | end | |
189 | ||
190 | quarry() |