From cdfa86c977df3fd141c79b1f328564e4b061f47f Mon Sep 17 00:00:00 2001 From: Lyzev Date: Thu, 6 Feb 2025 18:48:51 +0100 Subject: [PATCH] add(Settings): added settings to control block placement in fluid sources and flowing fluids --- src/api/java/baritone/api/Settings.java | 10 ++++++++++ .../baritone/pathing/movement/CalculationContext.java | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index d9cb501ef..9cb82f94b 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -77,6 +77,16 @@ public final class Settings { */ public final Setting allowPlace = new Setting<>(true); + /** + * Allow Baritone to place blocks in fluid source blocks + */ + public final Setting allowPlaceInFluidsSource = new Setting<>(true); + + /** + * Allow Baritone to place blocks in flowing fluid + */ + public final Setting allowPlaceInFluidsFlow = new Setting<>(true); + /** * Allow Baritone to move items in your inventory to your hotbar */ diff --git a/src/main/java/baritone/pathing/movement/CalculationContext.java b/src/main/java/baritone/pathing/movement/CalculationContext.java index 64aca2ceb..eeb6ccc03 100644 --- a/src/main/java/baritone/pathing/movement/CalculationContext.java +++ b/src/main/java/baritone/pathing/movement/CalculationContext.java @@ -161,6 +161,12 @@ public class CalculationContext { if (!worldBorder.canPlaceAt(x, z)) { return COST_INF; } + if (current.getFluidState().isSource() && !Baritone.settings().allowPlaceInFluidsSource.value) { + return COST_INF; + } + if (!current.getFluidState().isEmpty() && !current.getFluidState().isSource() && !Baritone.settings().allowPlaceInFluidsFlow.value) { + return COST_INF; + } return placeBlockCost; }