zootsuitman

Turtle Control Control

Jan 19th, 2016
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.82 KB | None | 0 0
  1. --Turtle Side
  2. --zootsuitman 1/19/16
  3.  
  4. local name =os.getComputerLabel()
  5. local loop =true
  6. local attack =false
  7. local direction ="f"
  8. local currentSlot =1
  9.  
  10. function clear()
  11.     term.clear()
  12.     term.setCursorPos(1,1)
  13. end
  14.  
  15. clear()
  16. term.setCursorPos(1,1)
  17. print(name .. " OS")
  18. write("Remote Mode Activated\nWaiting For Connection...")
  19.  
  20. rednet.open("right")
  21. rednet.host(name, name)
  22.  
  23. turtle.select(1)
  24.  
  25. local id,msg,trash =rednet.receive(name)
  26. rednet.send(id,turtle.getFuelLevel())
  27.  
  28. term.setCursorPos(1,3)
  29. write("Connection Established\t\t\t")
  30.  
  31. if msg == "connect2" then attack =true end
  32.  
  33. while loop do
  34.     while true do
  35.         id,msg,trash =rednet.receive(name)
  36.        
  37.         --write("\n" .. msg)
  38.    
  39.     --Movement--
  40.         if msg == "f" then turtle.forward() break end
  41.         if msg == "b" then turtle.back() break end
  42.         if msg == "r" then turtle.turnRight() break end
  43.         if msg == "l" then turtle.turnLeft() break end
  44.         if msg == "u" then turtle.up() break end
  45.         if msg == "d" then turtle.down() break end
  46.        
  47.     --Actions--
  48.         if msg == "m" then
  49.             if attack then
  50.                 if direction == "f" then turtle.attack() break end
  51.                 if direction == "u" then turtle.attackUp() break end
  52.                 if direction == "d" then turtle.attackDown() break end
  53.             else
  54.                 if direction == "f" then turtle.dig() break end
  55.                 if direction == "u" then turtle.digUp() break end
  56.                 if direction == "d" then turtle.digDown() break end
  57.             end
  58.         end
  59.        
  60.         if msg == "place" then
  61.             if direction == "f" then turtle.place() break end
  62.             if direction == "u" then turtle.placeUp() break end
  63.             if direction == "d" then turtle.placeDown() break end
  64.         end
  65.        
  66.         if msg == "pickup" then
  67.             if direction == "f" then turtle.suck() break end
  68.             if direction == "u" then turtle.suckUp() break end
  69.             if direction == "d" then turtle.suckDown() break end
  70.         end
  71.        
  72.        
  73.         if msg == "fuel" then
  74.             turtle.refuel(1)
  75.             rednet.send(id,turtle.getFuelLevel())
  76.         end
  77.        
  78.     --Inventory--
  79.         if msg ==1 or msg ==2 or msg ==3 or msg ==4 or msg ==5 or msg ==6 or msg ==7 or msg ==8 or msg ==9 or msg ==10 or msg ==11 or msg ==12 or msg ==13 or msg ==14 or msg ==15 or msg ==16 then
  80.             turtle.select(msg)
  81.             currentSlot =msg
  82.             break
  83.         end
  84.        
  85.     --Directions--
  86.         if msg =="mf" then direction ="f" break end
  87.         if msg =="md" then direction ="d" break end
  88.         if msg =="mu" then direction ="u" break end
  89.    
  90.     --Get Inventory--
  91.         if msg =="getInv" then
  92.             local inv ={}
  93.             for i=1,16 do
  94.                 turtle.select(i)
  95.                 local slot =turtle.getItemDetail()
  96.                
  97.                 if slot == nil then
  98.                     slot ={}
  99.                     slot.name ="empty:empty"
  100.                     slot.damage =60
  101.                     slot.count =0
  102.                 end
  103.                 table.insert(inv, slot)
  104.             end
  105.            
  106.             local stringInv =textutils.serialize(inv)
  107.             rednet.send(id,stringInv)
  108.            
  109.             turtle.select(currentSlot)
  110.         end
  111.        
  112.     --Reset--
  113.         if msg =="reset" then
  114.             os.reboot()
  115.         end
  116.    
  117.     end
  118. end
Advertisement
Add Comment
Please, Sign In to add comment