From 19e992287cad04b0adad28349f4aeca4681e1597 Mon Sep 17 00:00:00 2001
From: Louis <contact@louiscap.co>
Date: Sun, 27 Apr 2025 22:45:14 +0100
Subject: [PATCH] Upgrade to Bevy 0.16

---
 Cargo.toml |  5 ++---
 README.md  |  1 +
 src/lib.rs | 30 +++++++++++++++---------------
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 4aa7532..0e23971 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "micro_bevy_world_utils"
-version = "0.6.0"
+version = "0.7.0"
 edition = "2021"
 license = "Apache-2.0"
 description = "Handy, reusable utilities for working with direct world access in a Bevy exclusive system"
@@ -10,5 +10,4 @@ authors = [
 repository = "https://lab.lcr.gr/microhacks/micro-bevy-world-utils"
 
 [dependencies]
-bevy_ecs = "0.15"
-bevy_hierarchy = "0.15"
+bevy_ecs = "0.16"
diff --git a/README.md b/README.md
index 3e6cb3e..da3c8a7 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,7 @@ the given entities, the result will be `None`
 
 | world_utiles ver | bevy ver |
 |------------------|----------|
+| 0.7              | 0.16     |
 | 0.6              | 0.15     |
 | 0.5              | 0.14     |
 | 0.4              | 0.13     |
diff --git a/src/lib.rs b/src/lib.rs
index 9a301e5..8a69daf 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -35,7 +35,7 @@ use bevy_ecs::{
 	system::{Query, SystemState},
 	world::World,
 };
-use bevy_hierarchy::Parent;
+use bevy_ecs::hierarchy::ChildOf;
 
 pub type Left = Entity;
 pub type Right = Entity;
@@ -72,20 +72,20 @@ fn inner_get_left_right_parent_entities<
 ) -> Option<SortedEntities> {
 	let mut state = SystemState::<(
 		Query<(), LeftSide>,
-		Query<&Parent, RightSide>,
+		Query<&ChildOf, RightSide>,
 		Query<(), ParentSide>,
 	)>::new(world);
 	let (left_query, right_query, parent_query) = state.get(world);
 	if left_query.contains(*first) {
-		if let Ok(parent) = right_query.get(*second) {
-			let parent = parent.get();
+		if let Ok(related) = right_query.get(*second) {
+			let parent = related.parent();
 			if parent_query.contains(parent) {
 				return Some((*first, parent));
 			}
 		}
 	} else if left_query.contains(*second) {
-		if let Ok(parent) = right_query.get(*first) {
-			let parent = parent.get();
+		if let Ok(related) = right_query.get(*first) {
+			let parent = related.parent();
 			if parent_query.contains(parent) {
 				return Some((*second, parent));
 			}
@@ -106,25 +106,25 @@ fn inner_get_left_parent_right_parent_entities<
 	second: &Entity,
 ) -> Option<SortedEntities> {
 	let mut state = SystemState::<(
-		Query<&Parent, LeftSide>,
-		Query<&Parent, RightSide>,
+		Query<&ChildOf, LeftSide>,
+		Query<&ChildOf, RightSide>,
 		Query<(), LeftParent>,
 		Query<(), RightParent>,
 	)>::new(world);
 	let (left_query, right_query, left_parent_query, right_parent_query) = state.get(world);
 	if let Ok(left_parent) = left_query.get(*first) {
-		if left_parent_query.contains(left_parent.get()) {
+		if left_parent_query.contains(left_parent.parent()) {
 			if let Ok(right_parent) = right_query.get(*second) {
-				if right_parent_query.contains(right_parent.get()) {
-					return Some((left_parent.get(), right_parent.get()));
+				if right_parent_query.contains(right_parent.parent()) {
+					return Some((left_parent.parent(), right_parent.parent()));
 				}
 			}
 		}
 	} else if let Ok(left_parent) = left_query.get(*second) {
-		if left_parent_query.contains(left_parent.get()) {
+		if left_parent_query.contains(left_parent.parent()) {
 			if let Ok(right_parent) = right_query.get(*first) {
-				if right_parent_query.contains(right_parent.get()) {
-					return Some((left_parent.get(), right_parent.get()));
+				if right_parent_query.contains(right_parent.parent()) {
+					return Some((left_parent.parent(), right_parent.parent()));
 				}
 			}
 		}
@@ -246,7 +246,7 @@ pub fn send_event<Event: bevy_ecs::event::Event + Sync + Send + 'static>(
 ) {
 	SystemState::<EventWriter<Event>>::new(world)
 		.get_mut(world)
-		.send(event);
+		.write(event);
 }
 
 /// Clone the data from a specific component of the target entity, as long as that entity
-- 
GitLab