View difference between Paste ID: jvXCDAek and 5KnL2JSN
SHOW: | | - or go back to the newest paste.
1
acceptableItems = {'minecraft:diamond','minecraft:coal','minecraft:iron_ore','minecraft:emerald','minecraft:gold_ore','draconicevolution:draconium_dust'}
2
acceptableItemsLength = 6
3
-- 1 breaks up, -1 breaks down
4
function destroy (direction)
5
	if direction == 1 then
6
		turtle.digUp()
7
		turtle.up()
8
	elseif direction == -1 then
9
		turtle.digDown()
10
		turtle.down()
11
	else
12
		error('invalid direction')
13
	end
14
    turtle.dig()
15
    turtle.turnLeft()
16
    turtle.turnLeft()
17
    turtle.dig()
18
    turtle.turnLeft()
19
    turtle.turnLeft()
20
end
21
22
-- if coal slot (1) has more than one coal, use
23
function refuel ()
24
	if turtle.getItemCount(1) > 1 then
25-
		temp = turtle.getSelectedSlot()
25+
26
		turtle.refuel(turtle.getItemCount()-1)
27
	end
28-
		turtle.select(temp)
28+
29
30
-- remove all items not in list
31
function purge ()
32
	for i=2,16 do
33
		keep = false
34
		for j=1,acceptableItemsLength do
35
			if turtle.getItemDetail(i).name == acceptableItems[j] then
36
				keep = true
37-
			if turtle.getItemDetail(i) == acceptableItems[j] then
37+
38
		end
39
		if not keep then
40
			turtle.select(i)
41
			turtle.drop(i)
42
		end
43
	end
44
end
45
46
-- returns true if every slot is completely full
47
function turtleInvFull ()
48
	fullCount = 0; -- # of slots full
49
	for i=2,16 do
50
		if turtle.getItemSpace(i) == 0 then
51
			fullCount = fullCount + 1;
52
		end
53
	end
54
	return fullCount == 15;
55
end
56
57
58
while (turtle.getFuelLevel() > 0) and not turtleInvFull() do
59
	-- mining down
60
	repeat
61
		success, data = turtle.inspectDown()
62
		destroy(-1)
63
		refuel()
64
		purge()
65
	until data.name == 'minecraft:bedrock'
66
67
	-- moves to new spot to mine up
68
	for i=1,3 do
69
		turtle.dig()
70
		turtle.forward()
71
	end
72
	
73
	-- end if turtle inv completely full
74
	if turtleInvFull() then
75
		break
76
	end
77
		
78
	-- mining up
79
	for i=2,70 do
80
		destroy(1)
81
		refuel()
82
		purge()
83
	end
84
85
	-- moves to new spot to mine down
86
	for i=1,3 do
87
		turtle.forward()
88
		turtle.dig()
89
	end
90
end