From f3f8ffe4621e91d33732bba9e103ff790a16c7b3 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Mon, 20 Jun 2011 03:59:04 +0200 Subject: Added NetworkGameControl git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@503 72836036-5685-4462-b002-a69064685172 --- .../control/network/GameOfferControl.java | 33 +++++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'src/jrummikub/control/network/GameOfferControl.java') diff --git a/src/jrummikub/control/network/GameOfferControl.java b/src/jrummikub/control/network/GameOfferControl.java index 8c5820d..42e3b8b 100644 --- a/src/jrummikub/control/network/GameOfferControl.java +++ b/src/jrummikub/control/network/GameOfferControl.java @@ -1,12 +1,15 @@ package jrummikub.control.network; +import java.util.Iterator; import java.util.List; import java.util.UUID; import jrummikub.model.GameSettings; import jrummikub.model.PlayerSettings; import jrummikub.model.PlayerSettings.Type; +import jrummikub.util.Event1; import jrummikub.util.GameData; +import jrummikub.util.IEvent1; import jrummikub.util.IListener; import jrummikub.util.IListener1; import jrummikub.view.ISettingsPanel.SettingsMode; @@ -16,6 +19,7 @@ import jrummikub.view.IView; * Control for network game host */ public class GameOfferControl extends AbstractGameBeginControl { + private Event1 gameStartEvent = new Event1(); /** * Creates new game offer control @@ -84,10 +88,32 @@ public class GameOfferControl extends AbstractGameBeginControl { })); } - @Override - protected void startGame() { - super.startGame(); + /** + * The event that is emitted when the game is started + * + * @return the event + */ + public IEvent1 getStartGameEvent() { + return gameStartEvent; + } + + private void startGame() { + abort(); connectionControl.startGame(); + + GameSettings settings = gameData.getGameSettings(); + removeVacant(settings); + + gameStartEvent.emit(settings); + } + + private void removeVacant(GameSettings settings) { + Iterator it = settings.getPlayerList().iterator(); + while (it.hasNext()) { + if (it.next().getType() == Type.VACANT) { + it.remove(); + } + } } /** @@ -98,7 +124,6 @@ public class GameOfferControl extends AbstractGameBeginControl { connectionControl.offerGame(gameData); view.showSettingsPanel(true); - } @Override -- cgit v1.2.3