From b7eaf881a0a15f1f80149b09611682d0e2356eb0 Mon Sep 17 00:00:00 2001 From: Howard Stark Date: Tue, 7 Aug 2018 06:41:45 -0700 Subject: [PATCH] Clean falling movement generation --- .../java/baritone/bot/pathing/calc/AStarPathFinder.java | 9 +++++---- .../baritone/bot/pathing/movement/MovementHelper.java | 5 ++--- .../bot/pathing/movement/movements/MovementFall.java | 8 +++----- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/baritone/bot/pathing/calc/AStarPathFinder.java b/src/main/java/baritone/bot/pathing/calc/AStarPathFinder.java index f62b5a71..aab1983f 100644 --- a/src/main/java/baritone/bot/pathing/calc/AStarPathFinder.java +++ b/src/main/java/baritone/bot/pathing/calc/AStarPathFinder.java @@ -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); diff --git a/src/main/java/baritone/bot/pathing/movement/MovementHelper.java b/src/main/java/baritone/bot/pathing/movement/MovementHelper.java index 1dfcb724..7737ca1e 100644 --- a/src/main/java/baritone/bot/pathing/movement/MovementHelper.java +++ b/src/main/java/baritone/bot/pathing/movement/MovementHelper.java @@ -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)) { diff --git a/src/main/java/baritone/bot/pathing/movement/movements/MovementFall.java b/src/main/java/baritone/bot/pathing/movement/movements/MovementFall.java index 60aaf538..c2b6cee2 100644 --- a/src/main/java/baritone/bot/pathing/movement/movements/MovementFall.java +++ b/src/main/java/baritone/bot/pathing/movement/movements/MovementFall.java @@ -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()));