feat: support any, all and not component/tag filters on Query #3380
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.
Improves
ex.Query
to support "any" and "not" filters for components, as well as all/any/not tags filters. The intention is for this to replaceex.TagQuery
, but that is not (yet) in this PR.With this change, this would much easily allow systems to exclude entities with tags. For example, GraphicsSystem could now exclude any Entity with an
ex.offscreen
tag instead of manually checking in its update. This could also be used for #3076 by adding a tag to an Entity while paused that excludes it from systems.I also removed the restriction of throwing on empty component queries, as I think it could make sense to have a system that applies for every Entity. I can change this, though.
There's also some code quality changes here.
fit
tests (as I've accidentally committed those before)CAPTURE_CONSOLE=true npm run test
as I'd previously have to edit the karma config file.===:clipboard: PR Checklist :clipboard:===
==================
Closes #
Changes: