mod axis; pub mod gamepad; mod input; pub mod keyboard; pub mod mouse; pub mod system; pub mod touch; pub use axis::*; pub use input::*; pub mod prelude { pub use crate::{ gamepad::{ Gamepad, GamepadAxis, GamepadAxisType, GamepadButton, GamepadButtonType, GamepadEvent, GamepadEventType, }, keyboard::KeyCode, mouse::MouseButton, Axis, Input, }; } use bevy_app::prelude::*; use keyboard::{keyboard_input_system, KeyCode, KeyboardInput}; use mouse::{mouse_button_input_system, MouseButton, MouseButtonInput, MouseMotion, MouseWheel}; use touch::{touch_screen_input_system, TouchInput, Touches}; use bevy_ecs::IntoQuerySystem; use gamepad::{gamepad_event_system, GamepadAxis, GamepadButton, GamepadEvent, GamepadSetting}; /// Adds keyboard and mouse input to an App #[derive(Default)] pub struct InputPlugin; impl Plugin for InputPlugin { fn build(&self, app: &mut AppBuilder) { app.add_event::() .add_event::() .add_event::() .add_event::() .init_resource::>() .add_system_to_stage( bevy_app::stage::EVENT_UPDATE, keyboard_input_system.system(), ) .init_resource::>() .add_system_to_stage( bevy_app::stage::EVENT_UPDATE, mouse_button_input_system.system(), ) .add_event::() .init_resource::() .init_resource::>() .init_resource::>() .init_resource::>() .add_startup_system_to_stage( bevy_app::startup_stage::POST_STARTUP, gamepad_event_system.system(), ) .add_system_to_stage(bevy_app::stage::EVENT_UPDATE, gamepad_event_system.system()) .add_event::() .init_resource::() .add_system_to_stage( bevy_app::stage::EVENT_UPDATE, touch_screen_input_system.system(), ); } }