SHOW:
|
|
- or go back to the newest paste.
1 | version = "5" | |
2 | term.clear() | |
3 | term.setCursorPos(1, 1) | |
4 | --print(version) | |
5 | sleep(3) | |
6 | done = 0 | |
7 | for l=1,10 do | |
8 | if fs.exists("goto") == false | |
9 | then do | |
10 | print("downloading goto") | |
11 | shell.run("pastebin","get","Rj9UiYUJ","goto") | |
12 | if fs.exists("goto") == true then | |
13 | print("download complete") | |
14 | elseif fs.exists("goto") == false then | |
15 | print("download failed") | |
16 | end | |
17 | end | |
18 | else do | |
19 | ||
20 | term.clear() | |
21 | term.setCursorPos(1, 1) | |
22 | print("recentering") | |
23 | while true do | |
24 | if done ~= 4 then do | |
25 | ||
26 | ||
27 | ||
28 | ||
29 | --------------------- | |
30 | --------------------- | |
31 | --------------------- | |
32 | --CHANGE HERE START-- | |
33 | --------------------- | |
34 | --------------------- | |
35 | --------------------- | |
36 | ||
37 | ||
38 | --"1" is Normal, "2" is Pumpkin/Melon/Probably Sugar Cane | |
39 | - | Mode = 2 |
39 | + | Mode = 1 |
40 | ||
41 | Farm_Lenth = 5 | |
42 | - | Farm_Width = 7 |
42 | + | Farm_Width = 5 |
43 | ||
44 | ||
45 | ||
46 | ||
47 | -- sort for specific crop | |
48 | ||
49 | --whether or not to sort, 1 is yes, 0 is no | |
50 | - | sortblock = 1 |
50 | + | sortblock = 0 |
51 | --name of the crop | |
52 | crop_name = "minecraft:pumpkin" | |
53 | --Recenter Values | |
54 | - | turn_right_recenter_times = 0 |
54 | + | turn_right_recenter_times = 1 |
55 | - | forward_recenter_times = 1 |
55 | + | forward_recenter_times = 2 |
56 | ||
57 | --max age of crop should probably be left at 7 | |
58 | crop_max_age = 7 | |
59 | ||
60 | ||
61 | ||
62 | ||
63 | --setup1 location | |
64 | - | setup1X = 304 |
64 | + | setup1X = 363 |
65 | - | setup1Y = 66 |
65 | + | setup1Y = 89 |
66 | - | setup1Z = 327 |
66 | + | setup1Z = 631 |
67 | --setup2 location | |
68 | - | setup2X = 304 |
68 | + | setup2X = 359 |
69 | - | setup2Y = 66 |
69 | + | setup2Y = 89 |
70 | - | setup2Z = 326 |
70 | + | setup2Z = 629 |
71 | ||
72 | ||
73 | ||
74 | ||
75 | --chest location | |
76 | - | chestX = 304 |
76 | + | chestX = 359 |
77 | - | chestY = 65 |
77 | + | chestY = 88 |
78 | - | chestZ = 326 |
78 | + | chestZ = 629 |
79 | --chest 2 = "up", 1 = "down", or 0 = "forward" | |
80 | - | chestdirection = 0 |
80 | + | chestdirection = 1 |
81 | ||
82 | --misc | |
83 | ||
84 | --ignore if a crop has no age value should be set at 1 for Pumpkin/Melon and 0 for Normal | |
85 | Override_ignore_nil_age = 0 | |
86 | ignore_nil_age = 1 | |
87 | ||
88 | override_stages = 0 | |
89 | turnleftchest = 0 | |
90 | totalstages = 1 | |
91 | ||
92 | ||
93 | ------------------- | |
94 | ------------------- | |
95 | --CHANGE HERE END-- | |
96 | ------------------- | |
97 | ------------------- | |
98 | ||
99 | ||
100 | ||
101 | ||
102 | ||
103 | ||
104 | if Override_ignore_nil_age == 0 then | |
105 | if Mode == 2 then | |
106 | ignore_nil_age = 1 | |
107 | elseif Mode == 1 then | |
108 | ignore_nil_age = 0 | |
109 | end | |
110 | end | |
111 | ||
112 | st_width = Farm_Width | |
113 | lenth = Farm_Lenth | |
114 | if override_stages == 1 then | |
115 | totalsteps = totalstages | |
116 | if Mode == 2 then | |
117 | grabstage = 5 | |
118 | elseif Mode == 1 then | |
119 | grabstage = 2 | |
120 | end | |
121 | elseif Mode == 2 then | |
122 | if override_stages == 0 then | |
123 | grabstage = 5 | |
124 | - | totalstages = 1 |
124 | + | |
125 | - | totalsteps = 1 |
125 | + | |
126 | end | |
127 | elseif Mode == 1 then | |
128 | if override_stages == 0 then | |
129 | grabstage = 2 | |
130 | totalstages = 2 | |
131 | totalsteps = 2 | |
132 | end | |
133 | end | |
134 | - | totalsteps = totalstages |
134 | + | |
135 | endsteps = totalsteps + 1 | |
136 | sub_lenth = lenth - 1 | |
137 | function chest() | |
138 | term.clear() | |
139 | term.setCursorPos(1, 1) | |
140 | print("going to chest") | |
141 | shell.run("goto", chestX, chestY, chestZ) | |
142 | ||
143 | if Mode == 2 then | |
144 | chest = 1 | |
145 | elseif Mode == 1 then | |
146 | chest = 2 | |
147 | end | |
148 | term.clear() | |
149 | term.setCursorPos(1, 1) | |
150 | print("putting in chest") | |
151 | while chest <= 16 do | |
152 | turtle.select(chest) | |
153 | if chestdirection == 0 then | |
154 | turtle.drop() | |
155 | ||
156 | elseif chestdirection == 1 then | |
157 | ||
158 | turtle.dropDown() | |
159 | elseif chestdirection == 2 then | |
160 | turtle.dropUp() | |
161 | end | |
162 | ||
163 | ||
164 | chest = chest + 1 | |
165 | end | |
166 | if turnleftchest == 1 then | |
167 | turtle.turnLeft() | |
168 | end | |
169 | term.clear() | |
170 | term.setCursorPos(1, 1) | |
171 | print("Resetting") | |
172 | sleep(20) | |
173 | os.reboot() | |
174 | end | |
175 | ||
176 | ||
177 | ||
178 | function turn() | |
179 | ||
180 | if right == 1 then | |
181 | --print("right") | |
182 | turtle.turnRight() | |
183 | turtle.forward() | |
184 | turtle.turnRight() | |
185 | ||
186 | dist = sub_lenth | |
187 | width = width - 1 | |
188 | right = 0 | |
189 | else | |
190 | --print("left") | |
191 | turtle.turnLeft() | |
192 | turtle.forward() | |
193 | turtle.turnLeft() | |
194 | dist = sub_lenth | |
195 | width = width - 1 | |
196 | right = 1 | |
197 | end | |
198 | end | |
199 | ||
200 | ||
201 | function recenter() | |
202 | working_turn_right_recenter_times = turn_right_recenter_times | |
203 | ||
204 | working_forward_recenter_times = forward_recenter_times | |
205 | ||
206 | shell.run("goto", setup1X, setup1Y, setup1Z) | |
207 | shell.run("goto", setup2X, setup2Y, setup2Z) | |
208 | if turn_right_recenter_times ~= 0 then | |
209 | while working_turn_right_recenter_times ~= 0 do | |
210 | turtle.turnRight() | |
211 | working_turn_right_recenter_times = working_turn_right_recenter_times - 1 | |
212 | end | |
213 | end | |
214 | ||
215 | right = 1 | |
216 | turtle.select(1) | |
217 | dist = lenth - 1 | |
218 | if forward_recenter_times ~= 0 then | |
219 | while working_forward_recenter_times ~= 0 do | |
220 | turtle.forward() | |
221 | working_forward_recenter_times = working_forward_recenter_times - 1 | |
222 | end | |
223 | end | |
224 | ||
225 | end | |
226 | ||
227 | ||
228 | ||
229 | ||
230 | function stage1() | |
231 | ||
232 | ||
233 | term.setCursorPos(1, 1) | |
234 | term.clearLine() | |
235 | print ("Stage: " .. done .. "/" .. totalsteps.. " Harvest and Plant") | |
236 | ||
237 | success, data = turtle.inspectDown() | |
238 | if success then | |
239 | ||
240 | ||
241 | if data.state.age ~= nil then | |
242 | ||
243 | ||
244 | term.setCursorPos(1, 2) | |
245 | term.clearLine() | |
246 | percentagefloat = (data.state.age - 0) / (7 - 0) * 100 | |
247 | percentage = math.floor(percentagefloat+0.5) | |
248 | ||
249 | print("Crop Age: " .. percentage .. "%") | |
250 | end | |
251 | -- if ignore_nil_age == 1 then | |
252 | -- if data.state.age == nil then | |
253 | -- data.state.age = crop_max_age | |
254 | -- end | |
255 | --end | |
256 | ||
257 | if data.name == crop_name or sortblock == 0 then | |
258 | if data.state.age == crop_max_age or ignore_nil_age == 1 then | |
259 | --print("Age Check 2: " .. data.state.age) | |
260 | turtle.digDown() | |
261 | turtle.suckDown() | |
262 | --term.setCursorPos(1, 3) | |
263 | --term.clearLine() | |
264 | --print("dig") | |
265 | ||
266 | ||
267 | end | |
268 | end | |
269 | ||
270 | if Mode == 1 then | |
271 | turtle.placeDown() | |
272 | end | |
273 | end | |
274 | end | |
275 | ||
276 | ||
277 | ||
278 | function stage2() | |
279 | ||
280 | ||
281 | ||
282 | term.setCursorPos(1, 1) | |
283 | term.clearLine() | |
284 | ||
285 | print ("Stage: " .. done .. "/" .. totalsteps .. " Cleanup") | |
286 | turtle.suckDown() | |
287 | ||
288 | --print("grab") | |
289 | ||
290 | ||
291 | ||
292 | end | |
293 | ||
294 | ||
295 | ||
296 | if width == 0 or width == nil then | |
297 | done = done + 1 | |
298 | --print ("add") | |
299 | --print ("Steps: " .. done) | |
300 | if done == endsteps then | |
301 | recenter() | |
302 | chest() | |
303 | done = 0 | |
304 | end | |
305 | ||
306 | width = st_width | |
307 | --print("width: " .. width) | |
308 | recenter() | |
309 | elseif width ~= 0 then | |
310 | ||
311 | ||
312 | ||
313 | if dist ~= 0 then | |
314 | ||
315 | ||
316 | if done == 1 then | |
317 | term.clear() | |
318 | while width ~= 0 do | |
319 | while dist ~= 0 do | |
320 | stage1() | |
321 | turtle.forward() | |
322 | stage1() | |
323 | --print("dig") | |
324 | dist = dist - 1 | |
325 | ||
326 | ||
327 | end | |
328 | turn() | |
329 | ||
330 | end | |
331 | ||
332 | elseif done == grabstage then | |
333 | term.clear() | |
334 | while width ~= 0 do | |
335 | while dist ~= 0 do | |
336 | stage2() | |
337 | turtle.forward() | |
338 | stage2() | |
339 | ||
340 | dist = dist - 1 | |
341 | end | |
342 | turn() | |
343 | end | |
344 | ||
345 | --unused planting phase not needed because it can be done after digging | |
346 | elseif done == 9 then | |
347 | ||
348 | while width ~= 0 do | |
349 | while dist ~= 0 do | |
350 | turtle.placeDown() | |
351 | turtle.forward() | |
352 | print("plant") | |
353 | print ("Steps: " .. done) | |
354 | dist = dist - 1 | |
355 | end | |
356 | turn() | |
357 | end | |
358 | --end- unused planting phase end | |
359 | ||
360 | end | |
361 | ||
362 | end | |
363 | ||
364 | ||
365 | ||
366 | ||
367 | ||
368 | ||
369 | ||
370 | end | |
371 | end | |
372 | end | |
373 | end | |
374 | end | |
375 | end | |
376 | end |