Advertisement
Guest User

face_north

a guest
Mar 22nd, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.84 KB | None | 0 0
  1. function getHeading()
  2.   local startPos = vector.new(gps.locate(3))
  3.   turtle.refuel()
  4.  
  5.   for i=0,2,1 do
  6.     local endPos = tryToMoveForward()  
  7.     if endPos then
  8.       return getDirectionMoved(endPos - startPos)
  9.     end
  10.     turtle.up()
  11.   end
  12.   error('I have failed to get my bearings.')
  13. end
  14.  
  15. local function tryToMoveForward()
  16.   for i=0,3,1 do
  17.     if turtle.forward() then
  18.       local endPos = vector.new(gps.locate(3))
  19.       turtle.back()
  20.       return endPos
  21.     end
  22.    
  23.     turtle.turnRight()
  24.     sleep(1)
  25.   end
  26.  
  27.   return false
  28. end
  29.  
  30. local function getDirectionMoved(diff)  
  31.   if diff.z < 0 then
  32.     return 0
  33.   elseif diff.x > 0 then
  34.     return 1
  35.   elseif diff.z > 0 then
  36.     return 2
  37.   elseif diff.x < 0
  38.     then return 3
  39.   end  
  40.   error('diff of '.. diff.x..', '..diff.z..' indeterminate.  I tried.')
  41. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement