summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/ConnectionControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/ConnectionControl.java')
-rw-r--r--src/jrummikub/control/network/ConnectionControl.java53
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 + "'");