diff --git a/CHANGELOG.md b/CHANGELOG.md index 988f7c0..dd396f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 0.5.0 + +- Removed: public dead code trait CallbackSystemTrait has been removed. +- Removed: many dependencies have been removed by relying on bevy sub-crates. + # 0.4.1 - Added: public `EventListenerSet` set label added, and all plugin systems added to the set. diff --git a/Cargo.toml b/Cargo.toml index b93253b..e3c2f2e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ resolver = "2" [package] name = "bevy_eventlistener" -version = "0.4.1" +version = "0.5.0" edition = "2021" description = "Event listeners and callbacks for bevy" license = "MIT OR Apache-2.0" @@ -15,8 +15,8 @@ keywords = ["gamedev", "bevy", "eventlistener", "callbacks"] categories = ["game-engines", "rendering"] [dependencies] -bevy_eventlistener_core = { path = "crates/bevy_eventlistener_core", version = "0.4.1" } -bevy_eventlistener_derive = { path = "crates/bevy_eventlistener_derive", version = "0.4.1" } +bevy_eventlistener_core = { path = "crates/bevy_eventlistener_core", version = "0.5.0" } +bevy_eventlistener_derive = { path = "crates/bevy_eventlistener_derive", version = "0.5.0" } [dev-dependencies] bevy = { version = "0.11", default-features = false, features = [ diff --git a/crates/bevy_eventlistener_core/Cargo.toml b/crates/bevy_eventlistener_core/Cargo.toml index bcf888a..3f70794 100644 --- a/crates/bevy_eventlistener_core/Cargo.toml +++ b/crates/bevy_eventlistener_core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy_eventlistener_core" -version = "0.4.1" +version = "0.5.0" edition = "2021" description = "Event listeners and callbacks for bevy" license = "MIT OR Apache-2.0" @@ -9,4 +9,11 @@ keywords = ["gamedev", "bevy", "eventlistener", "callbacks"] categories = ["game-engines", "rendering"] [dependencies] -bevy = { version = "0.11", default-features = false } +bevy_ecs = "0.11" +bevy_app = "0.11" +bevy_utils = "0.11" +bevy_hierarchy = "0.11" + +[features] +default = ["trace"] +trace = [] diff --git a/crates/bevy_eventlistener_core/src/callbacks.rs b/crates/bevy_eventlistener_core/src/callbacks.rs index 7fc1d53..08fa2e3 100644 --- a/crates/bevy_eventlistener_core/src/callbacks.rs +++ b/crates/bevy_eventlistener_core/src/callbacks.rs @@ -1,9 +1,7 @@ -use bevy::{ecs::system::BoxedSystem, prelude::*}; +use bevy_ecs::{prelude::*, system::BoxedSystem}; use crate::EntityEvent; -pub trait CallbackSystemTrait: System + Reflect {} - #[derive(Default, Debug)] pub enum CallbackSystem { #[default] @@ -52,16 +50,18 @@ pub type ListenerMut<'w, E> = ResMut<'w, ListenerInput>; /// callback systems. /// /// ``` -/// # use bevy_eventlistener::callbacks::ListenerMut; -/// # use bevy_eventlistener_derive::EntityEvent; -/// # use bevy_eventlistener::event_listener::EntityEvent; -/// # use bevy::prelude::*; -/// # #[derive(EntityEvent, Clone)] +/// # use bevy_eventlistener_core::{callbacks::ListenerMut, event_listener::EntityEvent}; +/// # use bevy_ecs::prelude::*; +/// # #[derive(Clone, Event)] /// # struct MyEvent { -/// # #[target] /// # target: Entity, /// # foo: usize, /// # } +/// # impl EntityEvent for MyEvent { +/// # fn target(&self) -> Entity { +/// # self.target +/// # } +/// # } /// fn my_callback(mut event: ListenerMut) { /// event.foo += 1; // Mutate the event that is being bubbled /// event.target(); // The entity that was originally targeted diff --git a/crates/bevy_eventlistener_core/src/event_dispatcher.rs b/crates/bevy_eventlistener_core/src/event_dispatcher.rs index def254c..14c381d 100644 --- a/crates/bevy_eventlistener_core/src/event_dispatcher.rs +++ b/crates/bevy_eventlistener_core/src/event_dispatcher.rs @@ -1,7 +1,6 @@ -use bevy::{ - prelude::*, - utils::{HashMap, HashSet}, -}; +use bevy_ecs::prelude::*; +use bevy_hierarchy::Parent; +use bevy_utils::{HashMap, HashSet}; use crate::{ callbacks::{CallbackSystem, ListenerInput}, diff --git a/crates/bevy_eventlistener_core/src/event_listener.rs b/crates/bevy_eventlistener_core/src/event_listener.rs index 7d42e90..e305e71 100644 --- a/crates/bevy_eventlistener_core/src/event_listener.rs +++ b/crates/bevy_eventlistener_core/src/event_listener.rs @@ -1,10 +1,12 @@ use std::marker::PhantomData; use crate::callbacks::{CallbackSystem, ListenerInput}; -use bevy::{ - ecs::system::{Command, EntityCommands}, +use bevy_ecs::{ prelude::*, + system::{Command, EntityCommands}, }; +#[cfg(feature = "trace")] +use bevy_utils::tracing::error; /// An event that targets a specific entity, and should support event listeners and bubbling. pub trait EntityEvent: Event + Clone { @@ -101,6 +103,7 @@ impl On { if let Ok(mut component) = query.get_mut(event.target()) { func(&event, &mut component); } else { + #[cfg(feature = "trace")] error!( "Component {:?} not found on entity {:?} during callback for event {:?}", std::any::type_name::(), @@ -151,6 +154,7 @@ impl On { if let Ok(mut component) = query.get_mut(event.listener()) { func(&event, &mut component); } else { + #[cfg(feature = "trace")] error!( "Component {:?} not found on entity {:?} during callback for event {:?}", std::any::type_name::(), diff --git a/crates/bevy_eventlistener_core/src/lib.rs b/crates/bevy_eventlistener_core/src/lib.rs index 653264a..e19cd34 100644 --- a/crates/bevy_eventlistener_core/src/lib.rs +++ b/crates/bevy_eventlistener_core/src/lib.rs @@ -1,6 +1,7 @@ //! Core implementation of event listening, bubbling, and callbacks. -use bevy::prelude::*; +use bevy_app::prelude::*; +use bevy_ecs::prelude::*; use event_dispatcher::EventDispatcher; use event_listener::EntityEvent; diff --git a/crates/bevy_eventlistener_derive/Cargo.toml b/crates/bevy_eventlistener_derive/Cargo.toml index e31592b..51ccacb 100644 --- a/crates/bevy_eventlistener_derive/Cargo.toml +++ b/crates/bevy_eventlistener_derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy_eventlistener_derive" -version = "0.4.1" +version = "0.5.0" edition = "2021" description = "Event listeners and callbacks for bevy" license = "MIT OR Apache-2.0" @@ -12,7 +12,7 @@ categories = ["game-engines", "rendering"] proc-macro = true [dependencies] -bevy_eventlistener_core = { path = "../bevy_eventlistener_core", version = "0.4.1" } +bevy_eventlistener_core = { path = "../bevy_eventlistener_core", version = "0.5.0" } quote = "1" syn = "2" proc-macro2 = "1"