BuildInLayers doesn't work as expected
Blizzen opened this issue ยท 5 comments
Some information
Operating system: Windows 10 Pro (22H2)
Java version: Java 8 update 351
Minecraft version: 1.20.4 (specifically "fabric-loader-0.15.7-1.20.4")
Baritone version: baritone-standalone-fabric-1.10.2
Other mods (if used): Litematica (litematica-fabric-1.20.4-0.17.0), MaLiLib (malilib-fabric-1.20.4-0.18.1)
Exception, error or logs
Please find your latest.log
or debug.log
in this folder and attach it to the issue
latest.log
How to reproduce
1.) open and place a schematic using litematica
2.) enable #Buildinlayers
3.) ensure #layerorder is false
4.) observe baritone place blocks in layer 1,2,3, and 4 at the same time, while still on "layer 4"
5.) this is not expected as BuildInLayers is described as "Don't consider the next layer in builder until the current one is done". Building layer 1,2, and 3 while layer 4 is incomplete and currently being built runs counter to this description.
Modified settings
(these are my current settings - from a fresh install, I observed the same interaction only editing #buildinlayers and #layerorder)
allowBreak false
allowInventory true
buildIgnoreExisting true
buildInLayers true
skipFailedLayers true
Final checklist
- I know how to properly use check boxes
- I have included the version of Minecraft I'm running, baritone's version and forge mods (if used).
- I have included logs, exceptions and / or steps to reproduce the issue.
- I have not used any OwO's or UwU's in this issue.
I have another bug with #StartAtLayer that I have a feeling is related to the above report - I will wait to submit that issue until this is confirmed as a bug.
I figured out that whenever I experience this issue, it seems like baritone isn't taking #buildinlayers into account., as it is missing the "starting layer x" text in debug/chat. But that would be a different issue, I can make a new issue when I figure out how to replicate this
Its not necessarily skipping failed layers, as in my tests there were no failed layers due to it being a small schematic for testing with 100% of required blocks. For example, if my schematic is a wall 2 blocks tall, #layerorder true, the expected outcome is building (locally) the top layer first. However, the builder will place layer 1 and 2 simultaneously, rather than "bridging" along the 2nd layer (or skipping the second layer entirely due to #skipfailedlayers). Please let me know if I am misunderstanding.
You have skipFailedLayers
enabled so if it says it skipped a layer and then starts placing on the next that's probably working as intended. Due to how BuilderProcess
works it can decide it can't build a layer if there is nothing to do locally, even if walking a few blocks over would allow it to continue on the current layer.