From 1c98b2de168045094930780bc167c75ee66c7429 Mon Sep 17 00:00:00 2001 From: Peepo-Juice Date: Fri, 26 Jul 2024 22:38:33 -0400 Subject: [PATCH] trigger observers when TweenCompleted event is sent --- src/tweenable.rs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/tweenable.rs b/src/tweenable.rs index 8443773..b03e40c 100644 --- a/src/tweenable.rs +++ b/src/tweenable.rs @@ -791,10 +791,19 @@ impl Tweenable for Tween { // If completed at least once this frame, notify the user if times_completed > 0 { if let Some(user_data) = &self.event_data { - events.send(TweenCompleted { + let event = TweenCompleted { entity, user_data: *user_data, - }); + }; + + // send regular event + events.send(event); + + // trigger all global observers + commands.trigger(event); + + // trigger all entity-scoped observers + commands.trigger_targets(event, [entity]); } if let Some(cb) = &self.on_completed { cb(entity, self); @@ -1321,10 +1330,19 @@ impl Tweenable for Delay { // If completed this frame, notify the user if (state == TweenState::Completed) && !was_completed { if let Some(user_data) = &self.event_data { - events.send(TweenCompleted { + let event = TweenCompleted { entity, user_data: *user_data, - }); + }; + + // send regular event + events.send(event); + + // trigger all global observers + commands.trigger(event); + + // trigger all entity-scoped observers + commands.trigger_targets(event, [entity]); } if let Some(cb) = &self.on_completed { cb(entity, self);