From 26cceede153a290926bc83e286ea874a6c5519a0 Mon Sep 17 00:00:00 2001 From: Entropy5 <44469915+Entropy5@users.noreply.github.com> Date: Tue, 17 Jan 2023 06:33:01 +0100 Subject: [PATCH] litematica support for buildonlyselection, mostly rycbars --- .../java/baritone/process/BuilderProcess.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index f3f138c96..14093dc6a 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -166,19 +166,23 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil return false; } - if (Baritone.settings().mapArtMode.value) { - parsed = new MapArtSchematic((IStaticSchematic) parsed); - } - - if (Baritone.settings().buildOnlySelection.value) { - parsed = new SelectionSchematic(parsed, origin, baritone.getSelectionManager().getSelections()); - } - + parsed = applyMapArtAndSelection(origin, parsed); build(name, parsed, origin); return true; } + private ISchematic applyMapArtAndSelection(Vec3i origin, ISchematic schematic) { + if (Baritone.settings().mapArtMode.value) { + schematic = new MapArtSchematic((IStaticSchematic) schematic); + } + + if (Baritone.settings().buildOnlySelection.value) { + schematic = new SelectionSchematic(schematic, origin, baritone.getSelectionManager().getSelections()); + } + return schematic; + } + @Override public void buildOpenSchematic() { if (SchematicaHelper.isSchematicaPresent()) { @@ -217,7 +221,8 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil try { LitematicaSchematic schematic1 = new LitematicaSchematic(CompressedStreamTools.readCompressed(Files.newInputStream(LitematicaHelper.getSchematicFile(i).toPath())), false); Vec3i correctedOrigin = LitematicaHelper.getCorrectedOrigin(schematic1, i); - LitematicaSchematic schematic2 = LitematicaHelper.blackMagicFuckery(schematic1, i); + ISchematic schematic2 = LitematicaHelper.blackMagicFuckery(schematic1, i); + schematic2 = applyMapArtAndSelection(origin, schematic2); build(name, schematic2, correctedOrigin); } catch (IOException e) { logDirect("Schematic File could not be loaded.");