# Untitled

Sep 9th, 2020 (edited)
576
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. starting_x, starting_y, starting_z = gps.locate(5)
2.
3. possible_sides = {"left", "right"}
4.
5. function get_opposite_side()
7.     if side == "left" then
8.         return possible_sides[2]
9.     elseif side == "right" then
10.         return possible_sides[1]
11.     else
12.         return get_side()
13.     end
14. end
15.
16. function is_int(number)
17.     return (type(number) == "number") and (math.floor(number) == number)
18. end
19.
20. function get_num()
22.     if not is_int(blocks_to_dig) then
23.         return get_num()
24.     else
26.     end
27. end
28.
29. blocks = get_num()
30.
31. function turn_around(side)
32.     local func_table = {["left"] = turtle.turnLeft, ["right"] = turtle.turnRight}
33.     func_table[side]()
34.     turtle.dig()
35.     turtle.foward()
36.     func_table[side]()
37.     main_loop()
38. end
39.
40. function dig_column()
41.     if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < 1 then
42.         turtle.refuel()
43.     end
44.
45.     local success, data = turtle.inspectUp()
46.
47.     local blocks_dug_up = 0
48.
49.     while success and (data.name ~= "minecraft:air") do
50.         turtle.digUp()
51.         turtle.up()
52.         blocks_dug_up = blocks_dug_up + 1
53.         success, data = turtle.inspect()
54.     end
55.
56.     if table.pack(turtle.inspect())[2].name ~= "minecraft:air" then
57.         turtle.dig()
58.     end
59.
60.     turtle.forward()
61.
62.     if blocks_dug_up ~= 0 then
63.         for i = 0, index - 1, 1 do
64.             turtle.digDown()
65.             turtle.down()
66.         end
67.     end
68. end
69.
70. function main_loop()
71.     local blocks_dug_front = 0
72.     while blocks_dug_front ~= blocks do
73.         dig_column()
74.         blocks_dug_front = blocks_dug_front + 1
75.     end
76.     turn_side = get_opposite_side()
77.     turn_around(turn_side)
78. end
RAW Paste Data