From ab3a015d6120407d5f6d5b3beb75ea6e41b95629 Mon Sep 17 00:00:00 2001 From: ZacSharp <68165024+ZacSharp@users.noreply.github.com> Date: Thu, 24 Jun 2021 23:33:48 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20layerHeight=20setting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/java/baritone/api/Settings.java | 5 +++++ src/main/java/baritone/process/BuilderProcess.java | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 2e1315883..2d9ad3fb3 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -850,6 +850,11 @@ public final class Settings { */ public final Setting layerOrder = new Setting<>(false); + /** + * How high should the individual layers be? + */ + public final Setting layerHeight = new Setting<>(1); + /** * Start building the schematic at a specific layer. * Can help on larger builds when schematic wants to break things its already built diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index e08aa9450..89226fed2 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -385,9 +385,9 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil // layer = realSchematic.heightY() should be everything if (Baritone.settings().layerOrder.value) { // top to bottom maxYInclusive = realSchematic.heightY() - 1; - minYInclusive = realSchematic.heightY() - layer; + minYInclusive = realSchematic.heightY() - layer * Baritone.settings().layerHeight.value; } else { - maxYInclusive = layer - 1; + maxYInclusive = layer * Baritone.settings().layerHeight.value - 1; minYInclusive = 0; } schematic = new ISchematic() { @@ -424,7 +424,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil } BuilderCalculationContext bcc = new BuilderCalculationContext(); if (!recalc(bcc)) { - if (Baritone.settings().buildInLayers.value && layer < realSchematic.heightY()) { + if (Baritone.settings().buildInLayers.value && layer * Baritone.settings().layerHeight.value < realSchematic.heightY()) { logDirect("Starting layer " + layer); layer++; return onTick(calcFailed, isSafeToCancel, recursions + 1); @@ -514,7 +514,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil if (goal == null) { goal = assemble(bcc, approxPlaceable, true); // we're far away, so assume that we have our whole inventory to recalculate placeable properly if (goal == null) { - if (Baritone.settings().skipFailedLayers.value && Baritone.settings().buildInLayers.value && layer < realSchematic.heightY()) { + if (Baritone.settings().skipFailedLayers.value && Baritone.settings().buildInLayers.value && layer * Baritone.settings().layerHeight.value < realSchematic.heightY()) { logDirect("Skipping layer that I cannot construct! Layer #" + layer); layer++; return onTick(calcFailed, isSafeToCancel, recursions + 1);