From 1fcec80e0eafdec4b5bab9bbaa19722bb7061026 Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Thu, 4 Aug 2022 11:49:17 -0500 Subject: [PATCH] Add system for limiting speed. --- src/navigation.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/navigation.rs b/src/navigation.rs index ea099a9..6620c8e 100644 --- a/src/navigation.rs +++ b/src/navigation.rs @@ -97,7 +97,7 @@ fn movement_controls( if actions.pressed(NavigationAction::Move) { if let Some(pair) = actions.clamped_axis_pair(NavigationAction::Move) { cleanup = true; - let mut direction = pair.xy(); + let direction = pair.xy(); let strength = direction.length(); let forward_backward_movement_factor = if direction.x > 0. { config.forward_movement_factor @@ -271,6 +271,14 @@ fn add_speed(mut commands: Commands, query: Query, Without } } +fn limit_speed(mut query: Query<(&mut Speed, &MaxSpeed)>) { + for (mut speed, max_speed) in &mut query { + if **speed > **max_speed { + **speed = **max_speed; + } + } +} + fn remove_speed(removed: RemovedComponents, mut query: Query<&mut Velocity>) { for entity in removed.iter() { if let Ok(mut velocity) = query.get_mut(entity) { @@ -379,6 +387,7 @@ where .add_system(tick_snap_timers) .add_system(speak_direction.chain(error_handler)) .add_system(add_speed) + .add_system(limit_speed) .add_system_to_stage(CoreStage::PostUpdate, remove_speed) .add_system_to_stage(CoreStage::PostUpdate, log_area_descriptions::); const MOVEMENT_CONTROLS: &str = "MOVEMENT_CONTROLS";