Browse Source

slaves work nicely now

master
Joshua Moerman 13 years ago
parent
commit
75f55e6d38
  1. 2
      bring
  2. 55
      slave

2
bring

@ -19,7 +19,7 @@ if message == "ack" then
print("He returned safely :)") print("He returned safely :)")
elseif message == "empty" then elseif message == "empty" then
printf("There is no " .. args[1]) print("There is no " .. args[1])
else else
print("No slave responded for " .. args[1]) print("No slave responded for " .. args[1])
end end

55
slave

@ -1,24 +1,55 @@
local args = { ... } 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") rednet.open("right")
while true do while true do
-- we are using wireless to get the distance -- we are using wireless to get the distance
-- so the master should be aligned with the slaves -- 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 if mess == args[1] then
rednet.send(id, "ack") if count_total() < threshold then
turtle.up() rednet.send(id, "empty")
for i = 1, dist do turtle.back() end 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...") -- GO!!!
sleep(5) turtle.up()
print("Bye!") for i = 1, dist do turtle.forward() end
for i = 1, dist do turtle.forward() end print("I will leave again in 5 seconds...")
turtle.down() sleep(5)
rednet.send(id, "return") print("Bye!")
for i = 1, dist do turtle.back() end
turtle.down()
rednet.send(id, "return")
print("Back home :)")
end
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