refactor OutputSystem
This commit is contained in:
68
app/src/main/java/chess/controller/event/GameDispatcher.java
Normal file
68
app/src/main/java/chess/controller/event/GameDispatcher.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package chess.controller.event;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import chess.model.Color;
|
||||
import chess.model.Coordinate;
|
||||
|
||||
public class GameDispatcher implements GameListener{
|
||||
|
||||
private final List<GameListener> listeners;
|
||||
|
||||
public GameDispatcher() {
|
||||
this.listeners = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void addListener(GameListener listener) {
|
||||
this.listeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playerTurn(Color color) {
|
||||
this.listeners.forEach((l) -> l.playerTurn(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void winnerIs(Color color) {
|
||||
this.listeners.forEach((l) -> l.winnerIs(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void kingIsInCheck() {
|
||||
this.listeners.forEach((l) -> l.kingIsInCheck());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void kingIsInMat() {
|
||||
this.listeners.forEach((l) -> l.kingIsInMat());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void patSituation() {
|
||||
this.listeners.forEach((l) -> l.patSituation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hasSurrendered(Color color) {
|
||||
this.listeners.forEach((l) -> l.hasSurrendered(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameStarted() {
|
||||
this.listeners.forEach((l) -> l.gameStarted());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void promotePawn(Coordinate pieceCoords) {
|
||||
this.listeners.forEach((l) -> l.promotePawn(pieceCoords));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDisplay() {
|
||||
this.listeners.forEach((l) -> l.updateDisplay());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user