Sticky pieces when moved out of board

This commit is contained in:
2026-08-10 11:48:03 +05:30
parent 0d83cb89ed
commit 27114d1dfd
2 changed files with 8 additions and 8 deletions
+4 -4
View File
@@ -138,16 +138,16 @@ impl Game {
let active_game_mode_btn = game_mode_btns.get(&game_mode).unwrap();
game::button(&mut widgets, *active_game_mode_btn).is_active = false;
let mut w_board = BoardWidget::new(puzzle.board.size, puzzle.board.clone());
w_board.on_board_state_changed = |s| Command::UpdateBoard(s.new_board_state);
let board = add_widget(&mut widgets, Widget::Board(w_board));
let mut w_controls = ControlsWidget::new();
w_controls.add(KeyCode::Q, Command::Quit);
w_controls.add(KeyCode::Escape, Command::HideRules);
w_controls.add(KeyCode::D, Command::ToggleDebug);
add_widget(&mut widgets, Widget::Controls(w_controls));
let mut w_board = BoardWidget::new(puzzle.board.size, puzzle.board.clone());
w_board.on_board_state_changed = |s| Command::UpdateBoard(s.new_board_state);
let board = add_widget(&mut widgets, Widget::Board(w_board));
Game {
puzzle,
board,
+4 -4
View File
@@ -171,10 +171,6 @@ impl BoardWidget {
settings: &Settings,
) -> Option<BoardInteraction> {
let mouse_pos = interaction.mouse_pos;
if mouse_pos.overlaps_rect(&self.board_rect) == false {
return None;
}
let old_board_state = self.current_board.state;
if is_mouse_button_released(MouseButton::Left) {
let current_state = self.state.clone();
@@ -199,6 +195,10 @@ impl BoardWidget {
}
if is_mouse_button_pressed(MouseButton::Left) {
if mouse_pos.overlaps_rect(&self.board_rect) == false {
return None;
}
let current_state = self.state.clone();
let new_state = match current_state {
GameState::SelectSource(previous_target) => {