Refactoring
This commit is contained in:
parent
1f9dadce39
commit
f6f057c8cb
@ -7,13 +7,13 @@ package baritone.bot.event.events.type;
|
|||||||
public enum EventState {
|
public enum EventState {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates that whatever action the event is being
|
* Indicates that whatever movement the event is being
|
||||||
* dispatched as a result of is about to occur.
|
* dispatched as a result of is about to occur.
|
||||||
*/
|
*/
|
||||||
PRE,
|
PRE,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates that whatever action the event is being
|
* Indicates that whatever movement the event is being
|
||||||
* dispatched as a result of has already occured.
|
* dispatched as a result of has already occured.
|
||||||
*/
|
*/
|
||||||
POST
|
POST
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package baritone.bot.pathing.calc;
|
package baritone.bot.pathing.calc;
|
||||||
|
|
||||||
|
<<<<<<< Updated upstream
|
||||||
|
=======
|
||||||
|
import baritone.bot.pathing.movement.Movement;
|
||||||
|
>>>>>>> Stashed changes
|
||||||
import baritone.bot.pathing.goals.Goal;
|
import baritone.bot.pathing.goals.Goal;
|
||||||
import baritone.bot.pathing.movement.Movement;
|
import baritone.bot.pathing.movement.Movement;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
@ -45,7 +45,7 @@ public abstract class Movement implements AbstractGameEventListener, Helper, Mov
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTick() {
|
public void onTick() {
|
||||||
MovementState latestState = calcState();
|
MovementState latestState = updateState();
|
||||||
Optional<Vec3d> orientation = latestState.getGoal().rotation;
|
Optional<Vec3d> orientation = latestState.getGoal().rotation;
|
||||||
if (orientation.isPresent()) {
|
if (orientation.isPresent()) {
|
||||||
Tuple<Float, Float> rotation = Utils.calcRotationFromVec3d(mc.player.getPositionEyes(1.0F),
|
Tuple<Float, Float> rotation = Utils.calcRotationFromVec3d(mc.player.getPositionEyes(1.0F),
|
||||||
@ -60,6 +60,7 @@ public abstract class Movement implements AbstractGameEventListener, Helper, Mov
|
|||||||
currentState = latestState;
|
currentState = latestState;
|
||||||
|
|
||||||
if (isFinished())
|
if (isFinished())
|
||||||
|
onFinish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,11 +77,16 @@ public abstract class Movement implements AbstractGameEventListener, Helper, Mov
|
|||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run cleanup on state finish
|
||||||
|
*/
|
||||||
|
public abstract void onFinish();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate latest movement state.
|
* Calculate latest movement state.
|
||||||
* Gets called once a tick.
|
* Gets called once a tick.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public abstract MovementState calcState();
|
public abstract MovementState updateState();
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class MovementAscend extends Movement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MovementState calcState() {
|
public MovementState updateState() {
|
||||||
MovementState latestState = currentState.setInput(InputOverrideHandler.Input.JUMP, true).setInput(InputOverrideHandler.Input.MOVE_FORWARD, true);
|
MovementState latestState = currentState.setInput(InputOverrideHandler.Input.JUMP, true).setInput(InputOverrideHandler.Input.MOVE_FORWARD, true);
|
||||||
if (playerFeet().equals(dest))
|
if (playerFeet().equals(dest))
|
||||||
latestState.setStatus(MovementState.MovementStatus.SUCCESS);
|
latestState.setStatus(MovementState.MovementStatus.SUCCESS);
|
||||||
|
@ -191,7 +191,7 @@ public class Baritone {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (Action.isWater(theWorld.getBlockState(playerFeet).getBlock())) {
|
if (Action.isWater(theWorld.getBlockState(playerFeet).getBlock())) {
|
||||||
//if (Action.isWater(theWorld.getBlockState(playerFeet.down()).getBlock()) || !Action.canWalkOn(playerFeet.down()) || Action.isWater(theWorld.getBlockState(playerFeet.up()).getBlock())) {
|
//if (Movement.isWater(theWorld.getBlockState(playerFeet.down()).getBlock()) || !Movement.canWalkOn(playerFeet.down()) || Movement.isWater(theWorld.getBlockState(playerFeet.up()).getBlock())) {
|
||||||
//if water is deeper than one block, or we can't walk on what's below the water, or our head is in water, jump
|
//if water is deeper than one block, or we can't walk on what's below the water, or our head is in water, jump
|
||||||
Out.log("Jumping because in water");
|
Out.log("Jumping because in water");
|
||||||
MovementManager.jumping = true;
|
MovementManager.jumping = true;
|
||||||
|
@ -57,7 +57,7 @@ public class Path {
|
|||||||
}
|
}
|
||||||
path.add(0, start.pos);
|
path.add(0, start.pos);
|
||||||
/*Out.log("Final path: " + path);
|
/*Out.log("Final path: " + path);
|
||||||
Out.log("Final action: " + action);
|
Out.log("Final movement: " + movement);
|
||||||
for (int i = 0; i < path.size() - 1; i++) {//print it all out
|
for (int i = 0; i < path.size() - 1; i++) {//print it all out
|
||||||
int oldX = path.get(i).getX();
|
int oldX = path.get(i).getX();
|
||||||
int oldY = path.get(i).getY();
|
int oldY = path.get(i).getY();
|
||||||
@ -68,7 +68,7 @@ public class Path {
|
|||||||
int xDiff = newX - oldX;
|
int xDiff = newX - oldX;
|
||||||
int yDiff = newY - oldY;
|
int yDiff = newY - oldY;
|
||||||
int zDiff = newZ - oldZ;
|
int zDiff = newZ - oldZ;
|
||||||
Out.log(action.get(i) + ": " + xDiff + "," + yDiff + "," + zDiff);//print it all out
|
Out.log(movement.get(i) + ": " + xDiff + "," + yDiff + "," + zDiff);//print it all out
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ public class Path {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Where are we in the path? This is an index in the action list
|
* Where are we in the path? This is an index in the movement list
|
||||||
*/
|
*/
|
||||||
int pathPosition = 0;
|
int pathPosition = 0;
|
||||||
|
|
||||||
@ -141,12 +141,12 @@ public class Path {
|
|||||||
*/
|
*/
|
||||||
static final int MAX_TICKS_AWAY = 20 * 10;
|
static final int MAX_TICKS_AWAY = 20 * 10;
|
||||||
/**
|
/**
|
||||||
* How many ticks have elapsed on this action
|
* How many ticks have elapsed on this movement
|
||||||
*/
|
*/
|
||||||
int ticksOnCurrent = 0;
|
int ticksOnCurrent = 0;
|
||||||
/**
|
/**
|
||||||
* Did I fail, either by being too far away for too long, or by having an
|
* Did I fail, either by being too far away for too long, or by having an
|
||||||
* action take too long
|
* movement take too long
|
||||||
*/
|
*/
|
||||||
public boolean failed = false;
|
public boolean failed = false;
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ public class Path {
|
|||||||
if ((actions.get(pathPosition) instanceof ActionBridge) && (actions.get(pathPosition + 1) instanceof ActionBridge)) {
|
if ((actions.get(pathPosition) instanceof ActionBridge) && (actions.get(pathPosition + 1) instanceof ActionBridge)) {
|
||||||
ActionBridge curr = (ActionBridge) actions.get(pathPosition);
|
ActionBridge curr = (ActionBridge) actions.get(pathPosition);
|
||||||
ActionBridge next = (ActionBridge) actions.get(pathPosition + 1);
|
ActionBridge next = (ActionBridge) actions.get(pathPosition + 1);
|
||||||
if (curr.dx() != next.dx() || curr.dz() != next.dz()) {//two action are not parallel, so this is a right angle
|
if (curr.dx() != next.dx() || curr.dz() != next.dz()) {//two movement are not parallel, so this is a right angle
|
||||||
if (curr.amIGood() && next.amIGood()) {//nothing in the way
|
if (curr.amIGood() && next.amIGood()) {//nothing in the way
|
||||||
BlockPos cornerToCut1 = new BlockPos(next.to.getX() - next.from.getX() + curr.from.getX(), next.to.getY(), next.to.getZ() - next.from.getZ() + curr.from.getZ());
|
BlockPos cornerToCut1 = new BlockPos(next.to.getX() - next.from.getX() + curr.from.getX(), next.to.getY(), next.to.getZ() - next.from.getZ() + curr.from.getZ());
|
||||||
BlockPos cornerToCut2 = cornerToCut1.up();
|
BlockPos cornerToCut2 = cornerToCut1.up();
|
||||||
@ -230,19 +230,19 @@ public class Path {
|
|||||||
MovementManager.clearMovement();
|
MovementManager.clearMovement();
|
||||||
Action action = actions.get(pathPosition);
|
Action action = actions.get(pathPosition);
|
||||||
if (action.calculateCost0(new ToolSet()) >= Action.COST_INF) {
|
if (action.calculateCost0(new ToolSet()) >= Action.COST_INF) {
|
||||||
Out.gui("Something has changed in the world and this action has become impossible. Cancelling.", Out.Mode.Standard);
|
Out.gui("Something has changed in the world and this movement has become impossible. Cancelling.", Out.Mode.Standard);
|
||||||
pathPosition = path.size() + 3;
|
pathPosition = path.size() + 3;
|
||||||
failed = true;
|
failed = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (action.tick()) {
|
if (action.tick()) {
|
||||||
Out.log("Action done, next path");
|
Out.log("Movement done, next path");
|
||||||
pathPosition++;
|
pathPosition++;
|
||||||
ticksOnCurrent = 0;
|
ticksOnCurrent = 0;
|
||||||
} else {
|
} else {
|
||||||
ticksOnCurrent++;
|
ticksOnCurrent++;
|
||||||
if (ticksOnCurrent > action.cost(null) + 100) {
|
if (ticksOnCurrent > action.cost(null) + 100) {
|
||||||
Out.gui("This action has taken too long (" + ticksOnCurrent + " ticks, expected " + action.cost(null) + "). Cancelling.", Out.Mode.Standard);
|
Out.gui("This movement has taken too long (" + ticksOnCurrent + " ticks, expected " + action.cost(null) + "). Cancelling.", Out.Mode.Standard);
|
||||||
pathPosition = path.size() + 3;
|
pathPosition = path.size() + 3;
|
||||||
failed = true;
|
failed = true;
|
||||||
return true;
|
return true;
|
||||||
|
@ -97,7 +97,7 @@ public class PathFinder {
|
|||||||
return new Path(startNode, currentNode, goal, numNodes);
|
return new Path(startNode, currentNode, goal, numNodes);
|
||||||
}
|
}
|
||||||
//long constructStart = System.nanoTime();
|
//long constructStart = System.nanoTime();
|
||||||
Action[] possibleActions = getConnectedPositions(currentNodePos);//action that we could take that start at myPos, in random order
|
Action[] possibleActions = getConnectedPositions(currentNodePos);//movement that we could take that start at myPos, in random order
|
||||||
shuffle(possibleActions);
|
shuffle(possibleActions);
|
||||||
//long constructEnd = System.nanoTime();
|
//long constructEnd = System.nanoTime();
|
||||||
//System.out.println(constructEnd - constructStart);
|
//System.out.println(constructEnd - constructStart);
|
||||||
|
@ -199,7 +199,7 @@ public abstract class Action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tick this action
|
* Tick this movement
|
||||||
*
|
*
|
||||||
* @return is it done
|
* @return is it done
|
||||||
*/
|
*/
|
||||||
|
@ -26,7 +26,7 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
*/
|
*/
|
||||||
public abstract class ActionPlaceOrBreak extends Action {
|
public abstract class ActionPlaceOrBreak extends Action {
|
||||||
|
|
||||||
public final BlockPos[] positionsToBreak;//the positions that need to be broken before this action can ensue
|
public final BlockPos[] positionsToBreak;//the positions that need to be broken before this movement can ensue
|
||||||
public final BlockPos[] positionsToPlace;//the positions where we need to place a block before this aciton can ensue
|
public final BlockPos[] positionsToPlace;//the positions where we need to place a block before this aciton can ensue
|
||||||
public final Block[] blocksToBreak;//the blocks at those positions
|
public final Block[] blocksToBreak;//the blocks at those positions
|
||||||
public final Block[] blocksToPlace;
|
public final Block[] blocksToPlace;
|
||||||
@ -45,7 +45,7 @@ public abstract class ActionPlaceOrBreak extends Action {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getTotalHardnessOfBlocksToBreak() {//of all the blocks we need to break before starting this action, what's the sum of how hard they are (phrasing)
|
public double getTotalHardnessOfBlocksToBreak() {//of all the blocks we need to break before starting this movement, what's the sum of how hard they are (phrasing)
|
||||||
ToolSet ts = new ToolSet();
|
ToolSet ts = new ToolSet();
|
||||||
return this.getTotalHardnessOfBlocksToBreak(ts);
|
return this.getTotalHardnessOfBlocksToBreak(ts);
|
||||||
}
|
}
|
||||||
@ -148,7 +148,7 @@ public abstract class ActionPlaceOrBreak extends Action {
|
|||||||
//one of the blocks that needs to be there isn't there
|
//one of the blocks that needs to be there isn't there
|
||||||
//so basically someone mined out our path from under us
|
//so basically someone mined out our path from under us
|
||||||
//
|
//
|
||||||
//this doesn't really do anything, because all the cases for positionToPlace are handled in their respective action tick0s (e.g. pillar and bridge)
|
//this doesn't really do anything, because all the cases for positionToPlace are handled in their respective movement tick0s (e.g. pillar and bridge)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tick0();
|
return tick0();
|
||||||
|
@ -33,24 +33,24 @@ public class LookManager extends Manager {
|
|||||||
static float desiredNextYaw = 0;
|
static float desiredNextYaw = 0;
|
||||||
static float desiredNextPitch = 0;
|
static float desiredNextPitch = 0;
|
||||||
/**
|
/**
|
||||||
* The desired yaw, as set by whatever action is happening. Remember to also
|
* The desired yaw, as set by whatever movement is happening. Remember to also
|
||||||
* set lookingYaw to true if you really want the yaw to change
|
* set lookingYaw to true if you really want the yaw to change
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static float desiredYaw;
|
static float desiredYaw;
|
||||||
/**
|
/**
|
||||||
* The desired pitch, as set by whatever action is happening. Remember to
|
* The desired pitch, as set by whatever movement is happening. Remember to
|
||||||
* also set lookingPitch to true if you really want the yaw to change
|
* also set lookingPitch to true if you really want the yaw to change
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static float desiredPitch;
|
static float desiredPitch;
|
||||||
/**
|
/**
|
||||||
* Set to true if the action wants the player's yaw to be moved towards
|
* Set to true if the movement wants the player's yaw to be moved towards
|
||||||
* desiredYaw
|
* desiredYaw
|
||||||
*/
|
*/
|
||||||
static boolean lookingYaw = false;
|
static boolean lookingYaw = false;
|
||||||
/**
|
/**
|
||||||
* Set to true if the action wants the player's pitch to be moved towards
|
* Set to true if the movement wants the player's pitch to be moved towards
|
||||||
* desiredPitch
|
* desiredPitch
|
||||||
*/
|
*/
|
||||||
static boolean lookingPitch = false;
|
static boolean lookingPitch = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user