SHOW:
|
|
- or go back to the newest paste.
1 | local chest = peripheral.wrap("bottom") | |
2 | local chestToTurtle = "up" | |
3 | local jarSide = "top" | |
4 | local tSlot = 1 | |
5 | local aspect = "herba" | |
6 | ||
7 | function printItemSlot(slot) | |
8 | if slot.display_name ~= nil then print("display_name : "..slot.display_name) end | |
9 | if slot.qty ~= nil then print("qty : "..slot.qty) end | |
10 | if slot.max_size ~= nil then print("max_size : "..slot.max_size) end | |
11 | if slot.max_dmg ~= nil then print("max_dmg : "..slot.max_dmg) end | |
12 | if slot.raw_name ~= nil then print("raw_name : "..slot.raw_name) end | |
13 | if slot.dmg ~= nil then print("dmg : "..slot.dmg) end | |
14 | if slot.id ~= nil then print("id : "..slot.id) end | |
15 | if slot.name ~= nil then print("name : "..slot.name) end | |
16 | --if slot.mod_id ~= nil then print("mod_id : "..slot.mod_id) end | |
17 | end | |
18 | ||
19 | function emptyJarSlot() | |
20 | local as = chest.getAllStacks(false) | |
21 | for slot,content in pairs(as) do | |
22 | if content.name == "blockJar" then | |
23 | return slot | |
24 | end | |
25 | end | |
26 | return 0 | |
27 | end | |
28 | ||
29 | function init() | |
30 | print("Emptying turtle inventory") | |
31 | for i=1,16 do | |
32 | if turtle.getItemCount(i) > 0 then | |
33 | chest.pullItem(chestToTurtle,i) | |
34 | end | |
35 | end | |
36 | ||
37 | while not turtle.detectUp() do | |
38 | print("No Jar refilling!") | |
39 | ||
40 | while turtle.getItemCount(tSlot) < 1 do | |
41 | print("Retrieving an empty jar from the chest") | |
42 | local ejs =emptyJarSlot() | |
43 | if ejs > 0 then | |
44 | chest.pushItemIntoSlot(chestToTurtle,ejs,tSlot,1) | |
45 | end | |
46 | sleep(1) | |
47 | end | |
48 | print("The empty Jar has been retrieved from the chest") | |
49 | ||
50 | turtle.select(tSlot) | |
51 | print("Place the empty jar for refilling") | |
52 | while not turtle.placeUp() do | |
53 | print("Cannot place the jar. Retry in a few seconds...") | |
54 | sleep(1) | |
55 | end | |
56 | sleep(1) | |
57 | end | |
58 | end | |
59 | ||
60 | function getHerbaLevel(side) | |
61 | return peripheral.call(side,"getAspectCount",aspect) | |
62 | end | |
63 | ||
64 | function getFullJar() | |
65 | if not turtle.detectUp() then | |
66 | print("No jar refilling") | |
67 | return false | |
68 | end | |
69 | ||
70 | while getHerbaLevel(jarSide) < 64 do | |
71 | print("Jar not filled yet. Waiting...") | |
72 | sleep(2) | |
73 | end | |
74 | ||
75 | turtle.select(tSlot) | |
76 | while not turtle.digUp() do | |
77 | print("Cannot dig the jar. Retry in a few seconds...") | |
78 | sleep(1) | |
79 | end | |
80 | if turtle.getItemCount(tSlot) < 1 then | |
81 | print("Jar digged but not found in turtle inventory.") | |
82 | return false | |
83 | end | |
84 | while turtle.getItemCount(tSlot) > 0 do | |
85 | chest.pullItem(chestToTurtle,tSlot) | |
86 | sleep(1) | |
87 | end | |
88 | print("Jar sent to cheest") | |
89 | return true | |
90 | end | |
91 | ||
92 | while true do | |
93 | init() | |
94 | getFullJar() | |
95 | sleep(1) | |
96 | end |