Advertisement
Guest User

startup.lua

a guest
Feb 19th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.08 KB | None | 0 0
  1. local originX = -2511
  2. local originY = 58
  3. local originZ = 972
  4.  
  5. local x, y, z
  6.  
  7. function setCoordinates()
  8.     repeat
  9.         print("Locating (" .. textutils.formatTime(os.time(), false) .. ")")
  10.         x, y, z = gps.locate(5)
  11.     until not((not x) or (not y) or (not z))
  12. end
  13.  
  14. function distanceToOrigin()
  15.     return math.abs((originX - x) + (originY - y) + (originZ - z))
  16. end
  17.  
  18. function forward()
  19.     turtle.forward()
  20.     setCoordinates()
  21. end
  22. function back()
  23.     turtle.back()
  24.     setCoordinates()
  25. end
  26. function up()
  27.     turtle.up()
  28.     setCoordinates()
  29. end
  30. function down()
  31.     turtle.down()
  32.     setCoordinates()
  33. end
  34.  
  35. function completeRefuel()
  36.     for slot = 1, 16 do
  37.         turtle.select(slot)
  38.         if turtle.refuel(0) then
  39.             turtle.refuel()
  40.         end
  41.     end
  42. end
  43.  
  44. function checkForOre(success, data)    
  45.     if success then
  46.         if string.find(data.name, "ore") then
  47.             return true
  48.         end
  49.     end    
  50.     return false
  51. end
  52.  
  53. function mineOres()
  54.     local success, data
  55.    
  56.     success, data = turtle.inspect()
  57.     if checkForOre(success, data) then
  58.         turtle.dig()
  59.         forward()
  60.         mineOres()
  61.         back()
  62.     end
  63.    
  64.     turtle.turnRight()
  65.     success, data = turtle.inspect()
  66.     if checkForOre(success, data) then
  67.         turtle.dig()
  68.         forward()
  69.         mineOres()
  70.         back()
  71.     end
  72.    
  73.     turtle.turnRight()
  74.     turtle.turnRight()
  75.     success, data = turtle.inspect()
  76.     if checkForOre(success, data) then
  77.         turtle.dig()
  78.         forward()
  79.         mineOres()
  80.         back()
  81.     end
  82.  
  83.     turtle.turnRight()
  84.    
  85.     success, data = turtle.inspectUp()
  86.     if checkForOre(success, data) then
  87.         turtle.digUp()
  88.         up()
  89.         mineOres()
  90.         down()
  91.     end
  92.    
  93.     success, data = turtle.inspectDown()
  94.     if checkForOre(success, data) then
  95.         turtle.digDown()
  96.         down()
  97.         mineOres()
  98.         up()
  99.     end        
  100. end
  101.  
  102. function returnToOrigin()
  103.     if y > originY then
  104.         repeat
  105.             turtle.digDown()
  106.             down()
  107.         until y == originY
  108.     elseif y < originY then
  109.         repeat
  110.             turtle.digUp()
  111.             up()
  112.         until y  == originY
  113.     end
  114.    
  115.     local oldDistanceToOrigin
  116.     while x ~= originX and z~= originZ do
  117.         print("A")
  118.         oldDistanceToOrigin = distanceToOrigin()
  119.         turtle.dig()
  120.         forward()
  121.         if distanceToOrigin() > oldDistanceToOrigin then
  122.             turtle.turnRight()
  123.             turtle.turnRight()
  124.         end
  125.         if x == originX or z == originZ then
  126.             turtle.turnRight()
  127.         end
  128.     end
  129.    
  130.     for slot = 1, 16 do
  131.         turtle.select(slot)
  132.         if not turtle.refuel(0) then
  133.             turtle.dropUp()
  134.         end
  135.     end          
  136. end
  137.  
  138. setCoordinates()
  139.  
  140. completeRefuel()
  141. returnToOrigin()
  142.  
  143. while true do
  144.     completeRefuel()
  145.     if distanceToOrigin() >= turtle.getFuelLevel() then
  146.         returnToOrigin()    
  147.     end
  148.    
  149.     mineOres()
  150.     turtle.dig()
  151.     turtle.digDown()
  152.     forward()
  153. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement