From 3adfa16db8305a07200b29bcde32e3912699ee79 Mon Sep 17 00:00:00 2001 From: Entropy5 <44469915+Entropy5@users.noreply.github.com> Date: Fri, 17 Dec 2021 06:24:34 +0100 Subject: [PATCH] Option to ignore direction of certain blocks during building (because otherwise baritone just keeps breaking and replacing the same block) --- src/api/java/baritone/api/Settings.java | 5 +++++ src/main/java/baritone/process/BuilderProcess.java | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index a3147292e..554853716 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -258,6 +258,11 @@ public final class Settings { */ public final Setting buildIgnoreExisting = new Setting<>(false); + /** + * If this is true, the builder will ignore directionality of certain blocks like glazed terracotta. + */ + public final Setting buildIgnoreDirection = new Setting<>(false); + /** * If this setting is true, Baritone will never break a block that is adjacent to an unsupported falling block. *

diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index 89226fed2..fc7687524 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -48,6 +48,9 @@ import baritone.utils.schematic.schematica.SchematicaHelper; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import net.minecraft.block.BlockAir; import net.minecraft.block.BlockLiquid; +import net.minecraft.block.BlockGlazedTerracotta; +import net.minecraft.block.BlockBone; +import net.minecraft.block.BlockHay; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; @@ -836,6 +839,10 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil if (desired == null) { return true; } + if ((current.getBlock() instanceof BlockGlazedTerracotta || current.getBlock() instanceof BlockBone || current.getBlock() instanceof BlockHay) + && Baritone.settings().buildIgnoreDirection.value && current.getBlock() == desired.getBlock()) { + return true; + } if (current.getBlock() instanceof BlockLiquid && Baritone.settings().okIfWater.value) { return true; }