new: add chunk sections counting oversized blocks and reduce number of blocks collision is checked against #84
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.
This PR adds oversized block counting to chunk sections and an performance improvement based on that information.
If a chunk section has no oversized blocks (larger than full cube / no shape cache) it won't be necessary to check all the blocks around an entity while moving, as all blocks are known to be at most 1 block big. Of course this is checked seperately for each chunk section around the entity.
This PR also improves the block collision sweeper to test all necessary blocks in one chunk section at a time, allowing it to not repeat the above oversized block count check and also allowing it to cache the Chunk and ChunkSection until moving to checking collisions in the next one.
For example with item entites there was a visible improvement: https://cdn.discordapp.com/attachments/648967810139029505/713070457196249088/Screenshot_at_2020-05-21_18-47-00.png