From a68ad804026aa00a5cbc4a4c63465f228bdfe1e0 Mon Sep 17 00:00:00 2001 From: Felix Date: Thu, 14 Nov 2024 22:13:57 +0100 Subject: [PATCH] Remove state classes --- .../main/java/Acoustic/AcousticHandler.java | 4 ++ .../client/Animation/AnimationHandler.java | 2 +- .../main/java/pp/mdga/client/MdgaState.java | 42 +++++++++++++++++++ .../mdga/client/NotificationSynchronizer.java | 20 ++++++++- .../pp/mdga/client/State/CeremonyState.java | 5 --- .../java/pp/mdga/client/State/GameState.java | 5 --- .../java/pp/mdga/client/State/LobbyState.java | 5 --- .../java/pp/mdga/client/State/MdgaState.java | 5 --- .../java/pp/mdga/client/State/MusicState.java | 5 --- .../java/pp/mdga/client/State/SoundState.java | 5 --- 10 files changed, 66 insertions(+), 32 deletions(-) create mode 100644 Projekte/mdga/client/src/main/java/Acoustic/AcousticHandler.java create mode 100644 Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaState.java delete mode 100644 Projekte/mdga/client/src/main/java/pp/mdga/client/State/CeremonyState.java delete mode 100644 Projekte/mdga/client/src/main/java/pp/mdga/client/State/GameState.java delete mode 100644 Projekte/mdga/client/src/main/java/pp/mdga/client/State/LobbyState.java delete mode 100644 Projekte/mdga/client/src/main/java/pp/mdga/client/State/MdgaState.java delete mode 100644 Projekte/mdga/client/src/main/java/pp/mdga/client/State/MusicState.java delete mode 100644 Projekte/mdga/client/src/main/java/pp/mdga/client/State/SoundState.java diff --git a/Projekte/mdga/client/src/main/java/Acoustic/AcousticHandler.java b/Projekte/mdga/client/src/main/java/Acoustic/AcousticHandler.java new file mode 100644 index 00000000..e9179802 --- /dev/null +++ b/Projekte/mdga/client/src/main/java/Acoustic/AcousticHandler.java @@ -0,0 +1,4 @@ +package Acoustic; + +public class AcousticHandler { +} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/Animation/AnimationHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/Animation/AnimationHandler.java index 7047fff5..a680f6e4 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/Animation/AnimationHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/Animation/AnimationHandler.java @@ -23,7 +23,7 @@ public void update() { if(animation.isOver()) { animation = null; - //trigger next state + //trigger next state in model } } } 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 new file mode 100644 index 00000000..7f2f609d --- /dev/null +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaState.java @@ -0,0 +1,42 @@ +package pp.mdga.client; + +import pp.mdga.notification.Notification; +import pp.mdga.notification.PieceInGameNotification; +import pp.mdga.notification.PlayerInGameNotification; + +public enum MdgaState { + 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); +} 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 8c3e5135..2a95a2a7 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,5 +1,23 @@ package pp.mdga.client; -public class NotificationSynchronizer { +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; + } + + void update() { + ArrayList notifications = new ArrayList<>(); + //TODO fetch model notifications + + for (Notification n : notifications) { + state.handleNotification(app, n); + } + } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/CeremonyState.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/State/CeremonyState.java deleted file mode 100644 index 47b40346..00000000 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/CeremonyState.java +++ /dev/null @@ -1,5 +0,0 @@ -package pp.mdga.client.State; - -public class CeremonyState { - -} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/GameState.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/State/GameState.java deleted file mode 100644 index deddeb1d..00000000 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/GameState.java +++ /dev/null @@ -1,5 +0,0 @@ -package pp.mdga.client.State; - -public class GameState { - -} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/LobbyState.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/State/LobbyState.java deleted file mode 100644 index 58777b55..00000000 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/LobbyState.java +++ /dev/null @@ -1,5 +0,0 @@ -package pp.mdga.client.State; - -public class LobbyState { - -} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/MdgaState.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/State/MdgaState.java deleted file mode 100644 index 8476a7af..00000000 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/MdgaState.java +++ /dev/null @@ -1,5 +0,0 @@ -package pp.mdga.client.State; - -public class MdgaState { - -} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/MusicState.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/State/MusicState.java deleted file mode 100644 index b1e5484d..00000000 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/MusicState.java +++ /dev/null @@ -1,5 +0,0 @@ -package pp.mdga.client.State; - -public class MusicState { - -} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/SoundState.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/State/SoundState.java deleted file mode 100644 index f3184745..00000000 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/State/SoundState.java +++ /dev/null @@ -1,5 +0,0 @@ -package pp.mdga.client.State; - -public class SoundState { - -}