diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-20 03:59:04 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-20 03:59:04 +0200 |
commit | f3f8ffe4621e91d33732bba9e103ff790a16c7b3 (patch) | |
tree | a4663053ea570c7a077a244de9f4f884294208d1 /src/jrummikub/control/network/NetworkGameControl.java | |
parent | e79295f271062f2186c2ce0f9b69f1ddfc964abf (diff) | |
download | JRummikub-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.java | 46 |
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); + } +} |