diff --git a/Cargo.toml b/Cargo.toml index 2ce5f9b..1055be7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,24 +3,24 @@ members = ["bevy_quadtree"] resolver = "2" [workspace.package] -version = "0.15.2" +version = "0.16.0" authors = ["Louis <836250617@qq.com>"] description = "A quadtree plugin for bevy" license = "MIT" -edition = "2021" +edition = "2024" repository = "https://github.com/kingwingfly/bevy_quadtree" documentation = "https://docs.rs/bevy_quadtree" [workspace.dependencies] bevy_quadtree = { path = "bevy_quadtree" } -bevy_app = { version = "0.15.2", default-features = false } -bevy_ecs = { version = "0.15.2", default-features = false } -bevy_math = { version = "0.15.2", default-features = false } -bevy_gizmos = { version = "0.15.2", default-features = false } -bevy_sprite = { version = "0.15.2", default-features = false } -bevy_transform = { version = "0.15.2", default-features = false } -bevy_color = { version = "0.15.2", default-features = false } -bevy_log = { version = "0.15.2", default-features = false } +bevy_app = { version = "0.16.0", default-features = false } +bevy_ecs = { version = "0.16.0", default-features = false } +bevy_math = { version = "0.16.0", default-features = true } +bevy_gizmos = { version = "0.16.0", default-features = false } +bevy_sprite = { version = "0.16.0", default-features = false } +bevy_transform = { version = "0.16.0", default-features = false } +bevy_color = { version = "0.16.0", default-features = false } +bevy_log = { version = "0.16.0", default-features = false } [profile.dev] diff --git a/bevy_quadtree/README.md b/bevy_quadtree/README.md index 101f52b..466c7d4 100644 --- a/bevy_quadtree/README.md +++ b/bevy_quadtree/README.md @@ -105,7 +105,7 @@ The QuadTree's type params is simplified to only `ID` as well. ```toml [dependencies] -bevy_quadtree = { version = "0.15.2" } +bevy_quadtree = { version = "0.16.0" } ``` 2. Add the plugin to your Bevy app: diff --git a/bevy_quadtree/src/plugin/mod.rs b/bevy_quadtree/src/plugin/mod.rs index b720f59..a761c78 100644 --- a/bevy_quadtree/src/plugin/mod.rs +++ b/bevy_quadtree/src/plugin/mod.rs @@ -4,20 +4,21 @@ #[cfg(feature = "multi-quadtree")] mod multi_plugin; -#[cfg(feature = "multi-quadtree")] -pub use multi_plugin::{ - AsQuadTreePluginConfig, MultiQuadTreePlugin, QTConfig, QuadTreePluginConfig, -}; - use crate::collision::{AsDynCollision, UpdateCollision}; use crate::system::{update_collision, update_quadtree}; use crate::tree::QuadTree; use bevy_app::prelude::*; +use bevy_ecs::component::Mutable; use bevy_ecs::prelude::*; -use bevy_ecs::schedule::{IntoSystemConfigs, SystemConfigs}; +use bevy_ecs::schedule::ScheduleConfigs; +use bevy_ecs::system::ScheduleSystem; #[cfg(feature = "sprite")] use bevy_sprite::Sprite; use bevy_transform::prelude::*; +#[cfg(feature = "multi-quadtree")] +pub use multi_plugin::{ + AsQuadTreePluginConfig, MultiQuadTreePlugin, QTConfig, QuadTreePluginConfig, +}; /// A Bevy plugin for quadtree. /// # Type Parameters @@ -92,16 +93,16 @@ pub struct QuadTreePlugin< } impl< - P, - const D: usize, - const N: usize, - const W: usize, - const H: usize, - const X: usize, - const Y: usize, - const K: usize, - const ID: usize, - > Default for QuadTreePlugin
+ P, + const D: usize, + const N: usize, + const W: usize, + const H: usize, + const X: usize, + const Y: usize, + const K: usize, + const ID: usize, +> Default for QuadTreePlugin
where P: TrackingPair, { @@ -113,16 +114,16 @@ where } impl< - P, - const N: usize, - const D: usize, - const W: usize, - const H: usize, - const X: usize, - const Y: usize, - const K: usize, - const ID: usize, - > Plugin for QuadTreePlugin
+ P, + const N: usize, + const D: usize, + const W: usize, + const H: usize, + const X: usize, + const Y: usize, + const K: usize, + const ID: usize, +> Plugin for QuadTreePlugin
where
P: TrackingPair,
{
@@ -144,12 +145,12 @@ where
/// Also implemented for tuple of `(S, C)` pairs.
pub trait TrackingPair: Send + Sync + 'static {
/// return the system to update collision
- fn update_collision() -> SystemConfigs;
+ fn update_collision() -> ScheduleConfigs ]: TrackingPair),+
{
- fn update_collision() -> SystemConfigs {
+ fn update_collision() -> ScheduleConfigs ]::update_collision()),+,).ambiguous_with_all()
}
fn update_quadtree TrackingPair for (S, $c)
where
- S: Component + AsDynCollision + UpdateCollision<$c> + Clone,
+ S: Component.ambiguous_with_all()
}
- fn update_quadtree.ambiguous_with_all()
}
#[cfg(feature = "gizmos")]
- fn show_boundary.ambiguous_with_all()
}
@@ -188,19 +189,19 @@ macro_rules! impl_tracking_pair_tuple {
($($c: ty),+) => {
impl TrackingPair for (S, ($($c),+,))
where
- S: Component + AsDynCollision + $(UpdateCollision<$c>+)+ Clone,
+ S: Component, so chain them
($(update_collision::),+,).chain()
}
fn update_quadtree.ambiguous_with_all()
}
#[cfg(feature = "gizmos")]
fn show_boundary.ambiguous_with_all()
}
@@ -227,12 +228,12 @@ macro_rules! impl_tracking_pairs {
where
$([(mut q: Query<(&mut S, &C), Changed