feat: enlever gameview observer et ajout dans l'observer de base

This commit is contained in:
2025-11-10 14:54:51 +01:00
parent 72eccbf721
commit f9e1580da5
7 changed files with 95 additions and 114 deletions

View File

@@ -1,7 +1,6 @@
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.function.Supplier;
import javax.swing.JButton;
import javax.swing.JLabel;
@@ -27,23 +26,19 @@ public class Dashboard extends GameView
/** Voiture associée à ce dashboard */
private final Car car;
/** État de pause global partagé par tous les dashboards */
private static boolean isPaused = false;
/**
* Construit un dashboard pour une voiture donnée.
*
* @param car la voiture suivie par ce dashboard
* @param title titre du dashboard
* @param fn fonction appelée pour activer/désactiver la pause
* @param width largeur de la fenêtre
* @param height hauteur de la fenêtre
* @param x position horizontale de la fenêtre
* @param y position verticale de la fenêtre
*/
public Dashboard(Car car, String title, Supplier<Boolean> fn, int width, int height, int x, int y)
public Dashboard(Game game, Car car, String title, int width, int height, int x, int y)
{
super("Dashboard: " + title, width, height, x, y);
super(game, "Dashboard: " + title, width, height, x, y);
this.car = car;
this.label = new JLabel();
@@ -51,7 +46,7 @@ public class Dashboard extends GameView
frame.setBackground(car.getColor());
init(fn);
init();
this.add(label, BorderLayout.CENTER);
this.add(button, BorderLayout.SOUTH);
@@ -62,7 +57,7 @@ public class Dashboard extends GameView
*/
private void updateButtonText()
{
button.setText(isPaused ? "En Pause" : "En Cours");
button.setText(game.getPause() ? "En Pause" : "En Cours");
}
/**
@@ -70,7 +65,7 @@ public class Dashboard extends GameView
*
* @param fn fonction appelée lorsque l'on clique sur le bouton pour inverser l'état de pause
*/
private void init(Supplier<Boolean> fn)
private void init()
{
updateButtonText();
@@ -79,9 +74,9 @@ public class Dashboard extends GameView
@Override
public void mouseClicked(MouseEvent e)
{
isPaused = fn.get();
game.togglePause();
updateButtonText();
GameView.update();
game.notifyObservers();
}
};
@@ -94,7 +89,7 @@ public class Dashboard extends GameView
* Cette méthode est appelée périodiquement par le moteur de jeu.
*/
@Override
public void run()
public boolean apply()
{
label.setText(
"<html><table><tr><td>Carburant Restant: " + car.getFuel()
@@ -103,5 +98,6 @@ public class Dashboard extends GameView
);
updateButtonText();
return true;
}
}