Skip to content

Commit

Permalink
fix: fix an issue where buttons sometimes are unresponsive
Browse files Browse the repository at this point in the history
  • Loading branch information
ShenMian committed Jan 16, 2024
1 parent 77079bd commit e03f362
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
16 changes: 9 additions & 7 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,15 @@ fn main() {
)
.add_systems(PostStartup, spawn_board);

app.add_systems(
Update,
(button_visual_effect, update_button_state, button_pressed),
);
app.add_systems(Update, (button_visual_effect, update_button_state));

app.add_systems(
Update,
(
(
action_input,
automatic_solution_input,
button_input_to_action,
handle_action,
handle_automatic_solution_action,
adjust_viewport,
mouse_input,
check_level_solved,
Expand Down Expand Up @@ -117,7 +115,11 @@ fn main() {
app.add_systems(OnEnter(AppState::AutomaticSolution), spawn_lowerbound_marks)
.add_systems(
Update,
(update_solver, automatic_solution_input).run_if(in_state(AppState::AutomaticSolution)),
(
update_solver,
(button_input_to_action, handle_automatic_solution_action).chain(),
)
.run_if(in_state(AppState::AutomaticSolution)),
)
.add_systems(
OnExit(AppState::AutomaticSolution),
Expand Down
4 changes: 2 additions & 2 deletions src/systems/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ pub fn player_move_or_push(
}
}

pub fn automatic_solution_input(
pub fn handle_automatic_solution_action(
action_state: Res<ActionState<Action>>,
mut solver_state: ResMut<SolverState>,
board: Query<&Board>,
Expand Down Expand Up @@ -261,7 +261,7 @@ pub fn automatic_solution_input(
}
}

pub fn action_input(
pub fn handle_action(
action_state: Res<ActionState<Action>>,
mut level_id: ResMut<LevelId>,
database: Res<Database>,
Expand Down
6 changes: 3 additions & 3 deletions src/systems/ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,11 @@ pub enum MainButton {
NextLevel,
}

pub fn button_pressed(
interaction_query: Query<(&Interaction, &MainButton), (Changed<Interaction>, With<Button>)>,
pub fn button_input_to_action(
buttons: Query<(&Interaction, &MainButton), (Changed<Interaction>, With<Button>)>,
mut action_state: ResMut<ActionState<Action>>,
) {
for (interaction, button) in &interaction_query {
for (interaction, button) in &buttons {
if *interaction != Interaction::Pressed {
continue;
}
Expand Down

0 comments on commit e03f362

Please sign in to comment.