diff options
Diffstat (limited to 'nav.lua')
-rw-r--r-- | nav.lua | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -0,0 +1,43 @@ +-- orientation: east 1 x+, south 2 z+, west 3 x-, north 4 z- + +local function turnTo(o1, o2) + if o1 == o2 then + return nil + end + + if math.abs(o2 - o1) == 2 then + turtle.turnLeft() + turtle.turnLeft() + elseif o2 - o1 == 1 or o2 - o1 == -3 then + turtle.turnRight() + else + turtle.turnLeft() + end +end + +local function moveX(x1, x2, o1) + if x1 == x2 then + return o1 + end + + local amount = x2 - x1 + local o2 = amount > 0 and 1 or 3 + turnTo(o1, o2) + + for ii = 1, math.abs(amount) do + turtle.forward() + end + + return o2 +end + +local function travel(x1, y1, z1, o1, x2, y2, z2, o2, safe_y) + local dx = x2 - x1 + local dz = z2 - z1 + local move_safe = dx ~= 0 or dz ~= 0 + if move_safe then + + end +end + +return { turnTo = turnTo, moveX = moveX } |