Advertisement
leo1553

Untitled

Jan 16th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. -- Advaced Turtle Moviment
  2. -- by leo1553
  3. posX = 0
  4. posY = 0
  5. posZ = 0
  6. rot = 0
  7. local rotNames = {"Front", "Left", "Back", "Right"}
  8.  
  9. --local args = {...}
  10.  
  11. -- Move Functions
  12. function forward()
  13. if(turtle.forward() == true) then
  14. if(rot == 0) then
  15. posX = posX + 1
  16. elseif(rot == 1) then
  17. posZ = posZ + 1
  18. elseif(rot == 2) then
  19. posX = posX - 1
  20. elseif(rot == 3) then
  21. posZ = posZ - 1
  22. end
  23. return true
  24. end
  25. return false
  26. end
  27.  
  28. function back()
  29. if(turtle.back() == true) then
  30. if(rot == 0) then
  31. posX = posX - 1
  32. elseif(rot == 1) then
  33. posZ = posZ - 1
  34. elseif(rot == 2) then
  35. posX = posX + 1
  36. elseif(rot == 3) then
  37. posZ = posZ + 1
  38. end
  39. return true
  40. end
  41. return false
  42. end
  43.  
  44. function up()
  45. if(turtle.up() == true) then
  46. posY = posY + 1
  47. return true
  48. end
  49. return false
  50. end
  51.  
  52. function down()
  53. if(turtle.down() == true) then
  54. posY = posY - 1
  55. return true
  56. end
  57. return false
  58. end
  59.  
  60. function turnLeft()
  61. turtle.turnLeft()
  62. rot = rot - 1
  63. if(rot < 0) then
  64. rot = 3
  65. end
  66. end
  67.  
  68. function turnRight()
  69. turtle.turnRight()
  70. rot = rot + 1
  71. if(rot > 3) then
  72. rot = 0
  73. end
  74. end
  75.  
  76. -- Adv Move Functions
  77. function lookAt(finalRot)
  78. if(rot == finalRot) then
  79. return
  80. end
  81.  
  82. while(rot ~= finalRot) do
  83. turnLeft()
  84. end
  85. end
  86.  
  87. function moveToX(x)
  88. if(x > posX) then
  89. lookAt(0)
  90. else
  91. lookAt(2)
  92. end
  93. while(posX ~= x) do
  94. forward()
  95. printPos()
  96. end
  97. end
  98.  
  99. function moveToY(y)
  100. if(y < posY) then
  101. while(posY ~= y) do
  102. down()
  103. printPos()
  104. end
  105. else
  106. while(posY ~= y) do
  107. up()
  108. printPos()
  109. end
  110. end
  111. end
  112.  
  113. function moveToZ(z)
  114. if(z < posZ) then
  115. lookAt(3)
  116. else
  117. lookAt(1)
  118. end
  119. while(posZ ~= z) do
  120. forward()
  121. printPos()
  122. end
  123. end
  124.  
  125. function moveTo(x, y, z) -- Move Only (Do Not Dig)
  126. moveToX(x)
  127. moveToZ(z)
  128. moveToY(y)
  129. end
  130.  
  131. -- Debug Functions
  132. function getRotationName(rotation)
  133. return rotNames[rotation + 1]
  134. end
  135.  
  136. function printPos()
  137. print("Current Pos:".. posX ..", ".. posY ..", ".. posZ .." - ".. getRotationName(rot))
  138. end
  139.  
  140. -- API End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement