diff --git a/Cargo.toml b/Cargo.toml index 0a4864cee41f0f618ae3bd477dd402fcc1ddf89b..f2b55b8ac6c25c0b91b98e88220ae5c4530281d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "micro_banimate" -version = "0.2.1" +version = "0.3.0" edition = "2021" license = "Apache-2.0" description = "Easily manage complex Bevy 2D sprite animations" diff --git a/src/query.rs b/src/query.rs index f9bce484485ea07462d12dc1a0728496f0e8d201..c619e6396c47eafea0630c61cb696efcb2485d56 100644 --- a/src/query.rs +++ b/src/query.rs @@ -265,10 +265,22 @@ impl<'w, 's> AnimationQuery<'w, 's> { }; if let Ok(mut status) = self.action_animation.get_mut(entity) { - let current = match sheet.get(&status.name) { + let (a, b) = match self.direction.get(entity) { + Ok(dir) => { + let directional = format!("{}_{}", status.name, dir); + (directional, status.name.clone()) + } + Err(_) => (status.name.clone(), status.name.clone()), + }; + + let current = match sheet.get(&a).or_else(|| sheet.get(&b)) { Some(set) => set, None => { self.commands.entity(entity).remove::<AnimationOverride>(); + self.events.send(AnimationCompleted { + entity, + user_data: status.user_data, + }); continue; } };