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.goals.Goal;
import baritone.bot.pathing.movement.ActionCosts; import baritone.bot.pathing.movement.ActionCosts;
import baritone.bot.pathing.movement.Movement; 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.MovementAscend;
import baritone.bot.pathing.movement.movements.MovementDownward; import baritone.bot.pathing.movement.movements.MovementDownward;
import baritone.bot.pathing.movement.movements.MovementFall; 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[5] = new MovementAscend(pos, new BlockPos(x - 1, y + 1, z));
movements[6] = new MovementAscend(pos, new BlockPos(x, y + 1, z + 1)); 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[7] = new MovementAscend(pos, new BlockPos(x, y + 1, z - 1));
movements[8] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.NORTH); movements[8] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.NORTH);
movements[9] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.SOUTH); movements[9] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.SOUTH);
movements[10] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.EAST); movements[10] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.EAST);
movements[11] = MovementFall.generateMovementFallOrDescend(pos, EnumFacing.WEST); movements[11] = MovementHelper.generateMovementFallOrDescend(pos, EnumFacing.WEST);
movements[12] = new MovementDownward(pos); movements[12] = new MovementDownward(pos);
/*Action[] actions = new Action[26]; /*Action[] actions = new Action[26];
actions[0] = new ActionPillar(pos); actions[0] = new ActionPillar(pos);

View File

@ -200,11 +200,10 @@ public interface MovementHelper extends ActionCosts, Helper {
if (onto.getY() <= 0) { if (onto.getY() <= 0) {
break; break;
} }
IBlockState fallOn = BlockStateInterface.get(onto); if (BlockStateInterface.isAir(onto)) {
if (fallOn.getBlock() instanceof BlockAir) {
continue; continue;
} }
if (BlockStateInterface.isWater(fallOn.getBlock())) { if (BlockStateInterface.isWater(onto)) {
return new MovementFall(pos, onto); return new MovementFall(pos, onto);
} }
if (MovementHelper.canWalkOn(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.Rotation;
import baritone.bot.utils.ToolSet; import baritone.bot.utils.ToolSet;
import baritone.bot.utils.Utils; import baritone.bot.utils.Utils;
import net.minecraft.block.BlockAir;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemBucket;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
@ -73,6 +70,7 @@ public class MovementFall extends Movement {
if(!player().inventory.hasItemStack(new ItemStack(new ItemBucket(Blocks.WATER)))) { if(!player().inventory.hasItemStack(new ItemStack(new ItemBucket(Blocks.WATER)))) {
state.setStatus(MovementStatus.UNREACHABLE); state.setStatus(MovementStatus.UNREACHABLE);
} }
player().inventory.currentItem = player().inventory.getSlotFor(new ItemStack(new ItemBucket(Blocks.WATER)));
LookBehaviorUtils.reachable(dest).ifPresent(rotation -> LookBehaviorUtils.reachable(dest).ifPresent(rotation ->
state.setInput(InputOverrideHandler.Input.CLICK_RIGHT, true) state.setInput(InputOverrideHandler.Input.CLICK_RIGHT, true)
.setTarget(new MovementTarget(rotation)) .setTarget(new MovementTarget(rotation))