Advertisement
Twigister

ForAbby/Twig Remote

Aug 15th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.31 KB | None | 0 0
  1. local function init()
  2.     rednet.open("back")
  3. end
  4.  
  5. local function finish()
  6.     rednet.close("back")
  7.     write("Goodbye!")
  8.     sleep(5)
  9.     os.shutdown()
  10. end
  11.  
  12. local function get_id()
  13.     local ID
  14.     local sender, message, protocol
  15.  
  16.     write("What is the turtle's ID\n")
  17.     ID = tonumber(read())
  18.     rednet.send(ID, "connect")
  19.     sender, message, protocol = rednet.receive(5)
  20.     if message == "OK" then
  21.         write("Connected...\n")
  22.         return ID
  23.     else
  24.         return -1
  25.     end
  26. end
  27.  
  28. local function get_key()
  29.     local event, param
  30.    
  31.     while true do
  32.         event, param = os.pullEvent("key")
  33.         if event=="key" then
  34.             return param
  35.         end
  36.     end
  37. end
  38.  
  39. local function write_turtle_info(message, ID)
  40.     write("Penny")
  41.     shell.run("clear")
  42.     write("Connected with "..ID.."\n\n")
  43.     write("Fuel: "..message[1].."/"..message[2].."\n")
  44.     write("Current slot: "..message[3].."\n")
  45.     if message[4] then
  46.       write("Slot content: "..message[4].name.."\n")
  47.     else
  48.       write("Slot content: Empty")
  49.     end
  50.     write("Slot stack size: "..message[5].."/"..message[5]+message[6].."\n")
  51.     write("Front: ")
  52.     if message[7][1] then
  53.         write(message[7][2].name.."\n")
  54.     else
  55.         write("air\n")
  56.     end
  57.     write("Top: ")
  58.     if message[8][1] then
  59.         write(message[8][2].name.."\n")
  60.     else
  61.         write("air\n")
  62.     end
  63.     write("Bottom: ")
  64.     if message[9][1] then
  65.         write(message[9][2].name.."\n")
  66.     else
  67.         write("air\n")
  68.     end
  69.     if not message[10][1] then
  70.         message[10][1], message[10][2], message[10][3] = "? ", "? ", "?"
  71.     end
  72.     write("X: "..message[10][1].."Y: "..message[10][2].."Z: "..message[10][3].."\n")
  73.     write("\nMessage:\n"..message[11].."\n")
  74. end
  75.  
  76. local function send_event(ID, event)
  77.     local message
  78.    
  79.     rednet.send(ID, event)
  80.     if event ~= 28 then
  81.         ID, message = rednet.receive()
  82.         write_turtle_info(message, ID)
  83.     end
  84. end
  85.  
  86. local function loop(ID)
  87.     local event = 0
  88.  
  89.     while event~=28 do
  90.         event = get_key()
  91.         write("Calculating...\n")
  92.         send_event(ID, event)
  93.        
  94.     end
  95. end
  96.  
  97. local function main()
  98.     local ID = -1
  99.  
  100.     init()
  101.     while ID==-1 do
  102.         ID = get_id()
  103.     end
  104.     loop(ID)
  105.     finish()
  106. end
  107.  
  108. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement