Ertyui

Mine

Jan 19th, 2013
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.72 KB | None | 0 0
  1. ------------
  2. --slot 1 is crapslot
  3.  
  4. direction = "north"
  5. tdirection = "north"
  6. x = 0
  7. y = 0
  8. z = 0
  9.  
  10. lx = 0
  11. ly = 0
  12. lz = 0
  13.  
  14. tx = 0
  15. ty = 0
  16. tz = 0
  17. gotnumber = false
  18. dropCobble = true
  19. finished = false
  20. movedown = false
  21. full = false
  22. fuelComeBack = true
  23. function mine()
  24.     turtle.dig()
  25. end
  26.  
  27. function compareItems()
  28.  
  29.     if not turtle.detect() then return true end
  30.     for i=1 , 16 do
  31.         turtle.select(i)
  32.         amount = turtle.getItemCount(i)
  33.         if amount == 0 then return true end
  34.         if turtle.compare() and amount<64 then return true end
  35.        
  36.     end
  37.     return false
  38. end
  39. function dumpItems()
  40.     if not dropCobble then
  41.         turtle.select(1)
  42.         if not turtle.drop() and turtle.getItemCount(i) > 0 then
  43.             return false
  44.         end
  45.     end
  46.     for i=2 , 16 do
  47.         turtle.select(i)
  48.         if not turtle.drop() and turtle.getItemCount(i) > 0 then
  49.             return false
  50.         end
  51.     end
  52.     return true
  53. end
  54. function goFurther()
  55.     turtle.turnRight()
  56.     turtle.turnRight()
  57.     while ly < ty do
  58.         turtle.down()
  59.         ly = ly + 1
  60.     end
  61.     if tdirection == "west" then tz = tz - 1 end
  62.     while lz < tz do
  63.        
  64.         turtle.forward()
  65.         lz = lz + 1
  66.     end
  67.     turtle.turnRight()
  68.     while lx < tx do
  69.        
  70.         turtle.forward()
  71.         lx = lx + 1
  72.     end
  73.     direction = "east"
  74.     if tdirection == "north" then
  75.        
  76.         turtle.turnLeft()
  77.         direction = "north"
  78.     end
  79.     if tdirection == "west" then
  80.        
  81.         turtle.turnLeft()
  82.        
  83.         turtle.forward()
  84.         lz = lz + 1
  85.         turtle.turnLeft()
  86.         direction = "west"
  87.     end
  88.  
  89. end
  90. function goBack()
  91.  
  92.     tx = lx
  93.     ty = ly
  94.     tz = lz
  95.     tdirection = direction
  96.     if direction == "west" then
  97.         turtle.turnLeft()
  98.         turtle.forward()
  99.         turtle.turnRight()
  100.     end
  101.  
  102.     --- first go back to x = 0
  103.     if direction == "north" then
  104.         direction = "west"
  105.         turtle.turnLeft()
  106.     end
  107.     if direction == "east" then
  108.         direction = "west"
  109.         turtle.turnLeft()
  110.         turtle.turnLeft()
  111.     end
  112.  
  113.     while lx > 0 do
  114.         turtle.forward()
  115.         lx = lx - 1
  116.     end
  117.     turtle.turnLeft()
  118.    
  119.     --- then go back to chest
  120.     while lz > 0 do
  121.         turtle.forward()
  122.         lz = lz - 1
  123.     end
  124.     if ly == y  and not full then
  125.         finished = true
  126.         print("I'm at the correct level")
  127.     end
  128.    
  129.     tlevel = ly
  130.     while ly > 0 do
  131.         turtle.up()
  132.         ly = ly - 1
  133.     end
  134.     if not dumpItems() then
  135.         finished = true
  136.         print("I couldn't drop my items")
  137.     end
  138.     turtle.select(1)
  139.     if full then
  140.         goFurther()
  141.     elseif not finished and movedown then
  142.         tlevel = tlevel + 1
  143.         while ly < tlevel do
  144.             turtle.digDown()
  145.             turtle.down()  
  146.             ly = ly + 1
  147.         end
  148.         turtle.turnRight()
  149.         turtle.turnRight()
  150.         direction = "north"
  151.     end
  152.     movedown = false
  153.     full = false
  154. end
  155.  
  156. function move()
  157.     while not turtle.forward() do
  158.         mine()
  159.     end
  160.     if direction == "north" then lz = lz + 1
  161.     elseif direction == "west" then lx = lx - 1
  162.     elseif direction == "east" then lx = lx + 1
  163.     else lz = lz - 1
  164.     end
  165.    
  166.     if lx == 0 and direction == "north" then
  167.         turtle.turnRight()
  168.         direction = "east"
  169.     end
  170.    
  171.     if lx == x and direction == "north" then
  172.         turtle.turnLeft()
  173.         direction = "west"
  174.     end
  175.    
  176.     if lx == 0 and direction == "west" then
  177.    
  178.         turtle.turnRight()
  179.         direction = "north"
  180.         if lz == z then
  181.             movedown = true
  182.             goBack()
  183.         end
  184.     end
  185.    
  186.     if lx == x  and direction == "east" then
  187.        
  188.         turtle.turnLeft()
  189.         direction = "north"    
  190.         if lz == z then
  191.             movedown = true
  192.             goBack()
  193.         end
  194.        
  195.     end
  196.    
  197.  
  198. end
  199. function checkItems()
  200.     for i=1 , 16 do
  201.         n = turtle.getItemCount(i)
  202.         if n == 64 then
  203.             if i == 1 and dropCobble == true then
  204.                 turtle.select(1)
  205.                 turtle.drop(63)            
  206.             else
  207.                 full = true
  208.                 goBack()
  209.             end        
  210.         end
  211.     end
  212. end
  213.  
  214. function checkFuel()
  215.  
  216.     fuelNeeded = lx+lz+ly+5
  217.     fuelLevel = turtle.getFuelLevel()
  218.     if fuelComeBack and fuelLevel<fuelNeeded then
  219.         finished = true
  220.         goBack()
  221.         print("Fuel is up")
  222.     elseif fuelLevel<1 then
  223.         finished = true
  224.         print("Fuel is up")
  225.     end
  226.  
  227.  
  228. end
  229.  
  230.  
  231. ----start
  232. turtle.select(1)
  233. term.clear()
  234. term.setCursorPos(1,1)
  235. print("What dimensions do you want?")
  236. print("")
  237.  
  238.  
  239. while not gotnumber do
  240.     term.write("X: ")
  241.     x = io.read()
  242.     gotnumber = true
  243.     if not tonumber(x) or x == "0" then
  244.         print("Please enter a number higher than 0")
  245.         gotnumber = false
  246.         end
  247.     end
  248. gotnumber = false
  249. while not gotnumber do
  250.     term.write("Y: ")
  251.     y = io.read()
  252.     gotnumber = true
  253.     if not tonumber(y) or y == "0" then
  254.         print("Please enter a number higher than 0")
  255.         gotnumber = false
  256.         end
  257.     end
  258.  
  259. gotnumber = false
  260. while not gotnumber do
  261.     term.write("Z: ")
  262.     z = io.read()
  263.     gotnumber = true
  264.     if not tonumber(z) or z == "0" then
  265.         print("Please enter a number higher than 0")
  266.         gotnumber = false
  267.         end
  268.     end
  269. answer = "no"
  270. gotnumber = false
  271. while not gotnumber do
  272.     term.write("Drop cobblstone? ")
  273.     answer = io.read()
  274.     gotnumber = true
  275.     if answer == "no" or answer == "yes" or answer == "y" or answer == "n" or answer == "true" or answer == "false" or answer == "1" or answer == "0" then break end
  276.     print("Please say yes or no")
  277.     gotnumber = false
  278. end
  279. if answer == "yes" or answer == "y" or answer == "true" or answer == "1" then dropCobble = true else dropCobble = false end
  280.  
  281. answer = "no"
  282. gotnumber = false
  283. while not gotnumber do
  284.     print("Come back when fuel is up? ")
  285.     answer = io.read()
  286.     gotnumber = true
  287.     if answer == "no" or answer == "yes" or answer == "y" or answer == "n" or answer == "true" or answer == "false" or answer == "1" or answer == "0" then break end
  288.     print("Please say yes or no")
  289.     gotnumber = false
  290. end
  291. if answer == "yes" or answer == "y" or answer == "true" or answer == "1" then fuelComeBack = true else fuelComeBack = false end
  292.  
  293.  
  294. x = math.abs(tonumber(x))-1
  295. y = math.abs(tonumber(y))-1
  296. z = math.abs(tonumber(z))
  297.  
  298.  
  299. while not finished do
  300.     --if not compareItems() then full = true goBack() end
  301.     mine()
  302.     checkItems()
  303.     move() 
  304.     checkFuel()
  305.    
  306. end
  307. turtle.turnRight()
  308. turtle.turnRight()
Advertisement
Add Comment
Please, Sign In to add comment