Snapping shouldn't happen continuously.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Nolan Darilek 2023-02-01 12:24:29 -06:00
parent 3fc74d10d9
commit 526f4347a5

View File

@ -250,7 +250,7 @@ fn snap(
for (entity, actions, mut transform, direction) in &mut query {
if snap_timers.contains_key(&entity) {
continue;
} else if actions.pressed(NavigationAction::SnapLeft) {
} else if actions.just_pressed(NavigationAction::SnapLeft) {
snap_timers.insert(entity, SnapTimer::default());
transform.rotation = Quat::from_rotation_z(match direction {
CardinalDirection::North => PI,
@ -258,7 +258,7 @@ fn snap(
CardinalDirection::South => 0.,
CardinalDirection::West => -PI / 2.,
});
} else if actions.pressed(NavigationAction::SnapRight) {
} else if actions.just_pressed(NavigationAction::SnapRight) {
snap_timers.insert(entity, SnapTimer::default());
transform.rotation = Quat::from_rotation_z(match direction {
CardinalDirection::North => 0.,
@ -266,10 +266,10 @@ fn snap(
CardinalDirection::South => PI,
CardinalDirection::West => PI / 2.,
});
} else if actions.pressed(NavigationAction::SnapReverse) {
} else if actions.just_pressed(NavigationAction::SnapReverse) {
snap_timers.insert(entity, SnapTimer::default());
transform.rotate(Quat::from_rotation_z(PI));
} else if actions.pressed(NavigationAction::SnapCardinal) {
} else if actions.just_pressed(NavigationAction::SnapCardinal) {
let yaw: Angle = direction.into();
let yaw = yaw.radians();
transform.rotation = Quat::from_rotation_z(yaw);