@@ -28,10 +28,16 @@ void MainScene::_notification(int p_what) {
2828 }
2929
3030 solve_button = get_node<Button>(" UI/SolveButton" );
31- if (solve_button) solve_button->connect (" pressed" , Callable (this , " _on_solve_button_pressed" ));
31+ if (solve_button){
32+ solve_button->connect (" pressed" , Callable (this , " _on_solve_button_pressed" ));
33+ solve_button->set_disabled (true );
34+ }
3235
3336 reset_button = get_node<Button>(" UI/ResetButton" );
34- if (reset_button) reset_button->connect (" pressed" , Callable (this , " _on_reset_button_pressed" ));
37+ if (reset_button) {
38+ reset_button->connect (" pressed" , Callable (this , " _on_reset_button_pressed" ));
39+ reset_button->set_disabled (true );
40+ }
3541
3642 load_button = get_node<Button>(" UI/LoadButton" );
3743 if (load_button) load_button->connect (" pressed" , Callable (this , " _on_load_button_pressed" ));
@@ -262,6 +268,15 @@ Vector3 MainScene::_get_3d_position_for_piece_coords(const Coordinates& piece_to
262268
263269void MainScene::_on_reset_button_pressed () {
264270 UtilityFunctions::print (" Reset button pressed!" );
271+ _clear_all_cars ();
272+ time_label->set_text (" Time: 0.0s" );
273+ current_solution.moves .clear ();
274+ current_move_index = -1 ;
275+ is_animating_solution = false ;
276+ is_searching = false ;
277+ is_solved = false ;
278+ if (solve_button) solve_button->set_disabled (true );
279+ if (reset_button) reset_button->set_disabled (true );
265280}
266281
267282void MainScene::_on_algo_button_selected (int index) {
@@ -315,6 +330,9 @@ void MainScene::_on_load_file_selected(const String& path) {
315330 if (load_input (path, pieces, board)) {
316331 Utils::print_board (board, pieces);
317332
333+ solve_button->set_disabled (false );
334+ reset_button->set_disabled (false );
335+
318336 _clear_all_cars ();
319337 for (const auto & piece_data : this ->pieces ) {
320338 _spawn_piece_as_car (piece_data);
0 commit comments