nSun

Turtle cmdline moving controller

Jul 28th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.76 KB | None | 0 0
  1. -- CCTurtle 1.7
  2. -- Turtle command line moving controller
  3. --
  4. -- ex:
  5. -- turtleMove left forward left forward 2
  6. --
  7. -- author: nSun
  8. -- date july-2016
  9.  
  10.  
  11. local tArgs = {...}
  12.  
  13. if tArgs==nil or #tArgs<1 or tArgs[1]=="help" then
  14.   local usage=[[Usage:
  15. turtleMove <str:cmd> <num:rep> ...
  16. <cmd> list:
  17.   -Moves: forward, back, up, down
  18.   -Rotations: left, right, uTurn
  19. <rep>: optional
  20.   repeat previous cmd
  21.  
  22. ex:
  23. turtleMove left forward 2
  24.  
  25. Turtle mimic "No" on invalid commands]]
  26.   textutils.pagedPrint(usage)
  27.   return
  28. end
  29.  
  30. local i,j,cmd,n,skip=1,1,"",nil,false
  31. for i=1,#tArgs do
  32.   if not skip then
  33.     cmd=string.lower(tArgs[i])
  34.     n=i<#tArgs and tonumber(tArgs[i+1]) or 1
  35.     if cmd=="forward" then
  36.       for j=1,n do
  37.         if not turtle.forward() then
  38.           return false
  39.         end
  40.       end
  41.     elseif cmd=="back" then
  42.       for j=1,n do
  43.         if not turtle.back() then
  44.           return false
  45.         end
  46.       end
  47.     elseif cmd=="up" then
  48.       for j=1,n do
  49.         if not turtle.up() then
  50.           return false
  51.         end
  52.       end
  53.     elseif cmd=="down" then
  54.       for j=1,n do
  55.         if not turtle.down() then
  56.           return false
  57.         end
  58.       end
  59.     elseif cmd=="left" then
  60.       for j=1,n do
  61.         turtle.turnLeft()
  62.       end
  63.     elseif cmd=="right" then
  64.       for j=1,n do
  65.         turtle.turnRight()
  66.       end
  67.     elseif cmd=="uturn" then
  68.       for j=1,n do
  69.         turtle.turnRight()
  70.         turtle.turnRight()
  71.       end
  72.     else
  73.       for j=1,3 do
  74.         turtle.turnLeft()
  75.         turtle.turnRight()
  76.       end
  77.     end
  78.     if n>1 then
  79.       skip=true
  80.       if tArgs[i+1]==nil then
  81.         break
  82.       end
  83.     else
  84.       skip=false
  85.     end
  86.   else
  87.     skip=false
  88.   end
  89. end
  90. return true
Advertisement
Add Comment
Please, Sign In to add comment