refactor: do light merging later, remove ChunkProcessingPipeline #4879
+91
−1,010
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.
Contains
Most of the complexity around
ChunkProcessingPipeline
is because of the need to support chunk tasks which require neighboring chunks. The only task which requires that is light merging, so this PR experiments with moving light merging to after the main chunk processing phase. This makes it so that chunks appear in the world immediately after their generated, but will have their lighting updated when neighboring chunks are generated, instead of waiting for the neighbors to generate to appear at all. It also meansChunkProcessingPipeline
can be removed entirely, and replaced with fairly simple usage of the Reactor APIs.How to test
Try generating a world, loading a world, playing in multiplayer. My multiplayer doesn't really seem to work right now anyway so I haven't tested whether this PR breaks it.
Outstanding before merging
Is there any reason besides light merging to support chunk tasks with multiple requirements? If so, the complexity might be worth it.