-- ##############################
-- msg_sender
-- version 0.5
-- http://hevohevo.hatenablog.com/
rednet.open("right")
local args = {...}
assert(args and #args>0, "msg_sender <receiver_id>")
local receiver_id = tonumber(args[1])
local trans_tbl = {
w="turtle.forward()",
a="turtle.turnLeft(); turtle.forward(); turtle.turnRight()",
s="turtle.back()",
d="turtle.turnRight(); turtle.forward(); turtle.turnLeft()",
space="turtle.up()",
leftShift="turtle.down()",
left="turtle.turnRight()",
right="turtle.turnLeft()",
z="shell.run(\'dance\')", -- let\'s dance!
x="shell.run(\'boring\')", -- run receiver\'s other program
c="hevo()" -- call receiver\'s function
}
print("Press \'q\' to terminate")
while true do
local event, scancode = os.pullEvent("key")
local keyname = keys.getName(scancode)
local message = trans_tbl[keyname]
if keyname == "enter" and not message then
print(" Start: interactive mode (\'q\' to terminate)")
write(" > ")
message = io.read()
print(" Finish: interactive mode")
end
if keyname == "q" or message == "q" then break end
print(keyname," => ",message or "none")
if message then
rednet.send(receiver_id, message)
end
end
print("Terminated")