Boat Names Change. Colors Change too. Updates clients during lobby when a change is made.

tags: #story[1142]
This commit is contained in:
Alistair McIntyre
2017-08-16 19:31:27 +12:00
parent 6d045e9976
commit 02a7b804c1
9 changed files with 67 additions and 15 deletions
@@ -6,6 +6,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javafx.scene.paint.Color;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.slf4j.Logger;
@@ -578,9 +579,14 @@ public class GameState implements Runnable {
if (requestType.equals(CustomizeRequestType.NAME)) {
String name = new String(customizeData);
System.out.println(playerYacht.getBoatName());
playerYacht.setBoatName(name);
System.out.println(playerYacht.getBoatName());
} else if (requestType.equals(CustomizeRequestType.COLOR)) {
System.out.println(customizeData.length);
int red = customizeData[0] & 0xFF;
int green = customizeData[1] & 0xFF;
int blue = customizeData[2] & 0xFF;
Color yachtColor = Color.rgb(red, green, blue);
playerYacht.setBoatColor(yachtColor);
}
}
@@ -1,6 +1,5 @@
package seng302.gameServer;
import gherkin.lexer.Fi;
import java.io.IOException;
import java.net.ServerSocket;
import java.time.LocalDateTime;
@@ -8,8 +7,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import seng302.gameServer.server.messages.*;
import seng302.gameServer.server.messages.BoatSubMessage;
import seng302.gameServer.server.messages.Message;
import seng302.gameServer.server.messages.RaceStartNotificationType;
import seng302.gameServer.server.messages.RaceStartStatusMessage;
import seng302.gameServer.server.messages.RaceStatus;
import seng302.gameServer.server.messages.RaceStatusMessage;
import seng302.gameServer.server.messages.RaceType;
import seng302.model.GeoPoint;
import seng302.model.Player;
import seng302.model.PolarTable;
@@ -73,6 +77,14 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
serverLog("Interrupted exception in Main Server Thread thread sleep", 1);
}
if (GameState.getCurrentStage() == GameStages.LOBBYING) {
// TODO: 16/08/17 ajm412: This can probably be done in a nicer way via those fancy functional interfaces.
for (ServerToClientThread thread : serverToClientThreads) {
thread.sendSetupMessages();
}
}
if (GameState.getCurrentStage() == GameStages.PRE_RACE) {
updateClients();
}
@@ -211,6 +211,7 @@ public class ServerToClientThread implements Runnable, Observer {
new StreamPacket(type, payloadLength, timeStamp, payload));
GameState.customizePlayer(sourceID, requestType,
Arrays.copyOfRange(payload, 6, payload.length));
sendSetupMessages();
break;
}
} else {