Advertisement
bcash8

Cow Farmer

Jan 5th, 2022 (edited)
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.91 KB | None | 0 0
  1. local HOME = vector.new(7,69,124)
  2. local STARTROW1 = vector.new(6, 71, 122)
  3. local ENDROW1 = vector.new(-14, 71, 122)
  4. local STARTROW2 = vector.new(-14, 71, 121)
  5. local ENDROW2 = vector.new(6, 71, 121)
  6.  
  7. local pos, dir
  8.  
  9. function init()
  10.     main()
  11. end
  12.  
  13. function getOrientation()
  14.     print("getting Orientation")
  15.     loc1 = vector.new(gps.locate(2, false))
  16.     if not turtle.forward() then
  17.         for j=1,6 do
  18.                 if not turtle.forward() then
  19.                         turtle.turnRight()
  20.              else break end
  21.         end
  22.     end
  23.     loc2 = vector.new(gps.locate(2, false))
  24.     heading = loc2 - loc1
  25.     return ((heading.x + math.abs(heading.x) * 2) + (heading.z + math.abs(heading.z) * 3))
  26. end
  27.  
  28. function forward()
  29.     while not turtle.forward() do end
  30.     local heading = vector.new(0,0,0)
  31.     if dir == 1 then
  32.         heading = vector.new(-1,0,0)
  33.     elseif dir == 2 then
  34.         heading = vector.new(0,0,-1)
  35.     elseif dir == 3 then
  36.         heading = vector.new(1,0,0)
  37.     elseif dir == 4 then
  38.         heading = vector.new(0,0,1)
  39.     end
  40.     pos = pos + heading
  41. end
  42.  
  43. function back()
  44.     while not turtle.back() do end
  45.     if dir == 1 then
  46.         heading = vector.new(-1,0,0)
  47.     elseif dir == 2 then
  48.         heading = vector.new(0,0,-1)
  49.     elseif dir == 3 then
  50.         heading = vector.new(1,0,0)
  51.     elseif dir == 4 then
  52.         heading = vector.new(0,0,1)
  53.     end
  54.     pos = pos - heading
  55. end
  56.  
  57. function up()
  58.     while not turtle.up() do end
  59.     pos = pos + vector.new(0,1,0)
  60. end
  61.  
  62. function down()
  63.     while not turtle.down() do end
  64.     pos = pos - vector.new(0,1,0)
  65. end
  66.  
  67. function left()
  68.     turtle.turnLeft()
  69.     dir = dir - 1
  70.     if dir < 1 then dir = dir + 4 end
  71. end
  72.  
  73. function right()
  74.     turtle.turnRight()
  75.     dir = dir + 1
  76.     if dir > 4 then dir = dir - 4 end
  77. end
  78.  
  79. function setDir(destDir)
  80.     while dir ~= destDir do
  81.         right()
  82.     end
  83. end
  84.  
  85. function goto(vec, finalDir)
  86.     if pos.x < vec.x then
  87.         setDir(3)
  88.     elseif pos.x > vec.x then
  89.         setDir(1)
  90.     end
  91.  
  92.     while pos.x ~= vec.x do
  93.         forward()
  94.     end
  95.  
  96.     if pos.z > vec.z then
  97.         setDir(2)
  98.     elseif pos.z < vec.z then
  99.         setDir(4)
  100.     end
  101.    
  102.     while pos.z ~= vec.z do
  103.         forward()
  104.     end
  105.  
  106.     while pos.y > vec.y do
  107.         down()
  108.     end
  109.    
  110.     while pos.y < vec.y do
  111.         up()
  112.     end
  113.  
  114.     setDir(finalDir)
  115. end
  116.  
  117. function goHome()
  118.     goto(HOME, 4)
  119. end
  120.  
  121. function makeARound()
  122.     goto(STARTROW1, 1)
  123.     while pos ~= ENDROW1 do
  124.         while turtle.attackDown() do end
  125.         forward()
  126.     end
  127.     goto(STARTROW2, 3)
  128.     while pos ~= ENDROW2 do
  129.         while turtle.attackDown() do end
  130.         forward()
  131.     end
  132.     goHome()
  133. end
  134.  
  135. function main()
  136.     while true do
  137.         makeARound()
  138.         sleep(120)
  139.     end
  140. end
  141.  
  142. dir = getOrientation()
  143. pos = vector.new(gps.locate())
  144.  
  145. print(dir)
  146. print(pos)
  147. init()
  148.  
  149.  
  150.  
  151.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement