Clean falling movement generation

This commit is contained in:
Howard Stark 2018-08-07 06:41:45 -07:00
parent e30405c0ca
commit b7eaf881a0
No known key found for this signature in database
GPG Key ID: 9FA4E350B33067F3
3 changed files with 10 additions and 12 deletions

View File

@ -5,6 +5,7 @@ import baritone.bot.pathing.calc.openset.IOpenSet;
import baritone.bot.pathing.goals.Goal;
import baritone.bot.pathing.movement.ActionCosts;
import baritone.bot.pathing.movement.Movement;
import baritone.bot.pathing.movement.MovementHelper;
import baritone.bot.pathing.movement.movements.MovementAscend;
import baritone.bot.pathing.movement.movements.MovementDownward;
import baritone.bot.pathing.movement.movements.MovementFall;
@ -163,10 +164,10 @@ public class AStarPathFinder extends AbstractNodeCostSearch {
movements[5] = new MovementAscend(pos, new BlockPos(x - 1, y + 1, z));
movements[6] = new MovementAscend(pos, new BlockPos(x, y + 1, z + 1));
movements[7] = new MovementAscend(pos, new BlockPos(x, y + 1, z - 1));
movements[8] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.NORTH);
movements[9] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.SOUTH);
movements[10] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.EAST);
movements[11] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.WEST);
movements[8] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.NORTH);
movements[9] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.SOUTH);
movements[10] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.EAST);
movements[11] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.WEST);
movements[12] = new MovementDownward(pos);
/*Action[] actions = new Action[26];
actions[0] = new ActionPillar(pos);

View File

@ -200,11 +200,10 @@ public interface MovementHelper extends ActionCosts, Helper {
if (onto.getY() <= 0) {
break;
}
IBlockState fallOn = BlockStateInterface.get(onto);
if (fallOn.getBlock() instanceof BlockAir) {
if (BlockStateInterface.isAir(onto)) {
continue;
}
if (BlockStateInterface.isWater(fallOn.getBlock())) {
if (BlockStateInterface.isWater(onto)) {
return new MovementFall(pos, onto);
}
if (MovementHelper.canWalkOn(onto)) {

View File

@ -12,12 +12,9 @@ import baritone.bot.utils.BlockStateInterface;
import baritone.bot.utils.Rotation;
import baritone.bot.utils.ToolSet;
import baritone.bot.utils.Utils;
import net.minecraft.block.BlockAir;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemBucket;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
@ -73,9 +70,10 @@ public class MovementFall extends Movement {
if(!player().inventory.hasItemStack(new ItemStack(new ItemBucket(Blocks.WATER)))) {
state.setStatus(MovementStatus.UNREACHABLE);
}
player().inventory.currentItem = player().inventory.getSlotFor(new ItemStack(new ItemBucket(Blocks.WATER)));
LookBehaviorUtils.reachable(dest).ifPresent(rotation ->
state.setInput(InputOverrideHandler.Input.CLICK_RIGHT, true)
.setTarget(new MovementTarget(rotation))
state.setInput(InputOverrideHandler.Input.CLICK_RIGHT, true)
.setTarget(new MovementTarget(rotation))
);
} else {
Rotation rotationToBlock = Utils.calcRotationFromVec3d(playerHead(), Utils.calcCenterFromCoords(dest, world()));