diff --git a/src/main/java/baritone/bot/pathing/actions/Action.java b/src/main/java/baritone/bot/pathing/actions/Action.java new file mode 100644 index 00000000..0fb9d09a --- /dev/null +++ b/src/main/java/baritone/bot/pathing/actions/Action.java @@ -0,0 +1,5 @@ +package baritone.bot.pathing.actions; + +public interface Action { + double cost(); +} diff --git a/src/main/java/baritone/bot/pathing/goals/GoalYLevel.java b/src/main/java/baritone/bot/pathing/goals/GoalYLevel.java index cdc58197..eff7d8cd 100644 --- a/src/main/java/baritone/bot/pathing/goals/GoalYLevel.java +++ b/src/main/java/baritone/bot/pathing/goals/GoalYLevel.java @@ -12,19 +12,24 @@ import net.minecraft.util.math.BlockPos; * @author leijurv */ public class GoalYLevel implements Goal { + final int level; + public GoalYLevel(int level) { this.level = level; } + @Override public boolean isInGoal(BlockPos pos) { return pos.getY() == level; } + @Override public double heuristic(BlockPos pos) { return 20 * Math.abs(pos.getY() - level);//the number 20 was chosen somewhat randomly. //TODO fix that } + @Override public String toString() { return "Goal{y=" + level + "}"; diff --git a/src/main/java/baritone/bot/pathing/movements/Movement.java b/src/main/java/baritone/bot/pathing/movements/Movement.java new file mode 100644 index 00000000..b8936fe1 --- /dev/null +++ b/src/main/java/baritone/bot/pathing/movements/Movement.java @@ -0,0 +1,25 @@ +package baritone.bot.pathing.movements; + +import baritone.bot.pathing.actions.Action; +import net.minecraft.util.math.BlockPos; + +import java.util.List; + +public abstract class Movement { + + protected List actions; + + /** + * Gets source block position for Movement. + * + * @return Movement's starting block position + */ + public abstract BlockPos getSrc(); + + /** + * Gets the block position the movement should finish at + * + * @return Movement's final block position + */ + public abstract BlockPos getDest(); +}