bevy/crates/bevy_ecs/src
NiseVoid de5486725d
Add DefaultQueryFilters (#13120)
# Objective

Some usecases in the ecosystems are blocked by the inability to stop
bevy internals and third party plugins from touching their entities.
However the specifics of a general purpose entity disabling system are
controversial and further complicated by hierarchies. We can partially
unblock these usecases with an opt-in approach: default query filters.

## Solution

- Introduce DefaultQueryFilters, these filters are automatically applied
to queries that don't otherwise mention the filtered component.
- End users and third party plugins can register default filters and are
responsible for handling entities they have hidden this way.
- Extra features can be left for after user feedback
- The default value could later include official ways to hide entities

---

## Changelog

- Add DefaultQueryFilters
2025-01-20 21:57:39 +00:00
..
entity remove unsound DerefMut impls from EntityHashMap/EntityHashSet (#17450) 2025-01-20 21:28:28 +00:00
event Remove Event: Component trait bound using a wrapper type which impls Component (#17380) 2025-01-15 18:42:47 +00:00
identifier bevy_ecs: Apply #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] (#17335) 2025-01-14 21:37:41 +00:00
observer Support non-Vec data structures in relations (#17447) 2025-01-20 21:26:08 +00:00
query Add DefaultQueryFilters (#13120) 2025-01-20 21:57:39 +00:00
reflect Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
relationship Support non-Vec data structures in relations (#17447) 2025-01-20 21:26:08 +00:00
schedule Diagnostics for label traits (#17441) 2025-01-20 21:51:26 +00:00
storage Fix a few typos (#17292) 2025-01-10 22:48:30 +00:00
system docs: enhance documentation in query.rs to clarify borrowing rules (#17370) 2025-01-20 21:31:20 +00:00
world Support non-Vec data structures in relations (#17447) 2025-01-20 21:26:08 +00:00
archetype.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
batching.rs Fix *most* clippy lints (#15906) 2024-10-14 20:52:35 +00:00
bundle.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
change_detection.rs bevy_ecs: Apply #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] (#17335) 2025-01-14 21:37:41 +00:00
component.rs Create bevy_platform_support Crate (#17250) 2025-01-20 20:45:30 +00:00
entity_disabling.rs Add DefaultQueryFilters (#13120) 2025-01-20 21:57:39 +00:00
hierarchy.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
intern.rs Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
label.rs Add compile-time dyn compatible checks for DynEq, DynHash (#17254) 2025-01-09 07:30:54 +00:00
lib.rs Add DefaultQueryFilters (#13120) 2025-01-20 21:57:39 +00:00
name.rs Remove Implicit std Prelude from no_std Crates (#17086) 2025-01-03 01:58:43 +00:00
removal_detection.rs Replace map + unwrap_or(true) with is_none_or (#17070) 2024-12-31 20:17:03 +00:00
result.rs Add no_std support to bevy_ecs (#16758) 2024-12-17 21:40:36 +00:00
traversal.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00