document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. -- ##############################
  2. -- msg_sender
  3. -- version 0.5
  4. -- http://hevohevo.hatenablog.com/
  5.  
  6. rednet.open("right")
  7.  
  8. local args = {...}
  9. assert(args and #args>0, "msg_sender <receiver_id>")
  10. local receiver_id = tonumber(args[1])
  11.  
  12. local trans_tbl = {
  13.   w="turtle.forward()",
  14.   a="turtle.turnLeft(); turtle.forward(); turtle.turnRight()",
  15.   s="turtle.back()",
  16.   d="turtle.turnRight(); turtle.forward(); turtle.turnLeft()",
  17.   space="turtle.up()",
  18.   leftShift="turtle.down()",
  19.   left="turtle.turnRight()",
  20.   right="turtle.turnLeft()",
  21.   z="shell.run(\'dance\')", -- let\'s dance!
  22.   x="shell.run(\'boring\')", -- run receiver\'s other program
  23.   c="hevo()" -- call receiver\'s function
  24. }
  25.  
  26. print("Press \'q\' to terminate")
  27. while true do
  28.   local event, scancode = os.pullEvent("key")
  29.   local keyname = keys.getName(scancode)
  30.   local message = trans_tbl[keyname]
  31.   if keyname == "enter" and not message then
  32.     print(" Start: interactive mode (\'q\' to terminate)")
  33.     write("  > ")
  34.     message = io.read()
  35.     print(" Finish: interactive mode")
  36.   end
  37.   if keyname == "q" or message == "q" then break end
  38.   print(keyname," => ",message or "none")
  39.  
  40.   if message then
  41.     rednet.send(receiver_id, message)
  42.   end
  43. end
  44. print("Terminated")
');