Fixes QueryChanged for Multiple Worlds#156
Open
TheyCallMeRyan wants to merge 1 commit into
Open
Conversation
Each world has a unique component proxy allowing queryChanged to get its own pristine hookStorage in each world.
Author
|
Might be worth noting for issue 147 - the warning in the docs that removing entities with world:clear() won't be reported by queryChanged is still valid; this just makes it so the world can still be used afterwards and perform as expected. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposed changes
Has queryChanged create a proxy for each component, allowing each world to get its own unique hookState from useHookState
Related issues
Primarily intended to solve: #155
Has a side-effect of solving: #147 since clearing the proxies will clear the queryChanged storage.
Additional comments
I had an alternate solution initially where I created the local world storage based on the hookState, but I think that resulted in a far messier solution. TheyCallMeRyan@cb39966
Both solutions fix both issues though.