Skip to content

Commit 367b15e

Browse files
authored
Feature/upgrade bevy to0160 (#3)
* upgraded to bevy 0.16 * updated version in README
1 parent e2b9d68 commit 367b15e

File tree

7 files changed

+57
-55
lines changed

7 files changed

+57
-55
lines changed

Cargo.toml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,24 @@ members = ["bevy_quadtree"]
33
resolver = "2"
44

55
[workspace.package]
6-
version = "0.15.2"
6+
version = "0.16.0"
77
authors = ["Louis <[email protected]>"]
88
description = "A quadtree plugin for bevy"
99
license = "MIT"
10-
edition = "2021"
10+
edition = "2024"
1111
repository = "https://github.com/kingwingfly/bevy_quadtree"
1212
documentation = "https://docs.rs/bevy_quadtree"
1313

1414
[workspace.dependencies]
1515
bevy_quadtree = { path = "bevy_quadtree" }
16-
bevy_app = { version = "0.15.2", default-features = false }
17-
bevy_ecs = { version = "0.15.2", default-features = false }
18-
bevy_math = { version = "0.15.2", default-features = false }
19-
bevy_gizmos = { version = "0.15.2", default-features = false }
20-
bevy_sprite = { version = "0.15.2", default-features = false }
21-
bevy_transform = { version = "0.15.2", default-features = false }
22-
bevy_color = { version = "0.15.2", default-features = false }
23-
bevy_log = { version = "0.15.2", default-features = false }
16+
bevy_app = { version = "0.16.0", default-features = false }
17+
bevy_ecs = { version = "0.16.0", default-features = false }
18+
bevy_math = { version = "0.16.0", default-features = true }
19+
bevy_gizmos = { version = "0.16.0", default-features = false }
20+
bevy_sprite = { version = "0.16.0", default-features = false }
21+
bevy_transform = { version = "0.16.0", default-features = false }
22+
bevy_color = { version = "0.16.0", default-features = false }
23+
bevy_log = { version = "0.16.0", default-features = false }
2424

2525

2626
[profile.dev]

bevy_quadtree/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ The QuadTree's type params is simplified to only `ID` as well.
105105

106106
```toml
107107
[dependencies]
108-
bevy_quadtree = { version = "0.15.2" }
108+
bevy_quadtree = { version = "0.16.0" }
109109
```
110110

111111
2. Add the plugin to your Bevy app:

bevy_quadtree/src/plugin/mod.rs

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,21 @@
44
#[cfg(feature = "multi-quadtree")]
55
mod multi_plugin;
66

7-
#[cfg(feature = "multi-quadtree")]
8-
pub use multi_plugin::{
9-
AsQuadTreePluginConfig, MultiQuadTreePlugin, QTConfig, QuadTreePluginConfig,
10-
};
11-
127
use crate::collision::{AsDynCollision, UpdateCollision};
138
use crate::system::{update_collision, update_quadtree};
149
use crate::tree::QuadTree;
1510
use bevy_app::prelude::*;
11+
use bevy_ecs::component::Mutable;
1612
use bevy_ecs::prelude::*;
17-
use bevy_ecs::schedule::{IntoSystemConfigs, SystemConfigs};
13+
use bevy_ecs::schedule::ScheduleConfigs;
14+
use bevy_ecs::system::ScheduleSystem;
1815
#[cfg(feature = "sprite")]
1916
use bevy_sprite::Sprite;
2017
use bevy_transform::prelude::*;
18+
#[cfg(feature = "multi-quadtree")]
19+
pub use multi_plugin::{
20+
AsQuadTreePluginConfig, MultiQuadTreePlugin, QTConfig, QuadTreePluginConfig,
21+
};
2122

2223
/// A Bevy plugin for quadtree.
2324
/// # Type Parameters
@@ -92,16 +93,16 @@ pub struct QuadTreePlugin<
9293
}
9394

9495
impl<
95-
P,
96-
const D: usize,
97-
const N: usize,
98-
const W: usize,
99-
const H: usize,
100-
const X: usize,
101-
const Y: usize,
102-
const K: usize,
103-
const ID: usize,
104-
> Default for QuadTreePlugin<P, N, D, W, H, X, Y, K, ID>
96+
P,
97+
const D: usize,
98+
const N: usize,
99+
const W: usize,
100+
const H: usize,
101+
const X: usize,
102+
const Y: usize,
103+
const K: usize,
104+
const ID: usize,
105+
> Default for QuadTreePlugin<P, N, D, W, H, X, Y, K, ID>
105106
where
106107
P: TrackingPair,
107108
{
@@ -113,16 +114,16 @@ where
113114
}
114115

115116
impl<
116-
P,
117-
const N: usize,
118-
const D: usize,
119-
const W: usize,
120-
const H: usize,
121-
const X: usize,
122-
const Y: usize,
123-
const K: usize,
124-
const ID: usize,
125-
> Plugin for QuadTreePlugin<P, N, D, W, H, X, Y, K, ID>
117+
P,
118+
const N: usize,
119+
const D: usize,
120+
const W: usize,
121+
const H: usize,
122+
const X: usize,
123+
const Y: usize,
124+
const K: usize,
125+
const ID: usize,
126+
> Plugin for QuadTreePlugin<P, N, D, W, H, X, Y, K, ID>
126127
where
127128
P: TrackingPair,
128129
{
@@ -144,12 +145,12 @@ where
144145
/// Also implemented for tuple of `(S, C)` pairs.
145146
pub trait TrackingPair: Send + Sync + 'static {
146147
/// return the system to update collision
147-
fn update_collision() -> SystemConfigs;
148+
fn update_collision() -> ScheduleConfigs<ScheduleSystem>;
148149
/// return the system to update quadtree
149-
fn update_quadtree<const ID: usize>() -> SystemConfigs;
150+
fn update_quadtree<const ID: usize>() -> ScheduleConfigs<ScheduleSystem>;
150151
/// return the system to show box
151152
#[cfg(feature = "gizmos")]
152-
fn show_boundary<const ID: usize>() -> SystemConfigs;
153+
fn show_boundary<const ID: usize>() -> ScheduleConfigs<ScheduleSystem>;
153154
/// return the shape id, to ensure no duplicate shape updating system added
154155
#[cfg(debug_assertions)]
155156
fn shape_id() -> std::any::TypeId;
@@ -159,16 +160,16 @@ macro_rules! impl_tracking_pair {
159160
($c: ty) => {
160161
impl<S> TrackingPair for (S, $c)
161162
where
162-
S: Component + AsDynCollision + UpdateCollision<$c> + Clone,
163+
S: Component<Mutability = Mutable> + AsDynCollision + UpdateCollision<$c> + Clone,
163164
{
164-
fn update_collision() -> SystemConfigs {
165+
fn update_collision() -> ScheduleConfigs<ScheduleSystem> {
165166
update_collision::<S, $c>.ambiguous_with_all()
166167
}
167-
fn update_quadtree<const ID: usize>() -> SystemConfigs {
168+
fn update_quadtree<const ID: usize>() -> ScheduleConfigs<ScheduleSystem> {
168169
update_quadtree::<S, ID>.ambiguous_with_all()
169170
}
170171
#[cfg(feature = "gizmos")]
171-
fn show_boundary<const ID: usize>() -> SystemConfigs {
172+
fn show_boundary<const ID: usize>() -> ScheduleConfigs<ScheduleSystem> {
172173
use crate::system::show_boundary;
173174
show_boundary::<S, ID>.ambiguous_with_all()
174175
}
@@ -188,19 +189,19 @@ macro_rules! impl_tracking_pair_tuple {
188189
($($c: ty),+) => {
189190
impl<S> TrackingPair for (S, ($($c),+,))
190191
where
191-
S: Component + AsDynCollision + $(UpdateCollision<$c>+)+ Clone,
192+
S: Component<Mutability = Mutable> + AsDynCollision + $(UpdateCollision<$c>+)+ Clone,
192193
{
193-
fn update_collision() -> SystemConfigs {
194+
fn update_collision() -> ScheduleConfigs<ScheduleSystem> {
194195
// update_collision has Mut<S>, so chain them
195196
($(update_collision::<S, $c>),+,).chain()
196197
}
197198
fn update_quadtree<const ID: usize>(
198-
) -> SystemConfigs {
199+
) -> ScheduleConfigs<ScheduleSystem> {
199200
update_quadtree::<S, ID>.ambiguous_with_all()
200201
}
201202
#[cfg(feature = "gizmos")]
202203
fn show_boundary<const ID: usize>(
203-
) -> SystemConfigs {
204+
) -> ScheduleConfigs<ScheduleSystem> {
204205
use crate::system::show_boundary;
205206
show_boundary::<S, ID>.ambiguous_with_all()
206207
}
@@ -227,12 +228,12 @@ macro_rules! impl_tracking_pairs {
227228
where
228229
$([<P $i>]: TrackingPair),+
229230
{
230-
fn update_collision() -> SystemConfigs {
231+
fn update_collision() -> ScheduleConfigs<ScheduleSystem> {
231232
// no duplicate shape in `P`s, so ambiguous_with_all
232233
($([<P $i>]::update_collision()),+,).ambiguous_with_all()
233234
}
234235
fn update_quadtree<const ID: usize>(
235-
) -> SystemConfigs {
236+
) -> ScheduleConfigs<ScheduleSystem> {
236237
#[cfg(debug_assertions)]
237238
{
238239
let mut set = std::collections::HashMap::new();
@@ -246,7 +247,7 @@ macro_rules! impl_tracking_pairs {
246247
}
247248
#[cfg(feature = "gizmos")]
248249
fn show_boundary<const ID: usize>(
249-
) -> SystemConfigs {
250+
) -> ScheduleConfigs<ScheduleSystem> {
250251
#[cfg(debug_assertions)]
251252
{
252253
let mut set = std::collections::HashMap::new();

bevy_quadtree/src/shape/circle.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use core::fmt;
55
use std::any::type_name;
66

77
use crate::{
8-
collision::{Collision, CollisionQuery, DynCollision, Relation, UpdateCollision},
98
CollisionRect, CollisionRotatedRect,
9+
collision::{Collision, CollisionQuery, DynCollision, Relation, UpdateCollision},
1010
};
1111

1212
/// Circle shape to be used in the QuadTreePlugin

bevy_quadtree/src/shape/rect.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ use core::fmt;
99
use std::any::type_name;
1010

1111
use crate::{
12-
collision::{Collision, CollisionQuery, DynCollision, Relation, UpdateCollision},
1312
CollisionCircle, CollisionRotatedRect,
13+
collision::{Collision, CollisionQuery, DynCollision, Relation, UpdateCollision},
1414
};
1515

1616
/// Rectagle shape to be used in the QuadTreePlugin

bevy_quadtree/src/shape/rotated_rect.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::{
2-
collision::{Collision, CollisionQuery, DynCollision, Relation, UpdateCollision},
32
CollisionCircle, CollisionRect,
3+
collision::{Collision, CollisionQuery, DynCollision, Relation, UpdateCollision},
44
};
55
use bevy_ecs::prelude::*;
66
#[cfg(feature = "sprite")]

bevy_quadtree/src/system.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::{
22
collision::{AsDynCollision, UpdateCollision},
33
tree::QuadTree,
44
};
5+
use bevy_ecs::component::Mutable;
56
use bevy_ecs::prelude::*;
67
#[cfg(feature = "gizmos")]
78
use bevy_gizmos::prelude::*;
@@ -10,7 +11,7 @@ use bevy_transform::components::GlobalTransform;
1011

1112
pub(crate) fn update_collision<S, C>(mut q: Query<(&mut S, &C), Changed<C>>)
1213
where
13-
S: Component + UpdateCollision<C> + Clone,
14+
S: Component<Mutability = Mutable> + UpdateCollision<C> + Clone,
1415
C: Component,
1516
{
1617
for (s, c) in q.iter_mut() {

0 commit comments

Comments
 (0)