From 4e6b6d97ce785341f6471520cd4f91b545386f38 Mon Sep 17 00:00:00 2001 From: Wagyourtail Date: Thu, 24 Mar 2022 17:33:33 -0700 Subject: [PATCH 1/3] add forceAllowBreak setting --- src/api/java/baritone/api/Settings.java | 5 +++++ .../baritone/pathing/movement/CalculationContext.java | 9 ++++++++- src/main/java/baritone/process/BuilderProcess.java | 7 ++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 0637f859c..f8dc196cc 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -49,6 +49,11 @@ public final class Settings { */ public final Setting allowBreak = new Setting<>(true); + /** + * Blocks that baritone will be allowed to break even with allowBreak set to false + */ + public final Setting> forceAllowBreak = new Setting<>(new ArrayList<>()); + /** * Allow Baritone to sprint */ diff --git a/src/main/java/baritone/pathing/movement/CalculationContext.java b/src/main/java/baritone/pathing/movement/CalculationContext.java index fca6bc990..02e5557b7 100644 --- a/src/main/java/baritone/pathing/movement/CalculationContext.java +++ b/src/main/java/baritone/pathing/movement/CalculationContext.java @@ -34,6 +34,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.List; + import static baritone.api.pathing.movement.ActionCosts.COST_INF; /** @@ -55,6 +58,7 @@ public class CalculationContext { public final boolean canSprint; protected final double placeBlockCost; // protected because you should call the function instead public final boolean allowBreak; + public final List forceAllowBreak; public final boolean allowParkour; public final boolean allowParkourPlace; public final boolean allowJumpAt256; @@ -89,6 +93,7 @@ public class CalculationContext { this.canSprint = Baritone.settings().allowSprint.value && player.getFoodStats().getFoodLevel() > 6; this.placeBlockCost = Baritone.settings().blockPlacementPenalty.value; this.allowBreak = Baritone.settings().allowBreak.value; + this.forceAllowBreak = new ArrayList<>(Baritone.settings().forceAllowBreak.value); this.allowParkour = Baritone.settings().allowParkour.value; this.allowParkourPlace = Baritone.settings().allowParkourPlace.value; this.allowJumpAt256 = Baritone.settings().allowJumpAt256.value; @@ -150,7 +155,9 @@ public class CalculationContext { public double breakCostMultiplierAt(int x, int y, int z, IBlockState current) { if (!allowBreak) { - return COST_INF; + if (!forceAllowBreak.contains(current.getBlock())) { + return COST_INF; + } } if (isPossiblyProtected(x, y, z)) { return COST_INF; diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index 604dbb2bc..3d98a710e 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -947,7 +947,12 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil @Override public double breakCostMultiplierAt(int x, int y, int z, IBlockState current) { - if (!allowBreak || isPossiblyProtected(x, y, z)) { + if (!allowBreak) { + if (!forceAllowBreak.contains(current.getBlock())) { + return COST_INF; + } + } + if (isPossiblyProtected(x, y, z)) { return COST_INF; } IBlockState sch = getSchematic(x, y, z, current); From bf450b7d68ac1dba9703cfc36809a2f475dcf105 Mon Sep 17 00:00:00 2001 From: Wagyourtail Date: Thu, 24 Mar 2022 17:34:31 -0700 Subject: [PATCH 2/3] rename to allowBreakAnyway --- src/api/java/baritone/api/Settings.java | 2 +- .../java/baritone/pathing/movement/CalculationContext.java | 6 +++--- src/main/java/baritone/process/BuilderProcess.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index f8dc196cc..c883413b3 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -52,7 +52,7 @@ public final class Settings { /** * Blocks that baritone will be allowed to break even with allowBreak set to false */ - public final Setting> forceAllowBreak = new Setting<>(new ArrayList<>()); + public final Setting> allowBreakAnyway = new Setting<>(new ArrayList<>()); /** * Allow Baritone to sprint diff --git a/src/main/java/baritone/pathing/movement/CalculationContext.java b/src/main/java/baritone/pathing/movement/CalculationContext.java index 02e5557b7..7a67acffe 100644 --- a/src/main/java/baritone/pathing/movement/CalculationContext.java +++ b/src/main/java/baritone/pathing/movement/CalculationContext.java @@ -58,7 +58,7 @@ public class CalculationContext { public final boolean canSprint; protected final double placeBlockCost; // protected because you should call the function instead public final boolean allowBreak; - public final List forceAllowBreak; + public final List allowBreakAnyway; public final boolean allowParkour; public final boolean allowParkourPlace; public final boolean allowJumpAt256; @@ -93,7 +93,7 @@ public class CalculationContext { this.canSprint = Baritone.settings().allowSprint.value && player.getFoodStats().getFoodLevel() > 6; this.placeBlockCost = Baritone.settings().blockPlacementPenalty.value; this.allowBreak = Baritone.settings().allowBreak.value; - this.forceAllowBreak = new ArrayList<>(Baritone.settings().forceAllowBreak.value); + this.allowBreakAnyway = new ArrayList<>(Baritone.settings().allowBreakAnyway.value); this.allowParkour = Baritone.settings().allowParkour.value; this.allowParkourPlace = Baritone.settings().allowParkourPlace.value; this.allowJumpAt256 = Baritone.settings().allowJumpAt256.value; @@ -155,7 +155,7 @@ public class CalculationContext { public double breakCostMultiplierAt(int x, int y, int z, IBlockState current) { if (!allowBreak) { - if (!forceAllowBreak.contains(current.getBlock())) { + if (!allowBreakAnyway.contains(current.getBlock())) { return COST_INF; } } diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index 3d98a710e..751900df6 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -948,7 +948,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil @Override public double breakCostMultiplierAt(int x, int y, int z, IBlockState current) { if (!allowBreak) { - if (!forceAllowBreak.contains(current.getBlock())) { + if (!allowBreakAnyway.contains(current.getBlock())) { return COST_INF; } } From 2953e2c522b9c37d59d1407f79a5ee7b581f5676 Mon Sep 17 00:00:00 2001 From: Wagyourtail Date: Thu, 24 Mar 2022 18:16:19 -0700 Subject: [PATCH 3/3] make codacy happy --- .../java/baritone/pathing/movement/CalculationContext.java | 6 ++---- src/main/java/baritone/process/BuilderProcess.java | 7 +------ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/baritone/pathing/movement/CalculationContext.java b/src/main/java/baritone/pathing/movement/CalculationContext.java index 7a67acffe..d5d6c93c8 100644 --- a/src/main/java/baritone/pathing/movement/CalculationContext.java +++ b/src/main/java/baritone/pathing/movement/CalculationContext.java @@ -154,10 +154,8 @@ public class CalculationContext { } public double breakCostMultiplierAt(int x, int y, int z, IBlockState current) { - if (!allowBreak) { - if (!allowBreakAnyway.contains(current.getBlock())) { - return COST_INF; - } + if (!allowBreak && !allowBreakAnyway.contains(current.getBlock())) { + return COST_INF; } if (isPossiblyProtected(x, y, z)) { return COST_INF; diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index 751900df6..e3ff4fbd9 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -947,12 +947,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil @Override public double breakCostMultiplierAt(int x, int y, int z, IBlockState current) { - if (!allowBreak) { - if (!allowBreakAnyway.contains(current.getBlock())) { - return COST_INF; - } - } - if (isPossiblyProtected(x, y, z)) { + if ((!allowBreak && !allowBreakAnyway.contains(current.getBlock())) || isPossiblyProtected(x, y, z)) { return COST_INF; } IBlockState sch = getSchematic(x, y, z, current);