View difference between Paste ID: VCNreRFK and 8g7XL2r1
SHOW: | | - or go back to the newest paste.
1
--pastebin:VCNreRFK
2
--file:tsort
3
4-
t.select(16)
4+
5-
local hasItem = t.suckDown()
5+
local offset = 0
6
local sleepTime = 10
7-
local offset = 1
7+
8
local function dropAt(pos)
9
    for i = 1, pos + offset do
10-
  for i=1,pos+offset do
10+
        t.forward()
11
    end
12-
  end
12+
    t.select(16)
13-
  t.dropDown()
13+
    local dropped = t.dropDown()
14-
  for i=1,pos+offset do
14+
    local curCount = t.getItemCount(pos)
15
    if curCount > 1 then
16-
  end  
16+
        t.select(pos)
17
        t.dropDown(curCount - 1)
18
    end
19-
if (hasItem) then
19+
    for i = 1, pos + offset do
20-
  for i=1,15 do
20+
        t.back()
21-
    if ( t.compareTo(i) ) then
21+
22-
      dropAt(i)
22+
    return dropped
23-
      break
23+
24
25-
  end
25+
local function pickItem()
26-
end
26+
    t.select(16)
27
    local current = t.getItemCount(16)
28
    if current > 0 then
29
        return true
30
    end
31
    for i = 1, 15 do
32
        local slotCount = t.getItemCount(i)
33
        if slotCount > 1 then
34
            t.select(i)
35
            t.transferTo(16, slotCount-1)
36
            return true
37
        end
38
    end
39
    return t.suckDown()
40
end
41
42
local function sortItem()
43
    print("Sorting item")
44
    local matchFound = false
45
    local dropped = false
46
    for i = 1, 15 do
47
        if (t.compareTo(i)) then
48
            matchFound = true
49
            dropped = dropAt(i)
50
            break
51
        end
52
    end
53
    if (not matchFound) then
54
        t.dropUp()
55
    end
56
    if (matchFound and not dropped) then
57
        t.dropUp()
58
    end
59
end
60
61
local function detectItems()
62
    print("Detecting items...")
63
    t.turnRight()
64
    t.forward()
65
    t.turnLeft()
66
    t.forward()
67
    t.down()
68
    t.down()
69
    t.turnLeft()
70
    t.forward()
71
    t.turnRight()
72
    for i = 1, 15 do
73
        t.select(i)
74
        if t.getItemCount(i) == 0 then
75
            t.suckUp()
76
        end
77
        if (i < 15) then
78
            t.forward()
79
        end
80
    end
81
    for i = 1, 14 do
82
        t.back()
83
    end
84
    t.turnRight()
85
    t.forward()
86
    t.up()
87
    t.up()
88
    t.back()
89
    t.turnLeft()
90
    t.back()
91
    print("Item detection complete.")
92
end
93
94
function main()
95
    detectItems()
96
    while (true) do
97
        local hasItem = true
98
        while (hasItem) do
99
            local hasItem = pickItem()
100
            if (hasItem) then
101
                sortItem()
102
            end
103
        end
104
        sleep(sleepTime)
105
    end
106
end
107
108
109
main()