mirror of
https://github.com/bevyengine/bevy
synced 2024-12-12 06:12:30 +00:00
51509a9a3e
# Objective - Part of the splitting process of #3692. ## Solution - Remove / change the tuple structs inside of `gamepad.rs` of `bevy_input` to normal structs. ## Reasons - It made the `gamepad_connection_system` cleaner. - It made the `gamepad_input_events.rs` example cleaner (which is probably the most notable change for the user facing API). - Tuple structs are not descriptive (`.0`, `.1`). - Using tuple structs for more than 1 field is a bad idea (This means that the `Gamepad` type might be fine as a tuple struct, but I still prefer normal structs over tuple structs). Feel free to discuss this change as this is more or less just a matter of taste. ## Changelog ### Changed - The `Gamepad`, `GamepadButton`, `GamepadAxis`, `GamepadEvent` and `GamepadEventRaw` types are now normal structs instead of tuple structs and have a `new()` function. ## Migration Guide - The `Gamepad`, `GamepadButton`, `GamepadAxis`, `GamepadEvent` and `GamepadEventRaw` types are now normal structs instead of tuple structs and have a `new()` function. To migrate change every instantiation to use the `new()` function instead and use the appropriate field names instead of `.0` and `.1`.
36 lines
1 KiB
Rust
36 lines
1 KiB
Rust
use bevy::{
|
|
input::gamepad::{GamepadEvent, GamepadEventType},
|
|
prelude::*,
|
|
};
|
|
|
|
fn main() {
|
|
App::new()
|
|
.add_plugins(DefaultPlugins)
|
|
.add_system(gamepad_events)
|
|
.run();
|
|
}
|
|
|
|
fn gamepad_events(mut gamepad_event: EventReader<GamepadEvent>) {
|
|
for event in gamepad_event.iter() {
|
|
match event.event_type {
|
|
GamepadEventType::Connected => {
|
|
info!("{:?} Connected", event.gamepad);
|
|
}
|
|
GamepadEventType::Disconnected => {
|
|
info!("{:?} Disconnected", event.gamepad);
|
|
}
|
|
GamepadEventType::ButtonChanged(button_type, value) => {
|
|
info!(
|
|
"{:?} of {:?} is changed to {}",
|
|
button_type, event.gamepad, value
|
|
);
|
|
}
|
|
GamepadEventType::AxisChanged(axis_type, value) => {
|
|
info!(
|
|
"{:?} of {:?} is changed to {}",
|
|
axis_type, event.gamepad, value
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|