use bevy::prelude::*; use common::prelude::*; use lightyear::prelude::input::native::*; use bevy::input::mouse::AccumulatedMouseMotion; use crate::input::is_cursor_grabbed; #[derive(Resource, Deref, DerefMut, Debug)] pub struct MouseSensitivity(Vec2); impl Default for MouseSensitivity { fn default() -> Self { Self(Vec2::splat(0.2).map(f32::to_radians)) } } pub fn plugin(app: &mut App) { app.init_resource::(); app.add_systems(Update, update_head_orientation.run_if(is_cursor_grabbed)); } fn update_head_orientation( accumulated_mouse_motion: Res, mouse_sensitivity: Res, mut orientation: Single<&mut HeadOrientation, With>>, ) { let delta = accumulated_mouse_motion.delta * **mouse_sensitivity; **orientation = orientation.update(delta); }