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 breaks out a new
QueryFilter
type fromHecsQuery
. HecsQueries likeChanged<T>
,With<T>
, andWithout<T>
have becomeQueryFilters
. The new Query interface now looks like this:Query<Q: HecsQuery, F: QueryFilter = ()>
Ex:
Query<&A>
->Query<&A>
(no change)Query<With<X, With<Y, (&A, &mut B)>>>
->Query<(&A, &mut B), (With<X>, With<Y>)>
Query<Changed<A>>
->Query<&A, Changed<A>>
All direct world query functions now have "filtered" variants. Ex:
world.query<Q: HecsQuery>
andworld.query_filtered<Q: HecsQuery, F: QueryFilter>
variants.This resolves a number of issues:
With<X, With<Y, (&A, &mut B)>>
are hard to visually parseThis is how a "real" system changes:
Before
After