diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Animation.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Animation.java index 73f8f285..6cf3a398 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Animation.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Animation.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Animation extends ClientState { + protected Animation(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/AudioSettings.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/AudioSettings.java index b1eaade6..dc273447 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/AudioSettings.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/AudioSettings.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class AudioSettings extends ClientState { + protected AudioSettings(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Ceremony.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Ceremony.java index 7be5866a..9df52ddb 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Ceremony.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Ceremony.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class Ceremony extends ClientState { - private final CeremonyStateMachine ceremonyStateMachine = new CeremonyStateMachine(); + private final CeremonyStateMachine ceremonyStateMachine; + + protected Ceremony(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.ceremonyStateMachine = new CeremonyStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/CeremonyStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/CeremonyStateMachine.java index 0449027d..371401c3 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/CeremonyStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/CeremonyStateMachine.java @@ -1,4 +1,14 @@ package pp.mdga.client; public class CeremonyStateMachine extends ClientStateMachine { + + protected CeremonyStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + + @Override + public Podium initialState() { + return new Podium(this, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePiece.java index 0b9fd192..4adedad0 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePiece.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class ChoosePiece extends ClientState { - private final ChoosePieceStateMachine choosePieceStateMachine = new ChoosePieceStateMachine(); + private final ChoosePieceStateMachine choosePieceStateMachine; + + protected ChoosePiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.choosePieceStateMachine = new ChoosePieceStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePieceStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePieceStateMachine.java index 45c965b6..18a75c88 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePieceStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePieceStateMachine.java @@ -1,4 +1,12 @@ package pp.mdga.client; public class ChoosePieceStateMachine extends ClientStateMachine{ + protected ChoosePieceStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public NoPiece initialState() { + return new NoPiece(this, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePowerCard.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePowerCard.java index 72a8d3d4..db2bed4c 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePowerCard.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ChoosePowerCard.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class ChoosePowerCard extends ClientState { + protected ChoosePowerCard(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientAutomaton.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientAutomaton.java index f5261224..c90e199b 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientAutomaton.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientAutomaton.java @@ -1,4 +1,14 @@ package pp.mdga.client; public class ClientAutomaton extends ClientStateMachine { + + public ClientAutomaton(ClientGameLogic logic){ + super(null, logic); + entry(); + } + + @Override + public Dialogs initialState(){ + return new Dialogs(this, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientGameLogic.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientGameLogic.java index 6483e582..a33fe82e 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientGameLogic.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientGameLogic.java @@ -1,4 +1,36 @@ package pp.mdga.client; +import pp.mdga.game.Game; +import pp.mdga.message.client.ClientMessage; +import pp.mdga.server.ServerSender; + public class ClientGameLogic { + static final System.Logger LOGGER = System.getLogger(ClientGameLogic.class.getName()); + + private Game game; + private final ClientSender clientSender; + private ClientState state; + + public ClientGameLogic(Game game, ClientSender clientSender) { + this.game = game; + this.clientSender = clientSender; + state = new ClientAutomaton(this); + } + + public void send(ClientMessage msg){ + LOGGER.log(System.Logger.Level.INFO, "send {0}", msg); + clientSender.send(msg); + } + + public ClientSender getClientSender(){ + return clientSender; + } + + public Game getGame(){ + return game; + } + + public ClientState getState(){ + return state; + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientSender.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientSender.java new file mode 100644 index 00000000..26f0df85 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientSender.java @@ -0,0 +1,7 @@ +package pp.mdga.client; + +import pp.mdga.message.client.ClientMessage; + +public interface ClientSender { + void send(ClientMessage msg); +} diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientState.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientState.java index 9e7c3786..2c45fbb7 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientState.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientState.java @@ -1,4 +1,33 @@ package pp.mdga.client; -public abstract class ClientState { +public abstract class ClientState implements Observer { + protected static final System.Logger LOGGER = System.getLogger(ClientState.class.getName()); + + protected ClientState parent; + + protected ClientGameLogic logic; + + protected ClientState(ClientState parent, ClientGameLogic logic){ + this.parent = parent; + this.logic = logic; + } + + public void entry(){/* do nothing */} + + public void exit() {/* do nothing*/} + + public void gotoState(ClientState newState){ + throw new IllegalStateException("not in a statemachine"); + } + + public ClientState getParent(){ + return parent; + } + + public void update() {/* do nothing */} + + @Override + public String toString(){ + return getClass().getSimpleName(); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientStateMachine.java index 0c8717e9..92620f35 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/ClientStateMachine.java @@ -1,4 +1,46 @@ package pp.mdga.client; +import pp.mdga.message.server.*; + public abstract class ClientStateMachine extends ClientState { + + private ClientState state; + + protected ClientStateMachine(ClientState parent, ClientGameLogic logic){ + super(parent, logic); + } + + public abstract ClientState initialState(); + + @Override + public void gotoState(ClientState newState){ + LOGGER.log(System.Logger.Level.DEBUG, "{0}: {1} --> {2}", this, state, newState); + enter(newState); + } + + @Override + public void entry(){ + final ClientState newState = initialState(); + LOGGER.log(System.Logger.Level.DEBUG, "{0}: initial state={1}", this, newState); + enter(newState); + } + + private void enter(ClientState newState){ + if(newState.parent != this) + throw new IllegalArgumentException("Wrong state: " + newState + " belongs to " + newState.parent + " instead of " + this); + state = newState; + state.entry(); + } + + @Override + public void exit(){state.exit();} + + @Override + public String toString(){ + return super.toString() + "(in " + state + ")"; + } + + public ClientState getState(){ + return state; + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayer.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayer.java index b12b6a6d..e06bc1b6 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayer.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayer.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class DetermineStartPlayer extends ClientState { - private final DetermineStartPlayerStateMachine determineStartPlayerStateMachine = new DetermineStartPlayerStateMachine(); + private final DetermineStartPlayerStateMachine determineStartPlayerStateMachine; + + protected DetermineStartPlayer(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.determineStartPlayerStateMachine = new DetermineStartPlayerStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayerStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayerStateMachine.java index f8a2aeda..d0153139 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayerStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/DetermineStartPlayerStateMachine.java @@ -1,4 +1,12 @@ package pp.mdga.client; public class DetermineStartPlayerStateMachine extends ClientStateMachine{ + protected DetermineStartPlayerStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public RollRankingDice initialState() { + return new RollRankingDice(this, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Dialogs.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Dialogs.java index 6b144ca8..f4140223 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Dialogs.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Dialogs.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class Dialogs extends ClientState { - private final DialogsStateMachine dialogsStateMachine = new DialogsStateMachine(); + private final DialogsStateMachine dialogsStateMachine; + + public Dialogs(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.dialogsStateMachine = new DialogsStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/DialogsStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/DialogsStateMachine.java index a1097aab..f37b1a74 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/DialogsStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/DialogsStateMachine.java @@ -1,4 +1,12 @@ package pp.mdga.client; public class DialogsStateMachine extends ClientStateMachine { + protected DialogsStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public StartDialog initialState() { + return new StartDialog(this, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/GameState.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/GameState.java index f4ac25fc..35d5221c 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/GameState.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/GameState.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class GameState extends ClientState { - private final GameStateMachine gameStateMachine = new GameStateMachine(); + private final GameStateMachine gameStateMachine; + + protected GameState(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.gameStateMachine = new GameStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/GameStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/GameStateMachine.java index 9686b7e6..1a8a95de 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/GameStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/GameStateMachine.java @@ -1,4 +1,12 @@ package pp.mdga.client; public class GameStateMachine extends ClientStateMachine { + protected GameStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public ClientState initialState() { + return null; + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Interrupt.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Interrupt.java index 287363cc..4ce1e628 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Interrupt.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Interrupt.java @@ -1,4 +1,14 @@ package pp.mdga.client; +import pp.mdga.server.GameState; + public class Interrupt extends ClientState { + + private final GameState lastState; + + public Interrupt(ClientState parent, ClientGameLogic logic, GameState lastState) { + super(parent, logic); + this.lastState = lastState; + } } + diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Lobby.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Lobby.java index a2f0f1c0..8dbe6356 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Lobby.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Lobby.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Lobby extends ClientState { + protected Lobby(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/MainSettings.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/MainSettings.java index 67e641bd..95fabebd 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/MainSettings.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/MainSettings.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class MainSettings extends ClientState { + protected MainSettings(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/MovePiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/MovePiece.java index e8c4c60b..1e3a148b 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/MovePiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/MovePiece.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class MovePiece extends ClientState { + protected MovePiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/NetworkDialog.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/NetworkDialog.java index 846a5a02..d065eaaf 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/NetworkDialog.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/NetworkDialog.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class NetworkDialog extends ClientState { + protected NetworkDialog(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/NoPiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/NoPiece.java index a52655b3..55c15632 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/NoPiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/NoPiece.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class NoPiece extends ClientState { + protected NoPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Observer.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Observer.java new file mode 100644 index 00000000..73290304 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Observer.java @@ -0,0 +1,5 @@ +package pp.mdga.client; + +public interface Observer { + void update(); +} diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/PlayPowerCard.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/PlayPowerCard.java index 1d79e516..3bf5f241 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/PlayPowerCard.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/PlayPowerCard.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class PlayPowerCard extends ClientState { + protected PlayPowerCard(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Podium.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Podium.java index 8819183e..57532c1e 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Podium.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Podium.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Podium extends ClientState { + protected Podium(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCard.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCard.java index 2ad3c2d1..62fb0d73 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCard.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCard.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class PowerCard extends ClientState { - private final PowerCardStateMachine powerCardStateMachine = new PowerCardStateMachine(); + private final PowerCardStateMachine powerCardStateMachine; + + protected PowerCard(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.powerCardStateMachine = new PowerCardStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCardStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCardStateMachine.java index 0bb5c60c..901d9d33 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCardStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/PowerCardStateMachine.java @@ -1,4 +1,12 @@ package pp.mdga.client; public class PowerCardStateMachine extends ClientStateMachine { + protected PowerCardStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public ChoosePowerCard initialState() { + return new ChoosePowerCard(this, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/RollDice.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/RollDice.java index f1056203..6d5593de 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/RollDice.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/RollDice.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class RollDice extends ClientState { + protected RollDice(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/RollRankingDice.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/RollRankingDice.java index 45871c8d..a0b90bd6 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/RollRankingDice.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/RollRankingDice.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class RollRankingDice extends ClientState { + protected RollRankingDice(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/SelectPiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/SelectPiece.java index 083ba28f..686b66bc 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/SelectPiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/SelectPiece.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class SelectPiece extends ClientState { + protected SelectPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Settings.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Settings.java index 2c118580..f274ac0e 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Settings.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Settings.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class Settings extends ClientState { - private final SettingsStateMachine settingsStateMachine = new SettingsStateMachine(); + private final SettingsStateMachine settingsStateMachine; + + protected Settings(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.settingsStateMachine = new SettingsStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/SettingsStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/SettingsStateMachine.java index e45870dd..2ff5f8d4 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/SettingsStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/SettingsStateMachine.java @@ -1,4 +1,12 @@ package pp.mdga.client; public class SettingsStateMachine extends ClientStateMachine { + protected SettingsStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public ClientState initialState() { + return null; + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Shield.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Shield.java index eaaa67cc..411ca30a 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Shield.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Shield.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Shield extends ClientState { + protected Shield(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Spectator.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Spectator.java index 50fc01f7..a93fd2d1 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Spectator.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Spectator.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Spectator extends ClientState { + protected Spectator(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/StartDialog.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/StartDialog.java index d258c93c..cc08d402 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/StartDialog.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/StartDialog.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class StartDialog extends ClientState { + protected StartDialog(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/StartPiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/StartPiece.java index 1330df6c..7f6af3ea 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/StartPiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/StartPiece.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class StartPiece extends ClientState { + protected StartPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Statistics.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Statistics.java index e46a5e1d..90b8a985 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Statistics.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Statistics.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Statistics extends ClientState { + protected Statistics(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Swap.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Swap.java index 60a9d28e..932a668e 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Swap.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Swap.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Swap extends ClientState { + protected Swap(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Turn.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Turn.java index db60e158..f1eb1e02 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Turn.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Turn.java @@ -1,5 +1,10 @@ package pp.mdga.client; public class Turn extends ClientState { - private final TurnStateMachine turnStateMachine = new TurnStateMachine(); + private final TurnStateMachine turnStateMachine; + + protected Turn(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.turnStateMachine = new TurnStateMachine(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/TurnStateMachine.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/TurnStateMachine.java index 892cf3e6..4fac2958 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/TurnStateMachine.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/TurnStateMachine.java @@ -1,4 +1,12 @@ package pp.mdga.client; public class TurnStateMachine extends ClientStateMachine { + protected TurnStateMachine(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public PowerCard initialState() { + return new PowerCard(this, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/VideoSettings.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/VideoSettings.java index 32d13929..4bce32e4 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/VideoSettings.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/VideoSettings.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class VideoSettings extends ClientState { + protected VideoSettings(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitRanking.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitRanking.java index 5614da6a..cbe8776a 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitRanking.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitRanking.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class WaitRanking extends ClientState { + protected WaitRanking(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/Waiting.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/Waiting.java index 4f0d719b..64838163 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/Waiting.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/Waiting.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class Waiting extends ClientState { + protected Waiting(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitingPiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitingPiece.java index d07fe63e..7932cb31 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitingPiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/client/WaitingPiece.java @@ -1,4 +1,7 @@ package pp.mdga.client; public class WaitingPiece extends ClientState { + protected WaitingPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } }