diff --git a/Content.Shared/Movement/Components/InputMoverComponent.cs b/Content.Shared/Movement/Components/InputMoverComponent.cs
index f03619ccc6..87da601f76 100644
--- a/Content.Shared/Movement/Components/InputMoverComponent.cs
+++ b/Content.Shared/Movement/Components/InputMoverComponent.cs
@@ -37,6 +37,14 @@ namespace Content.Shared.Movement.Components
public MoveButtons HeldMoveButtons = MoveButtons.None;
+ ///
+ /// Does our input indicate actual movement, and not just modifiers?
+ ///
+ ///
+ /// This can be useful to filter out input from just pressing the walk button with no directions, for example.
+ ///
+ public bool HasDirectionalMovement => (HeldMoveButtons & MoveButtons.AnyDirection) != MoveButtons.None;
+
// I don't know if we even need this networked? It's mostly so conveyors can calculate properly.
///
/// Direction to move this tick.
diff --git a/Content.Shared/Movement/Systems/SharedMoverController.Input.cs b/Content.Shared/Movement/Systems/SharedMoverController.Input.cs
index cf7aedd95f..2560f33e9c 100644
--- a/Content.Shared/Movement/Systems/SharedMoverController.Input.cs
+++ b/Content.Shared/Movement/Systems/SharedMoverController.Input.cs
@@ -98,7 +98,7 @@ namespace Content.Shared.Movement.Systems
RaiseLocalEvent(entity, ref moveEvent);
Dirty(entity, entity.Comp);
- var ev = new SpriteMoveEvent(entity.Comp.HeldMoveButtons != MoveButtons.None);
+ var ev = new SpriteMoveEvent(entity.Comp.HasDirectionalMovement);
RaiseLocalEvent(entity, ref ev);
}
@@ -124,7 +124,7 @@ namespace Content.Shared.Movement.Systems
entity.Comp.HeldMoveButtons = state.HeldMoveButtons;
RaiseLocalEvent(entity.Owner, ref moveEvent);
- var ev = new SpriteMoveEvent(entity.Comp.HeldMoveButtons != MoveButtons.None);
+ var ev = new SpriteMoveEvent(entity.Comp.HasDirectionalMovement);
RaiseLocalEvent(entity, ref ev);
}
}