diff --git a/turtles/mine.lua b/turtles/mine.lua index 639b690..992537d 100644 --- a/turtles/mine.lua +++ b/turtles/mine.lua @@ -165,14 +165,25 @@ end -- Find the next unmined shaft and end up in front of it function find_next_shaft() + function is_shaft_pos() + if side % 2 == 1 then + return false + elseif side % 4 == 0 then + return height % 3 == 0 + elseif side % 4 == 2 then + return height % 3 ~= 0 + end + end + function is_shaft() + return is_shaft_pos() and turtle.detect() + end + go_to(0, 0, 0) while true do for hei=1,MAX_HEIGHT-1 do - if (height % 3) == 0 then - if turtle.detect() then - return - end + if is_shaft() then + return end if turtle.detectUp() then @@ -180,24 +191,20 @@ function find_next_shaft() end move_up() end - if turtle.detect() then + if is_shaft() then return end turn_abs(1) - for i=0,1 do - if turtle.detect() then - turtle.dig() - end - move_forward() + if turtle.detect() then + turtle.dig() end + move_forward() turn_abs(0) for hei=MAX_HEIGHT-1,1,-1 do - if (height % 3) ~= 0 then - if turtle.detect() then - return - end + if is_shaft() then + return end if turtle.detectDown() then @@ -205,14 +212,15 @@ function find_next_shaft() end move_down() end + if is_shaft() then + return + end turn_abs(1) - for i=0,1 do - if turtle.detect() then - turtle.dig() - end - move_forward() + if turtle.detect() then + turtle.dig() end + move_forward() turn_abs(0) end end