summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/GameOfferControl.java
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-06-20 03:59:04 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-06-20 03:59:04 +0200
commitf3f8ffe4621e91d33732bba9e103ff790a16c7b3 (patch)
treea4663053ea570c7a077a244de9f4f884294208d1 /src/jrummikub/control/network/GameOfferControl.java
parente79295f271062f2186c2ce0f9b69f1ddfc964abf (diff)
downloadJRummikub-f3f8ffe4621e91d33732bba9e103ff790a16c7b3.tar
JRummikub-f3f8ffe4621e91d33732bba9e103ff790a16c7b3.zip
Added NetworkGameControl
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@503 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/network/GameOfferControl.java')
-rw-r--r--src/jrummikub/control/network/GameOfferControl.java33
1 files changed, 29 insertions, 4 deletions
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<GameSettings> gameStartEvent = new Event1<GameSettings>();
/**
* 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<GameSettings> getStartGameEvent() {
+ return gameStartEvent;
+ }
+
+ private void startGame() {
+ abort();
connectionControl.startGame();
+
+ GameSettings settings = gameData.getGameSettings();
+ removeVacant(settings);
+
+ gameStartEvent.emit(settings);
+ }
+
+ private void removeVacant(GameSettings settings) {
+ Iterator<PlayerSettings> 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