Skip to content

Commit 997eae6

Browse files
committed
Remove double Events::update in bevy-gilrs (#2894)
# Objective - Remove duplicate `Events::update` call in `gilrs_event_system` (fixes #2893) - See #2893 for context - While there, make the systems no longer exclusive, as that is not required of them ## Solution - Do the change r? @alice-i-cecile
1 parent 2974293 commit 997eae6

File tree

2 files changed

+11
-16
lines changed

2 files changed

+11
-16
lines changed

crates/bevy_gilrs/src/gilrs_system.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
use crate::converter::{convert_axis, convert_button, convert_gamepad_id};
22
use bevy_app::Events;
3-
use bevy_ecs::world::World;
3+
use bevy_ecs::system::{NonSend, NonSendMut, ResMut};
44
use bevy_input::{gamepad::GamepadEventRaw, prelude::*};
55
use gilrs::{EventType, Gilrs};
66

7-
pub fn gilrs_event_startup_system(world: &mut World) {
8-
let world = world.cell();
9-
let gilrs = world.get_non_send::<Gilrs>().unwrap();
10-
let mut event = world.get_resource_mut::<Events<GamepadEventRaw>>().unwrap();
7+
pub fn gilrs_event_startup_system(
8+
gilrs: NonSend<Gilrs>,
9+
mut event: ResMut<Events<GamepadEventRaw>>,
10+
) {
1111
for (id, _) in gilrs.gamepads() {
1212
event.send(GamepadEventRaw(
1313
convert_gamepad_id(id),
@@ -16,11 +16,10 @@ pub fn gilrs_event_startup_system(world: &mut World) {
1616
}
1717
}
1818

19-
pub fn gilrs_event_system(world: &mut World) {
20-
let world = world.cell();
21-
let mut gilrs = world.get_non_send_mut::<Gilrs>().unwrap();
22-
let mut event = world.get_resource_mut::<Events<GamepadEventRaw>>().unwrap();
23-
event.update();
19+
pub fn gilrs_event_system(
20+
mut gilrs: NonSendMut<Gilrs>,
21+
mut event: ResMut<Events<GamepadEventRaw>>,
22+
) {
2423
while let Some(gilrs_event) = gilrs.next_event() {
2524
match gilrs_event.event {
2625
EventType::Connected => {

crates/bevy_gilrs/src/lib.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ mod converter;
22
mod gilrs_system;
33

44
use bevy_app::{App, CoreStage, Plugin, StartupStage};
5-
use bevy_ecs::system::IntoExclusiveSystem;
65
use bevy_utils::tracing::error;
76
use gilrs::GilrsBuilder;
87
use gilrs_system::{gilrs_event_startup_system, gilrs_event_system};
@@ -21,12 +20,9 @@ impl Plugin for GilrsPlugin {
2120
app.insert_non_send_resource(gilrs)
2221
.add_startup_system_to_stage(
2322
StartupStage::PreStartup,
24-
gilrs_event_startup_system.exclusive_system(),
23+
gilrs_event_startup_system,
2524
)
26-
.add_system_to_stage(
27-
CoreStage::PreUpdate,
28-
gilrs_event_system.exclusive_system(),
29-
);
25+
.add_system_to_stage(CoreStage::PreUpdate, gilrs_event_system);
3026
}
3127
Err(err) => error!("Failed to start Gilrs. {}", err),
3228
}

0 commit comments

Comments
 (0)