diff options
Diffstat (limited to 'src/jrummikub/control/network/NetworkTurnControl.java')
-rw-r--r-- | src/jrummikub/control/network/NetworkTurnControl.java | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/src/jrummikub/control/network/NetworkTurnControl.java b/src/jrummikub/control/network/NetworkTurnControl.java index d80c9b3..57851a2 100644 --- a/src/jrummikub/control/network/NetworkTurnControl.java +++ b/src/jrummikub/control/network/NetworkTurnControl.java @@ -1,52 +1,56 @@ package jrummikub.control.network; import jrummikub.control.turn.AbstractTurnControl; +import jrummikub.model.IHand; import jrummikub.model.IRoundState; import jrummikub.model.ITable; import jrummikub.util.Event1; import jrummikub.util.IEvent1; import jrummikub.util.IListener1; +import jrummikub.util.IListener3; public class NetworkTurnControl extends AbstractTurnControl { private IConnectionControl connectionControl; private Event1<IRoundState> stateUpdateEvent = new Event1<IRoundState>(); - - + public NetworkTurnControl(IConnectionControl connectionControl) { this.connectionControl = connectionControl; } - + public IEvent1<IRoundState> getStateUpdateEvent() { return stateUpdateEvent; } - + @Override public void doStartTurn() { - connections.add(connectionControl.getTableUpdateEvent().add(new IListener1<ITable>() { - @Override - public void handle(ITable table) { - view.getTablePanel().setStoneSets(table); - } - })); - connections.add(connectionControl.getTurnEndEvent().add(new IListener1<ITable>() { - @Override - public void handle(ITable table) { - endOfTurn(table); - } - })); + connections.add(connectionControl.getTableUpdateEvent().add( + new IListener1<ITable>() { + @Override + public void handle(ITable table) { + view.getTablePanel().setStoneSets(table); + } + })); + connections.add(connectionControl.getTurnEndEvent().add( + new IListener3<IHand, ITable, ITable>() { + @Override + public void handle(IHand oldHand, ITable oldTable, ITable newTable) { + endOfTurn(oldHand, oldTable, newTable); + } + })); timer.startTimer(); } - private void endOfTurn(ITable newTable) { + private void endOfTurn(IHand oldHand, ITable oldTable, ITable newTable) { cleanUp(); - endOfTurnEvent.emit(newTable); + + endOfTurnEvent.emit(oldHand, oldTable, newTable); } - + @Override protected void timeOut() { } - + @Override protected void pauseTurn() { } |