diff options
| author | mat <git@matdoes.dev> | 2024-02-17 14:43:42 -0600 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2024-02-17 14:43:42 -0600 |
| commit | be4f13c36c281f086602092098522b3f25fc0680 (patch) | |
| tree | 599d2de84d06d7d1c31a908a2e89499c62e0a5ca /azalea-client/src/entity_query.rs | |
| parent | 64d48897afe5bcb40931f8ef8b3594fe275751e8 (diff) | |
| download | azalea-drasl-be4f13c36c281f086602092098522b3f25fc0680.tar.xz | |
upgrade deps, bevy 0.13
Diffstat (limited to 'azalea-client/src/entity_query.rs')
| -rw-r--r-- | azalea-client/src/entity_query.rs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/azalea-client/src/entity_query.rs b/azalea-client/src/entity_query.rs index 42b7b0ca..be892ee5 100644 --- a/azalea-client/src/entity_query.rs +++ b/azalea-client/src/entity_query.rs @@ -3,7 +3,8 @@ use std::sync::Arc; use bevy_ecs::{ component::Component, entity::Entity, - query::{ROQueryItem, ReadOnlyWorldQuery, WorldQuery}, + query::QueryData, + query::{QueryFilter, ROQueryItem}, world::World, }; use parking_lot::Mutex; @@ -22,13 +23,13 @@ impl Client { /// .is_some(); /// # } /// ``` - pub fn query<'w, Q: WorldQuery>(&self, ecs: &'w mut World) -> <Q as WorldQuery>::Item<'w> { - ecs.query::<Q>() + pub fn query<'w, D: QueryData>(&self, ecs: &'w mut World) -> D::Item<'w> { + ecs.query::<D>() .get_mut(ecs, self.entity) .unwrap_or_else(|_| { panic!( "Our client is missing a required component {:?}", - std::any::type_name::<Q>() + std::any::type_name::<D>() ) }) } @@ -58,7 +59,7 @@ impl Client { /// ``` /// /// [`Entity`]: bevy_ecs::entity::Entity - pub fn entity_by<F: ReadOnlyWorldQuery, Q: ReadOnlyWorldQuery>( + pub fn entity_by<F: QueryFilter, Q: QueryData>( &mut self, predicate: impl EntityPredicate<Q, F>, ) -> Option<Entity> { @@ -93,14 +94,14 @@ impl Client { } } -pub trait EntityPredicate<Q: ReadOnlyWorldQuery, Filter: ReadOnlyWorldQuery> { +pub trait EntityPredicate<Q: QueryData, Filter: QueryFilter> { fn find(&self, ecs_lock: Arc<Mutex<World>>) -> Option<Entity>; } impl<F, Q, Filter> EntityPredicate<Q, Filter> for F where F: Fn(&ROQueryItem<Q>) -> bool, - Q: ReadOnlyWorldQuery, - Filter: ReadOnlyWorldQuery, + Q: QueryData, + Filter: QueryFilter, { fn find(&self, ecs_lock: Arc<Mutex<World>>) -> Option<Entity> { let mut ecs = ecs_lock.lock(); @@ -114,8 +115,8 @@ where // impl<'a, F, Q1, Q2> EntityPredicate<'a, (Q1, Q2)> for F // where // F: Fn(&<Q1 as WorldQuery>::Item<'_>, &<Q2 as WorldQuery>::Item<'_>) -> -// bool, Q1: ReadOnlyWorldQuery, -// Q2: ReadOnlyWorldQuery, +// bool, Q1: QueryFilter, +// Q2: QueryFilter, // { // fn find(&self, ecs: &mut Ecs) -> Option<Entity> { // // (self)(query) |
