1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use bevy::prelude::*;
use crate::{MouseMotion, MouseTrackingSystem};
pub struct MouseMotionPlugin;
impl bevy::app::Plugin for MouseMotionPlugin {
fn build(&self, app: &mut bevy::app::App) {
app.insert_resource(MouseMotion { delta: Vec2::ZERO });
app.add_system_to_stage(
CoreStage::First,
update_mouse_motion.label(MouseTrackingSystem::Motion),
);
}
}
fn update_mouse_motion(mut events: EventReader<MouseMotion>, mut res: ResMut<MouseMotion>) {
let delta = events.iter().fold(Vec2::ZERO, |acc, e| acc + e.delta);
*res = MouseMotion { delta };
}