Merged Host Customisation onto 1273_Skybox

This commit is contained in:
Michael Rausch
2017-09-27 15:31:54 +13:00
parent 00ff771fc3
commit 7db387bdec
7 changed files with 52 additions and 52 deletions
@@ -5,14 +5,7 @@ import java.util.*;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import seng302.gameServer.messages.BoatAction; import seng302.gameServer.messages.*;
import seng302.gameServer.messages.BoatStatus;
import seng302.gameServer.messages.ChatterMessage;
import seng302.gameServer.messages.CustomizeRequestType;
import seng302.gameServer.messages.MarkRoundingMessage;
import seng302.gameServer.messages.MarkType;
import seng302.gameServer.messages.Message;
import seng302.gameServer.messages.RoundingBoatStatus;
import seng302.model.GeoPoint; import seng302.model.GeoPoint;
import seng302.model.Limit; import seng302.model.Limit;
import seng302.model.Player; import seng302.model.Player;
@@ -97,6 +90,7 @@ public class GameState implements Runnable {
private static List<NewMessageListener> newMessageListeners; private static List<NewMessageListener> newMessageListeners;
private static Map<Player, String> playerStringMap = new HashMap<>(); private static Map<Player, String> playerStringMap = new HashMap<>();
private static boolean tokensEnabled = false;
public GameState() { public GameState() {
windDirection = 180d; windDirection = 180d;
@@ -253,9 +247,11 @@ public class GameState implements Runnable {
timer.schedule(new TimerTask() { timer.schedule(new TimerTask() {
@Override @Override
public void run() { public void run() {
if (tokensEnabled) {
spawnNewToken(); spawnNewToken();
notifyMessageListeners(MessageFactory.getRaceXML()); notifyMessageListeners(MessageFactory.getRaceXML());
} }
}
}, 0, TOKEN_SPAWN_TIME); }, 0, TOKEN_SPAWN_TIME);
} }
@@ -340,6 +336,7 @@ public class GameState implements Runnable {
// token.assignType(TokenType.RANDOM); // token.assignType(TokenType.RANDOM);
logger.debug("Spawned token of type " + token.getTokenType()); logger.debug("Spawned token of type " + token.getTokenType());
tokensInPlay.add(token); tokensInPlay.add(token);
MessageFactory.updateTokens(tokensInPlay);
} }
/** /**
@@ -386,6 +383,8 @@ public class GameState implements Runnable {
if (collidedToken != null) { if (collidedToken != null) {
tokensInPlay.remove(collidedToken); tokensInPlay.remove(collidedToken);
powerUpYacht(yacht, collidedToken); powerUpYacht(yacht, collidedToken);
MessageFactory.updateTokens(tokensInPlay);
notifyMessageListeners(MessageFactory.getRaceXML());
} }
checkPowerUpTimeout(yacht); checkPowerUpTimeout(yacht);
@@ -1036,4 +1035,8 @@ public class GameState implements Runnable {
public static double getServerSpeedMultiplier() { public static double getServerSpeedMultiplier() {
return serverSpeedMultiplier; return serverSpeedMultiplier;
} }
public static void setTokensEnabled (boolean tokensEnabled) {
GameState.tokensEnabled = tokensEnabled;
}
} }
@@ -163,7 +163,6 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
private void sendSetupMessages() { private void sendSetupMessages() {
MessageFactory.updateBoats(new ArrayList<>(GameState.getYachts().values())); MessageFactory.updateBoats(new ArrayList<>(GameState.getYachts().values()));
broadcastMessage(MessageFactory.getRaceXML()); broadcastMessage(MessageFactory.getRaceXML());
broadcastMessage(MessageFactory.getRegattaXML()); broadcastMessage(MessageFactory.getRegattaXML());
broadcastMessage(MessageFactory.getBoatXML()); broadcastMessage(MessageFactory.getBoatXML());
@@ -203,6 +203,7 @@ public class ServerToClientThread implements Runnable {
XMLParser.parseRace(document) XMLParser.parseRace(document)
); );
GameState.setMaxPlayers(XMLParser.getMaxPlayers(document)); GameState.setMaxPlayers(XMLParser.getMaxPlayers(document));
GameState.setTokensEnabled(XMLParser.tokensEnabled(document));
break; break;
case REGATTA_XML: case REGATTA_XML:
regattaXMLProperty.set( regattaXMLProperty.set(
@@ -201,11 +201,16 @@ public class XMLParser {
public static Boolean tokensEnabled(Document doc) { public static Boolean tokensEnabled(Document doc) {
Element docEle = doc.getDocumentElement(); Element docEle = doc.getDocumentElement();
try { try {
Node tokenNode = docEle.getAttributeNode("Tokens"); NamedNodeMap namedNodeMap = docEle.getElementsByTagName("Tokens").item(0).getAttributes();
return Boolean.valueOf(XMLParser.getNodeAttributeString(tokenNode, "Enabled")); Node node = namedNodeMap.getNamedItem("Enabled");
if (node != null) {
return Boolean.parseBoolean(node.getNodeValue());
}
} catch (NullPointerException npe) { } catch (NullPointerException npe) {
npe.printStackTrace();
return false; return false;
} }
return false;
} }
public static Integer getMaxPlayers(Document doc) { public static Integer getMaxPlayers(Document doc) {
@@ -24,11 +24,7 @@ import javafx.scene.transform.Scale;
import javafx.scene.transform.Translate; import javafx.scene.transform.Translate;
import org.fxyz3d.scene.Skybox; import org.fxyz3d.scene.Skybox;
import seng302.gameServer.messages.RoundingSide; import seng302.gameServer.messages.RoundingSide;
import seng302.model.ClientYacht; import seng302.model.*;
import seng302.model.GameKeyBind;
import seng302.model.KeyAction;
import seng302.model.Limit;
import seng302.model.ScaledPoint;
import seng302.model.mark.CompoundMark; import seng302.model.mark.CompoundMark;
import seng302.model.mark.Corner; import seng302.model.mark.Corner;
import seng302.model.mark.Mark; import seng302.model.mark.Mark;
@@ -67,22 +63,10 @@ public class GameView3D extends GameView{
private PerspectiveCamera topDownCam; private PerspectiveCamera topDownCam;
private PerspectiveCamera chaseCam; private PerspectiveCamera chaseCam;
private double bufferSize = 0;
private double canvasWidth = 200;
private double canvasHeight = 200;
private boolean horizontalInversion = false;
private double distanceScaleFactor;
private ScaleDirection scaleDirection;
private GeoPoint minLatPoint, minLonPoint, maxLatPoint, maxLonPoint;
private double referencePointX, referencePointY;
private Group raceBorder = new Group();
/* Note that if either of these is null then values for it have not been added and the other /* Note that if either of these is null then values for it have not been added and the other
should be used as the limits of the map. */ should be used as the limits of the map. */
private Map<Mark, Marker3D> markerObjects; private Map<Mark, Marker3D> markerObjects;
private Map<ClientYacht, BoatObject> boatObjects = new HashMap<>(); private Map<ClientYacht, BoatObject> boatObjects = new HashMap<>();
private BoatObject selectedBoat = null;
private Group wakesGroup = new Group(); private Group wakesGroup = new Group();
private Group boatObjectGroup = new Group(); private Group boatObjectGroup = new Group();
private List<Node> mapTokens; private List<Node> mapTokens;
@@ -91,11 +75,6 @@ public class GameView3D extends GameView{
private Double windDir; private Double windDir;
private Skybox skybox; private Skybox skybox;
private enum ScaleDirection {
HORIZONTAL,
VERTICAL
}
public GameView3D () { public GameView3D () {
isometricCam = new IsometricCamera(DEFAULT_CAMERA_X, DEFAULT_CAMERA_Y); isometricCam = new IsometricCamera(DEFAULT_CAMERA_X, DEFAULT_CAMERA_Y);
topDownCam = new TopDownCamera(); topDownCam = new TopDownCamera();
@@ -95,6 +95,7 @@ public class ServerCreationController implements Initializable {
mapHolder.getChildren().setAll(mapMaker.getCurrentGameView()); mapHolder.getChildren().setAll(mapMaker.getCurrentGameView());
mapNameLabel.setText(mapMaker.getCurrentRegatta().getCourseName()); mapNameLabel.setText(mapMaker.getCurrentRegatta().getCourseName());
pickupsCheckBox.setSelected(true);
//closeLabel.setOnMouseClicked(event -> notifyListeners()); //closeLabel.setOnMouseClicked(event -> notifyListeners());
} }
File diff suppressed because one or more lines are too long