From 80fab1ffdc3b0566b6702e99d9943e95c45277ec Mon Sep 17 00:00:00 2001 From: Felix Date: Tue, 19 Nov 2024 18:36:49 +0100 Subject: [PATCH] Begin work on actionHandler --- .../src/main/java/pp/mdga/client/MdgaApp.java | 2 + .../main/java/pp/mdga/client/MdgaState.java | 45 +++---------------- .../mdga/client/NotificationSynchronizer.java | 29 +++++++++++- 3 files changed, 34 insertions(+), 42 deletions(-) diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java index e3f974f7..23ae8051 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java @@ -80,4 +80,6 @@ public AnimationHandler getAnimationHandler() { public AcousticHandler getAcousticHandler() { return acousticHandler; } + + public MdgaState getState() {return state; } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaState.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaState.java index d178bce7..58414b23 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaState.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaState.java @@ -5,44 +5,9 @@ import pp.mdga.notification.PlayerInGameNotification; public enum MdgaState { - NONE { - @Override - void handleNotification(MdgaApp app, Notification notification) { - throw new RuntimeException("unexpected notification"); - } - }, - MAIN { - @Override - void handleNotification(MdgaApp app, Notification notification) { - throw new RuntimeException("unexpected notification"); - } - }, - LOBBY { - @Override - void handleNotification(MdgaApp app, Notification notification) { - throw new RuntimeException("unexpected notification"); - } - }, - GAME { - @Override - void handleNotification(MdgaApp app, Notification notification) { - if (notification instanceof PlayerInGameNotification) { - //TODO - } - else if (notification instanceof PieceInGameNotification) { - //TODO - } - else { - throw new RuntimeException("unexpected notification"); - } - } - }, - CEREMONY { - @Override - void handleNotification(MdgaApp app, Notification notification) { - throw new RuntimeException("unexpected notification"); - } - }; - - abstract void handleNotification(MdgaApp app, Notification notification); + NONE, + MAIN, + LOBBY, + GAME, + CEREMONY; } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java index 2a95a2a7..a062844e 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java @@ -1,12 +1,12 @@ package pp.mdga.client; +import pp.mdga.client.Acoustic.MusicAsset; import pp.mdga.notification.Notification; import java.util.ArrayList; public class NotificationSynchronizer { private final MdgaApp app; - private MdgaState state = MdgaState.MAIN; NotificationSynchronizer(MdgaApp app) { this.app = app; @@ -17,7 +17,32 @@ void update() { //TODO fetch model notifications for (Notification n : notifications) { - state.handleNotification(app, n); + switch (app.getState()) { + case MAIN: + + break; + case LOBBY: + + break; + case GAME: + + break; + case CEREMONY: + + break; + case NONE: + throw new RuntimeException("no notification expected"); + } + } + } + + private void handleMain(Notification notification) { + throw new RuntimeException("no notification expected in state: MAIN"); + } + + private void handleGame(Notification notification) { + if(notification instanceof ) { + } } }