summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/NetworkGameControl.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/NetworkGameControl.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/NetworkGameControl.java')
-rw-r--r--src/jrummikub/control/network/NetworkGameControl.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/jrummikub/control/network/NetworkGameControl.java b/src/jrummikub/control/network/NetworkGameControl.java
new file mode 100644
index 0000000..1040909
--- /dev/null
+++ b/src/jrummikub/control/network/NetworkGameControl.java
@@ -0,0 +1,46 @@
+package jrummikub.control.network;
+
+import jrummikub.control.GameControl;
+import jrummikub.control.RoundControl;
+import jrummikub.control.SaveControl;
+import jrummikub.model.GameSettings;
+import jrummikub.model.IRoundState;
+import jrummikub.util.IListener;
+import jrummikub.view.IView;
+
+public class NetworkGameControl extends GameControl {
+ private IConnectionControl connectionControl;
+ private boolean host;
+
+ public NetworkGameControl(GameSettings gameSettings, SaveControl saveControl,
+ IView view, IConnectionControl connectionControl, boolean host) {
+ super(gameSettings, saveControl, view);
+
+ this.connectionControl = connectionControl;
+ this.host = host;
+ }
+
+ @Override
+ public void startGame() {
+ connections.add(connectionControl.getRoundStartEvent().add(new IListener() {
+ @Override
+ public void handle() {
+ startRound();
+ }
+ }));
+
+ if (host) {
+ connectionControl.startRound();
+ }
+ }
+
+ @Override
+ protected IRoundState createRoundState() {
+ return host ? super.createRoundState() : null;
+ }
+
+ @Override
+ protected RoundControl createRoundControl(IRoundState roundState) {
+ return new NetworkRoundControl(roundState, view, connectionControl, host);
+ }
+}