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;
 					}
 				};