mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Merged Host Customisation onto 1273_Skybox
This commit is contained in:
@@ -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
Reference in New Issue
Block a user