diff --git a/src/main/java/baritone/pathing/movement/Movement.java b/src/main/java/baritone/pathing/movement/Movement.java index e461d7011..99c17d8c0 100644 --- a/src/main/java/baritone/pathing/movement/Movement.java +++ b/src/main/java/baritone/pathing/movement/Movement.java @@ -187,6 +187,9 @@ public abstract class Movement implements Helper, MovementHelper { currentState.setStatus(MovementStatus.CANCELED); } + public void reset() { + currentState = new MovementState().setStatus(MovementStatus.PREPPING); + } public double getTotalHardnessOfBlocksToBreak(CalculationContext ctx) { /* diff --git a/src/main/java/baritone/pathing/movement/movements/MovementAscend.java b/src/main/java/baritone/pathing/movement/movements/MovementAscend.java index e7ecce254..596a6d860 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementAscend.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementAscend.java @@ -64,6 +64,12 @@ public class MovementAscend extends Movement { // Counterpoint to the above TODO ^ you should move then pillar instead of ascend } + @Override + public void reset() { + super.reset(); + ticksWithoutPlacement = 0; + } + @Override protected double calculateCost(CalculationContext context) { IBlockState toPlace = BlockStateInterface.get(positionsToPlace[0]); diff --git a/src/main/java/baritone/pathing/movement/movements/MovementDescend.java b/src/main/java/baritone/pathing/movement/movements/MovementDescend.java index 97c55f63c..dab57257a 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementDescend.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementDescend.java @@ -36,6 +36,12 @@ public class MovementDescend extends Movement { super(start, end, new BlockPos[]{end.up(2), end.up(), end}, new BlockPos[]{end.down()}); } + @Override + public void reset() { + super.reset(); + numTicks = 0; + } + @Override protected double calculateCost(CalculationContext context) { if (!MovementHelper.canWalkOn(positionsToPlace[0])) { diff --git a/src/main/java/baritone/pathing/movement/movements/MovementDownward.java b/src/main/java/baritone/pathing/movement/movements/MovementDownward.java index 2490fdd1a..285053c25 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementDownward.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementDownward.java @@ -36,6 +36,12 @@ public class MovementDownward extends Movement { super(start, end, new BlockPos[]{end}, new BlockPos[0]); } + @Override + public void reset() { + super.reset(); + numTicks = 0; + } + @Override protected double calculateCost(CalculationContext context) { if (!MovementHelper.canWalkOn(dest.down())) { diff --git a/src/main/java/baritone/pathing/movement/movements/MovementPillar.java b/src/main/java/baritone/pathing/movement/movements/MovementPillar.java index 890637b04..5dcef9488 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementPillar.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementPillar.java @@ -38,6 +38,12 @@ public class MovementPillar extends Movement { super(start, end, new BlockPos[]{start.up(2)}, new BlockPos[]{start}); } + @Override + public void reset() { + super.reset(); + numTicks = 0; + } + @Override protected double calculateCost(CalculationContext context) { Block fromDown = BlockStateInterface.get(src).getBlock(); diff --git a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java index ad9a129f8..51429db46 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java @@ -66,6 +66,12 @@ public class MovementTraverse extends Movement { //note: do NOT add ability to place against .down().down() } + @Override + public void reset() { + super.reset(); + wasTheBridgeBlockAlwaysThere = true; + } + @Override protected double calculateCost(CalculationContext context) { IBlockState pb0 = BlockStateInterface.get(positionsToBreak[0]); diff --git a/src/main/java/baritone/pathing/path/PathExecutor.java b/src/main/java/baritone/pathing/path/PathExecutor.java index dee3458a6..88a7126c3 100644 --- a/src/main/java/baritone/pathing/path/PathExecutor.java +++ b/src/main/java/baritone/pathing/path/PathExecutor.java @@ -90,7 +90,11 @@ public class PathExecutor implements Helper { for (int i = 0; i < pathPosition - 2 && i < path.length(); i++) {//this happens for example when you lag out and get teleported back a couple blocks if (whereAmI.equals(path.positions().get(i))) { displayChatMessageRaw("Skipping back " + (pathPosition - i) + " steps, to " + i); + int previousPos = pathPosition; pathPosition = Math.max(i - 1, 0); // previous step might not actually be done + for (int j = pathPosition; j <= previousPos; j++) { + path.movements().get(j).reset(); + } Baritone.INSTANCE.getInputOverrideHandler().clearAllKeys(); return false; }