diff --git a/assets/sprites/dashboard_cruise_control.png b/assets/sprites/dashboard_cruise_control.png new file mode 100644 index 0000000..e7efa02 Binary files /dev/null and b/assets/sprites/dashboard_cruise_control.png differ diff --git a/src/actor.rs b/src/actor.rs index 0319ce9..ab71434 100644 --- a/src/actor.rs +++ b/src/actor.rs @@ -368,6 +368,10 @@ pub fn handle_input( } } } + else if keyboard_input.just_pressed(settings.key_cruise_control) { + ew_sfx.send(audio::PlaySfxEvent(audio::Sfx::Switch)); + settings.cruise_control_active ^= true; + } } pub fn handle_vehicle_enter_exit( diff --git a/src/camera.rs b/src/camera.rs index 510a35a..8ffa49d 100644 --- a/src/camera.rs +++ b/src/camera.rs @@ -405,7 +405,7 @@ pub fn apply_input_to_player( if let Ok((player_transform, mut engine, mut angularvelocity, mut v, mut torque, bike)) = q_playercam.get_single_mut() { // Handle key input if focused { - if key_input.pressed(settings.key_forward) { + if key_input.pressed(settings.key_forward) || settings.cruise_control_active { axis_input.z += 1.2; } if key_input.pressed(settings.key_back) { diff --git a/src/svg/dashboard_cruise_control.svg b/src/svg/dashboard_cruise_control.svg new file mode 100644 index 0000000..edce78e --- /dev/null +++ b/src/svg/dashboard_cruise_control.svg @@ -0,0 +1,133 @@ + + + + diff --git a/src/var.rs b/src/var.rs index 286a9e7..0ba3d11 100644 --- a/src/var.rs +++ b/src/var.rs @@ -117,6 +117,7 @@ pub struct Settings { pub key_vehicle: KeyCode, pub key_camera: KeyCode, pub key_flashlight: KeyCode, + pub key_cruise_control: KeyCode, pub key_rotate: KeyCode, pub key_rotation_stabilizer: KeyCode, pub key_mouseup: KeyCode, @@ -216,7 +217,7 @@ impl Default for Settings { is_zooming: false, third_person: true, rotation_stabilizer_active: true, - cruise_control_active: true, + cruise_control_active: false, shadows_sun: true, shadows_pointlights: false, shadowmap_resolution: 2048, @@ -244,6 +245,7 @@ impl Default for Settings { key_vehicle: KeyCode::KeyQ, key_camera: KeyCode::KeyC, key_flashlight: KeyCode::KeyF, + key_cruise_control: KeyCode::KeyT, key_rotate: KeyCode::KeyR, key_rotation_stabilizer: KeyCode::KeyY, key_mouseup: KeyCode::KeyI,