Skip to content

Commit

Permalink
v0.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
aevyrie committed Aug 25, 2023
1 parent 53b0e50 commit 6e352e1
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 23 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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 = [
Expand Down
11 changes: 9 additions & 2 deletions crates/bevy_eventlistener_core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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 = []
18 changes: 9 additions & 9 deletions crates/bevy_eventlistener_core/src/callbacks.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
use bevy::{ecs::system::BoxedSystem, prelude::*};
use bevy_ecs::{prelude::*, system::BoxedSystem};

use crate::EntityEvent;

pub trait CallbackSystemTrait: System<In = (), Out = ()> + Reflect {}

#[derive(Default, Debug)]
pub enum CallbackSystem {
#[default]
Expand Down Expand Up @@ -52,16 +50,18 @@ pub type ListenerMut<'w, E> = ResMut<'w, ListenerInput<E>>;
/// 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<MyEvent>) {
/// event.foo += 1; // Mutate the event that is being bubbled
/// event.target(); // The entity that was originally targeted
Expand Down
7 changes: 3 additions & 4 deletions crates/bevy_eventlistener_core/src/event_dispatcher.rs
Original file line number Diff line number Diff line change
@@ -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},
Expand Down
8 changes: 6 additions & 2 deletions crates/bevy_eventlistener_core/src/event_listener.rs
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -101,6 +103,7 @@ impl<E: EntityEvent> On<E> {
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::<C>(),
Expand Down Expand Up @@ -151,6 +154,7 @@ impl<E: EntityEvent> On<E> {
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::<C>(),
Expand Down
3 changes: 2 additions & 1 deletion crates/bevy_eventlistener_core/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
4 changes: 2 additions & 2 deletions crates/bevy_eventlistener_derive/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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"

0 comments on commit 6e352e1

Please sign in to comment.