The old row-by-row iterator pattern decremented in opposite order in the X-Z plane than it incremented (starting at the highest Z, and decrementing it over time)
The zigzag pattern both increments and decrements in the same direction in the X-Z plane, starting at the lowest X and Z coordinate.
The quarrier was relying on the order of the row-by-row pattern, and only calculated solid blocks and entities for the row with the highest Z-value (as it decrements the iterator in both those cases).
This led to an infinite loop, where the resources where not calculating correctly. They then started building the first row (using NULL_POS, so the first plane was done correctly), and needed blocks that where not known to the building,
which forced them to recalculate the resources, etc.
[X] Yes I tested this before submitting it.
[ ] I also did a multiplayer test.
Closes #9950 Closes # Closes #
Changes proposed in this pull request:
NULL_POS
, so the first plane was done correctly), and needed blocks that where not known to the building, which forced them to recalculate the resources, etc.[X] Yes I tested this before submitting it. [ ] I also did a multiplayer test.
Review please