diff options
Diffstat (limited to 'src/jrummikub/control/network/ConnectionControl.java')
-rw-r--r-- | src/jrummikub/control/network/ConnectionControl.java | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/src/jrummikub/control/network/ConnectionControl.java b/src/jrummikub/control/network/ConnectionControl.java index 76b430a..4ed160a 100644 --- a/src/jrummikub/control/network/ConnectionControl.java +++ b/src/jrummikub/control/network/ConnectionControl.java @@ -6,19 +6,17 @@ import java.util.UUID; import javax.swing.SwingUtilities; +import jrummikub.control.RoundControl.InvalidTurnInfo; import jrummikub.model.GameSettings; -import jrummikub.model.IHand; import jrummikub.model.IRoundState; import jrummikub.model.ITable; import jrummikub.util.Event; import jrummikub.util.Event1; import jrummikub.util.Event2; -import jrummikub.util.Event3; import jrummikub.util.GameData; import jrummikub.util.IEvent; import jrummikub.util.IEvent1; import jrummikub.util.IEvent2; -import jrummikub.util.IEvent3; import jrummikub.util.LoginData; import jrummikub.view.LoginError; @@ -48,26 +46,20 @@ public class ConnectionControl implements IConnectionControl { private static class TurnEndData implements Serializable { private static final long serialVersionUID = -3800572117130220737L; - private IHand oldHand; - private ITable oldTable; - private ITable newTable; + private IRoundState roundState; + private InvalidTurnInfo invalidTurnInfo; - TurnEndData(IHand oldHand, ITable oldTable, ITable newTable) { - this.oldHand = oldHand; - this.oldTable = oldTable; - this.newTable = newTable; + TurnEndData(IRoundState roundState, InvalidTurnInfo invalidTurnInfo) { + this.roundState = roundState; + this.invalidTurnInfo = invalidTurnInfo; } - IHand getOldHand() { - return oldHand; + IRoundState getRoundState() { + return roundState; } - ITable getOldTable() { - return oldTable; - } - - ITable getNewTable() { - return newTable; + InvalidTurnInfo getInvalidTurnInfo() { + return invalidTurnInfo; } } @@ -95,8 +87,8 @@ public class ConnectionControl implements IConnectionControl { private Event roundStartEvent = new Event(); private Event1<ITable> tableUpdateEvent = new Event1<ITable>(); - private Event3<IHand, ITable, ITable> turnEndEvent = new Event3<IHand, ITable, ITable>(); - private Event1<IRoundState> turnStartEvent = new Event1<IRoundState>(); + private Event2<IRoundState, InvalidTurnInfo> turnEndEvent = new Event2<IRoundState, InvalidTurnInfo>(); + private Event turnStartEvent = new Event(); private GameData currentGame; @@ -195,12 +187,12 @@ public class ConnectionControl implements IConnectionControl { } @Override - public IEvent3<IHand, ITable, ITable> getTurnEndEvent() { + public IEvent2<IRoundState, InvalidTurnInfo> getTurnEndEvent() { return turnEndEvent; } @Override - public IEvent1<IRoundState> getTurnStartEvent() { + public IEvent getTurnStartEvent() { return turnStartEvent; } @@ -334,29 +326,28 @@ public class ConnectionControl implements IConnectionControl { } @Override - public void endTurn(final IHand oldHand, final ITable oldTable, - final ITable newTable) { + public void endTurn(final IRoundState state, + final InvalidTurnInfo invalidTurnInfo) { final UUID uuid = currentGame.getGameID(); run(new SendRunner() { @Override protected void addData(DefaultPacketExtension extension) { extension.setValue("messageType", "turn_end"); extension.setValue("uuid", uuid.toString()); - extension.setValue("data", Base64.encodeObject(new TurnEndData(oldHand, - oldTable, newTable), Base64.GZIP)); + extension.setValue("data", Base64.encodeObject(new TurnEndData(state, + invalidTurnInfo), Base64.GZIP)); } }); } @Override - public void startTurn(final IRoundState state) { + public void startTurn() { final UUID uuid = currentGame.getGameID(); run(new SendRunner() { @Override protected void addData(DefaultPacketExtension extension) { extension.setValue("messageType", "turn_start"); extension.setValue("uuid", uuid.toString()); - extension.setValue("state", Base64.encodeObject(state, Base64.GZIP)); } }); } @@ -474,11 +465,9 @@ public class ConnectionControl implements IConnectionControl { } else if (messageType.equals("turn_end")) { TurnEndData data = (TurnEndData) Base64.decodeToObject(extension .getValue("data")); - turnEndEvent.emit(data.getOldHand(), data.getOldTable(), - data.getNewTable()); + turnEndEvent.emit(data.getRoundState(), data.getInvalidTurnInfo()); } else if (messageType.equals("turn_start")) { - turnStartEvent.emit((IRoundState) Base64.decodeToObject(extension - .getValue("state"))); + turnStartEvent.emit(); } else { System.err.println("Received unrecognized message of type '" + messageType + "'"); |