--https://pastebin.com/ function forward(n) for _ = 1, n do turtle.forward() end end function back(n) for _ = 1, n do turtle.back() end end function mine3(n) for _ = 1, n do turtle.dig() while not turtle.forward() do digLoose() end turtle.digUp() safeDigDown() digLooseUp() end end -- in foo turtle must make exactly 1 step forward, no more steps, no rotates. foo args is x and y coords of cell after forward step function handleSquare(a, b, foo) if a < 2 or b < 2 then print("dimensions must be positive!") return end local needFuel = a * b + a + b - 1 - a * (1 - b % 2) if turtle.getFuelLevel() < needFuel then print("Not enough fuel! Must be at least " .. needFuel) print("Try to add " .. math.ceil((needFuel - turtle.getFuelLevel()) / 80) .. " coal") return end for y = 0, a - 1 do foo(0, y) end for x = 1, b - 2, 2 do turtle.turnRight() foo(x, a - 1) turtle.turnRight() for y = a - 2, 0 do foo(x, y) end turtle.turnLeft() foo(x + 1, 0) turtle.turnLeft() for y = 1, a - 1 do foo(x + 1, y) end end if b % 2 == 0 then turtle.turnRight() foo(b - 1, a - 1) turtle.turnRight() for y = a - 2, 0 do foo(b - 1, y) end turtle.turnRight() forward(b - 1) turtle.turnRight() turtle.back() else turtle.turnLeft() forward(b - 1) turtle.turnRight() back(a) end end function test(x, y) turtle.forward() print(x, y) end handleSquare(2, 2, test)