Use LinkedHashSet
for Breadth First Search.
#2697
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
When using a spray can that runs out partway through, we want to paint the nearest blocks, rather than a random selection of discovered blocks.
Implementation Details
I changed all the methods of
BreadthFirstBlockSearch
to return aLinkedHashSet
instead of aHashSet
, so that the caller can iterate the results in the order found. I could have left.search
unchanged, but I think having a consistent behavior for all the methods makes more sense.Outcome
When a spray can runs out while spraying, the nearest blocks to the initial block will be painted, rather than a random assortment of blocks within range.