Advertisement
HappySunChild

Miner Turtle Program

Jun 22nd, 2022 (edited)
1,092
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.28 KB | None | 0 0
  1. local args = { ... }
  2.  
  3. local X_Size = tonumber(args[1] or 10)
  4. local Y_Size = tonumber(args[2] or 1)
  5. local Z_Size = tonumber(args[3] or X_Size)
  6.  
  7. local requiredFuel = math.abs(X_Size * Z_Size * Y_Size)
  8.  
  9. term.clear()
  10. term.setCursorPos(1, 1)
  11.  
  12. print("An area of " .. X_Size .. " by " .. Y_Size .. " by " .. Z_Size .. " requires " .. requiredFuel .. " fuel.")
  13. print("Currently there is " ..
  14.     (turtle.getFuelLevel() >= requiredFuel and "enough" or "not enough") .. " fuel to dig this area out.")
  15. print("Current Fuel level: " .. turtle.getFuelLevel())
  16. print("After Fuel Level: " .. turtle.getFuelLevel() - requiredFuel)
  17. print("")
  18.  
  19. function math.sign(x)
  20.     return (x > 0) and 1 or (x < 0) and -1 or 0
  21. end
  22.  
  23. function math.divisibleBy(x, m)
  24.     return (x % m == 0)
  25. end
  26.  
  27. function math.even(x)
  28.     return (x % 2 == 0)
  29. end
  30.  
  31. if turtle.getFuelLevel() >= requiredFuel then
  32.     for y = 1, math.abs(Y_Size) do
  33.         local z_start = 1
  34.  
  35.         for z = z_start, Z_Size do
  36.             for x = math.even(z) and X_Size or 1, math.even(z) and 1 or X_Size, math.even(z) and -1 or 1 do
  37.                 --print(string.format("X: %s\nY: %s\nZ: %s",x,y,z))
  38.                 turtle.dig()
  39.                 turtle.digDown()
  40.                 turtle.digUp()
  41.                 repeat turtle.dig() until turtle.forward()
  42.             end
  43.  
  44.             turtle.digUp()
  45.             turtle.digDown()
  46.  
  47.             if z ~= Z_Size then
  48.                 if z % 2 == 0 then
  49.                     turtle.turnLeft()
  50.                     turtle.dig()
  51.                     turtle.forward()
  52.                     turtle.turnLeft()
  53.                 else
  54.                     turtle.turnRight()
  55.                     turtle.dig()
  56.                     turtle.forward()
  57.                     turtle.turnRight()
  58.                 end
  59.             end
  60.         end
  61.  
  62.         if y ~= Y_Size then
  63.             if math.sign(Y_Size) == 1 then
  64.                 for i = 1, 3 do
  65.                     turtle.digUp()
  66.                     turtle.up()
  67.                 end
  68.             elseif math.sign(Y_Size) == -1 then
  69.                 for i = 1, 3 do
  70.                     turtle.digDown()
  71.                     turtle.down()
  72.                 end
  73.             end
  74.  
  75.             turtle.turnRight()
  76.             turtle.turnRight()
  77.         end
  78.     end
  79. end
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement