View difference between Paste ID: czJBscn2 and 2wk1HYC9
SHOW: | | - or go back to the newest paste.
1
-- Build Tools
2
-- dig v1
3
 
4
local args = { ... }
5
 
6
if args[1] == nil or args[2] == nil or args[3] == nil or turtle.getItemCount(1) < 1 or args[1] == "help" then
7
  print ("Usage: dig [forward length] [right length] [depth]")
8
  print ("Put an ender chest in the first slot")
9
  return
10
end
11
 
12
local tilt = 0
13
local flength = tonumber(args[1])
14
local rlength = tonumber(args[2])
15
local depth = tonumber(args[3])
16
local blocks = rlength * flength * depth
17
 
18-
if turtle.getFuelLevel() < blocks + rlength + flength + depth and args[4] ~= "-f" then
18+
19-
  print ("You do not have enough fuel. This job needs ", fuelreq, " fuel.")
19+
20-
  print ("Add more fuel, or append -f to dig anyway.")
20+
21
  end
22
end
23
 
24
function stepUp()
25
  while not turtle.up() do
26
    turtle.digUp()
27
  end
28
end
29
 
30
function stepDown()
31
  while not turtle.down() do
32
    turtle.digDown()
33
  end
34
end
35
 
36
function placeUp()
37
  while not turtle.placeUp() do
38
    turtle.digUp()
39
  end
40
end
41
 
42
function rotateRight()
43
  turtle.turnRight()
44
  if vertical then
45
    stepUp()
46
  else
47
    step()
48
  end
49
  turtle.turnRight()
50
end
51
 
52
function rotateLeft()
53
  turtle.turnLeft()
54
  if vertical then
55
    stepUp()
56
  else
57
    step()
58
  end
59
  turtle.turnLeft()
60
end
61
 
62
-- Dump inventory into ender chest.
63
function dump()
64
  turtle.select(1)
65
  placeUp()
66
  for m = 16, 2, -1 do
67
    turtle.select(m)
68
    turtle.dropUp()
69
  end
70
  turtle.select(1)
71
  turtle.digUp()
72
end
73
 
74
-- Dig 'em up.
75
for i = 1, depth, 1 do
76
  for j = 1, rlength, 1 do
77
    for k = 1, flength, 1 do
78
      if turtle.getItemCount(16) > 0 then
79
        dump()
80
      end
81
      turtle.digDown()
82
      if k < flength then
83
        step()
84-
      if turtle.getItemCount(16) > 1 then
84+
85
    end
86
    if j < rlength then
87
      if (j + tilt) % 2 == 0 then
88
        rotateRight()
89
      else
90
        rotateLeft()
91
      end
92
    end
93
  end
94
  if rlength % 2 == 0 and i % 2 ~= 0 then
95
    tilt = 1
96
  else
97
    tilt = 0
98
  end
99
  turtle.turnLeft()
100
  turtle.turnLeft()
101
  stepDown()
102
end
103
 
104
-- Raise to initial height.
105
for i = 1, depth, 1 do
106
  stepUp()
107
end
108
 
109
-- Return to origin.
110
if depth % 2 ~= 0 then
111
  if rlength % 2 == 0 then
112
    turtle.turnRight()
113
    for i = 1, rlength - 1, 1 do
114
      step()
115
    end
116
  else
117
    turtle.turnLeft()
118
    for i = 1, rlength - 1, 1 do
119
      step()
120
    end
121
    turtle.turnRight()
122
    for i = 1, flength - 1, 1 do
123
      step()
124
    end
125
  end
126
end