From 182c1e6ff5b4ae70706a2a5f90b19739c96644a4 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Sun, 23 Sep 2018 14:23:23 -0700 Subject: [PATCH] refactor --- .../pathing/calc/AStarPathFinder.java | 6 +- src/main/java/baritone/pathing/calc/Path.java | 1 + .../pathing/{calc => movement}/Moves.java | 62 ++++++++++--------- .../movements/result}/MoveResult.java | 2 +- 4 files changed, 40 insertions(+), 31 deletions(-) rename src/main/java/baritone/pathing/{calc => movement}/Moves.java (88%) rename src/main/java/baritone/pathing/{calc => movement/movements/result}/MoveResult.java (95%) diff --git a/src/main/java/baritone/pathing/calc/AStarPathFinder.java b/src/main/java/baritone/pathing/calc/AStarPathFinder.java index 6ca58e6b..515f4b16 100644 --- a/src/main/java/baritone/pathing/calc/AStarPathFinder.java +++ b/src/main/java/baritone/pathing/calc/AStarPathFinder.java @@ -22,6 +22,8 @@ import baritone.pathing.calc.openset.BinaryHeapOpenSet; import baritone.pathing.goals.Goal; import baritone.pathing.movement.ActionCosts; import baritone.pathing.movement.CalculationContext; +import baritone.pathing.movement.Moves; +import baritone.pathing.movement.movements.result.MoveResult; import baritone.pathing.path.IPath; import baritone.utils.BlockStateInterface; import baritone.utils.Helper; @@ -97,7 +99,9 @@ public final class AStarPathFinder extends AbstractNodeCostSearch implements Hel if (newX >> 4 != currentNode.x >> 4 || newZ >> 4 != currentNode.z >> 4) { // only need to check if the destination is a loaded chunk if it's in a different chunk than the start of the movement if (!BlockStateInterface.isLoaded(newX, newZ)) { - numEmptyChunk++; + if (!moves.dynamicXZ) { // only increment the counter if the movement would have gone out of bounds guaranteed + numEmptyChunk++; + } continue; } } diff --git a/src/main/java/baritone/pathing/calc/Path.java b/src/main/java/baritone/pathing/calc/Path.java index 2ebe4c09..85450f27 100644 --- a/src/main/java/baritone/pathing/calc/Path.java +++ b/src/main/java/baritone/pathing/calc/Path.java @@ -19,6 +19,7 @@ package baritone.pathing.calc; import baritone.pathing.goals.Goal; import baritone.pathing.movement.Movement; +import baritone.pathing.movement.Moves; import baritone.pathing.path.IPath; import baritone.utils.pathing.BetterBlockPos; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/baritone/pathing/calc/Moves.java b/src/main/java/baritone/pathing/movement/Moves.java similarity index 88% rename from src/main/java/baritone/pathing/calc/Moves.java rename to src/main/java/baritone/pathing/movement/Moves.java index 2f33feab..7855c04a 100644 --- a/src/main/java/baritone/pathing/calc/Moves.java +++ b/src/main/java/baritone/pathing/movement/Moves.java @@ -15,20 +15,24 @@ * along with Baritone. If not, see . */ -package baritone.pathing.calc; +package baritone.pathing.movement; -import baritone.pathing.movement.CalculationContext; -import baritone.pathing.movement.Movement; import baritone.pathing.movement.movements.*; import baritone.pathing.movement.movements.result.DescendResult; +import baritone.pathing.movement.movements.result.MoveResult; import baritone.pathing.movement.movements.result.ParkourResult; import baritone.utils.pathing.BetterBlockPos; import net.minecraft.util.EnumFacing; +/** + * An enum of all possible movements attached to all possible directions they could be taken in + * + * @author leijurv + */ public enum Moves { DOWNWARD(0, 0) { @Override - protected Movement apply0(BetterBlockPos src) { // TODO specific return types + public Movement apply0(BetterBlockPos src) { return new MovementDownward(src, src.down()); } @@ -40,7 +44,7 @@ public enum Moves { PILLAR(0, 0) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementPillar(src, src.up()); } @@ -52,7 +56,7 @@ public enum Moves { TRAVERSE_NORTH(0, -1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementTraverse(src, src.north()); } @@ -64,7 +68,7 @@ public enum Moves { TRAVERSE_SOUTH(0, +1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementTraverse(src, src.south()); } @@ -76,7 +80,7 @@ public enum Moves { TRAVERSE_EAST(+1, 0) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementTraverse(src, src.east()); } @@ -88,7 +92,7 @@ public enum Moves { TRAVERSE_WEST(-1, 0) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementTraverse(src, src.west()); } @@ -100,7 +104,7 @@ public enum Moves { ASCEND_NORTH(0, -1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementAscend(src, new BetterBlockPos(src.x, src.y + 1, src.z - 1)); } @@ -112,7 +116,7 @@ public enum Moves { ASCEND_SOUTH(0, +1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementAscend(src, new BetterBlockPos(src.x, src.y + 1, src.z + 1)); } @@ -124,7 +128,7 @@ public enum Moves { ASCEND_EAST(+1, 0) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementAscend(src, new BetterBlockPos(src.x + 1, src.y + 1, src.z)); } @@ -136,7 +140,7 @@ public enum Moves { ASCEND_WEST(-1, 0) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementAscend(src, new BetterBlockPos(src.x - 1, src.y + 1, src.z)); } @@ -148,7 +152,7 @@ public enum Moves { DESCEND_EAST(+1, 0) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { MoveResult res = apply(new CalculationContext(), src.x, src.y, src.z); if (res.destY == src.y - 1) { return new MovementDescend(src, new BetterBlockPos(res.destX, res.destY, res.destZ)); @@ -166,7 +170,7 @@ public enum Moves { DESCEND_WEST(-1, 0) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { MoveResult res = apply(new CalculationContext(), src.x, src.y, src.z); if (res.destY == src.y - 1) { return new MovementDescend(src, new BetterBlockPos(res.destX, res.destY, res.destZ)); @@ -184,7 +188,7 @@ public enum Moves { DESCEND_NORTH(0, -1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { MoveResult res = apply(new CalculationContext(), src.x, src.y, src.z); if (res.destY == src.y - 1) { return new MovementDescend(src, new BetterBlockPos(res.destX, res.destY, res.destZ)); @@ -202,7 +206,7 @@ public enum Moves { DESCEND_SOUTH(0, +1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { MoveResult res = apply(new CalculationContext(), src.x, src.y, src.z); if (res.destY == src.y - 1) { return new MovementDescend(src, new BetterBlockPos(res.destX, res.destY, res.destZ)); @@ -220,7 +224,7 @@ public enum Moves { DIAGONAL_NORTHEAST(+1, -1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementDiagonal(src, EnumFacing.NORTH, EnumFacing.EAST); } @@ -232,7 +236,7 @@ public enum Moves { DIAGONAL_NORTHWEST(-1, -1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementDiagonal(src, EnumFacing.NORTH, EnumFacing.WEST); } @@ -244,7 +248,7 @@ public enum Moves { DIAGONAL_SOUTHEAST(+1, +1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementDiagonal(src, EnumFacing.SOUTH, EnumFacing.EAST); } @@ -256,7 +260,7 @@ public enum Moves { DIAGONAL_SOUTHWEST(-1, +1) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return new MovementDiagonal(src, EnumFacing.SOUTH, EnumFacing.WEST); } @@ -268,7 +272,7 @@ public enum Moves { PARKOUR_NORTH(0, -4, true) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return MovementParkour.cost(new CalculationContext(), src, EnumFacing.NORTH); } @@ -281,7 +285,7 @@ public enum Moves { PARKOUR_SOUTH(0, +4, true) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return MovementParkour.cost(new CalculationContext(), src, EnumFacing.SOUTH); } @@ -294,7 +298,7 @@ public enum Moves { PARKOUR_EAST(+4, 0, true) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return MovementParkour.cost(new CalculationContext(), src, EnumFacing.EAST); } @@ -307,7 +311,7 @@ public enum Moves { PARKOUR_WEST(-4, 0, true) { @Override - protected Movement apply0(BetterBlockPos src) { + public Movement apply0(BetterBlockPos src) { return MovementParkour.cost(new CalculationContext(), src, EnumFacing.WEST); } @@ -318,10 +322,6 @@ public enum Moves { } }; - protected abstract Movement apply0(BetterBlockPos src); - - public abstract MoveResult apply(CalculationContext context, int x, int y, int z); - public final boolean dynamicXZ; public final int xOffset; @@ -336,4 +336,8 @@ public enum Moves { Moves(int x, int z) { this(x, z, false); } + + public abstract Movement apply0(BetterBlockPos src); + + public abstract MoveResult apply(CalculationContext context, int x, int y, int z); } diff --git a/src/main/java/baritone/pathing/calc/MoveResult.java b/src/main/java/baritone/pathing/movement/movements/result/MoveResult.java similarity index 95% rename from src/main/java/baritone/pathing/calc/MoveResult.java rename to src/main/java/baritone/pathing/movement/movements/result/MoveResult.java index e9c6caa9..a0419a2b 100644 --- a/src/main/java/baritone/pathing/calc/MoveResult.java +++ b/src/main/java/baritone/pathing/movement/movements/result/MoveResult.java @@ -15,7 +15,7 @@ * along with Baritone. If not, see . */ -package baritone.pathing.calc; +package baritone.pathing.movement.movements.result; public final class MoveResult { public final int destX;