Joshua Moerman
13 years ago
2 changed files with 44 additions and 13 deletions
@ -1,24 +1,55 @@ |
|||
local args = { ... } |
|||
local threshold = 5 |
|||
|
|||
local function count_total() |
|||
local c = 0 |
|||
for i = 1, 9 do c = c + turtle.getItemCount(i) end |
|||
return c |
|||
end |
|||
|
|||
local function count_space() |
|||
local c = 0 |
|||
for i = 1, 9 do c = c + turtle.getItemSpace(i) end |
|||
return c |
|||
end |
|||
|
|||
rednet.open("right") |
|||
while true do |
|||
-- we are using wireless to get the distance |
|||
-- so the master should be aligned with the slaves |
|||
local id, mess, dist = rednet.receive() |
|||
local id, mess, dist = rednet.receive(1) |
|||
if mess == args[1] then |
|||
rednet.send(id, "ack") |
|||
turtle.up() |
|||
for i = 1, dist do turtle.back() end |
|||
if count_total() < threshold then |
|||
rednet.send(id, "empty") |
|||
else |
|||
rednet.send(id, "ack") |
|||
|
|||
-- Wait for the pipes to be empty (and not leak) |
|||
rs.setOutput("left", false) |
|||
sleep(1) |
|||
|
|||
print("I will leave again in 5 seconds...") |
|||
sleep(5) |
|||
print("Bye!") |
|||
-- GO!!! |
|||
turtle.up() |
|||
for i = 1, dist do turtle.forward() end |
|||
|
|||
for i = 1, dist do turtle.forward() end |
|||
turtle.down() |
|||
rednet.send(id, "return") |
|||
print("I will leave again in 5 seconds...") |
|||
sleep(5) |
|||
print("Bye!") |
|||
|
|||
for i = 1, dist do turtle.back() end |
|||
turtle.down() |
|||
rednet.send(id, "return") |
|||
print("Back home :)") |
|||
end |
|||
end |
|||
end |
|||
|
|||
-- TODO: activate redstone for the buildcraft engine |
|||
-- This will power the engine next to the turtle |
|||
-- We don't want to fill if we're full |
|||
-- NOTE: we can't use the side of the modem... |
|||
if count_space() > threshold then |
|||
rs.setOutput("left", true) |
|||
else |
|||
rs.setOutput("left", false) |
|||
end |
|||
end |
|||
|
|||
|
Reference in new issue