Compare commits

..

2 Commits

Author SHA1 Message Date
Calum 09c02d5c54 Finish screen not appearing. Start screen opened simultanously. 2017-09-28 12:35:47 +13:00
Calum 08c34a0b1e Finish arrow not spawning fix. 2017-09-28 09:54:03 +13:00
14 changed files with 333 additions and 372 deletions
@@ -104,7 +104,6 @@ public class ServerYacht {
* @param secondsElapsed The seconds elapsed since the last update of this yacht * @param secondsElapsed The seconds elapsed since the last update of this yacht
*/ */
public void updateLocation(Double secondsElapsed) { public void updateLocation(Double secondsElapsed) {
//test
lastLocation = location; lastLocation = location;
location = GeoUtility.getGeoCoordinate(location, heading, currentVelocity * secondsElapsed); location = GeoUtility.getGeoCoordinate(location, heading, currentVelocity * secondsElapsed);
} }
@@ -1,14 +1,5 @@
package seng302.visualiser; package seng302.visualiser;
import javafx.application.Platform;
import javafx.util.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import seng302.gameServer.messages.*;
import seng302.model.stream.packets.PacketType;
import seng302.model.stream.packets.StreamPacket;
import seng302.utilities.XMLParser;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@@ -23,6 +14,7 @@ import java.util.TimerTask;
import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.zip.CRC32; import java.util.zip.CRC32;
import java.util.zip.Checksum; import java.util.zip.Checksum;
import javafx.application.Platform;
import javafx.util.Pair; import javafx.util.Pair;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -99,6 +91,7 @@ public class ClientToServerThread implements Runnable {
private ByteArrayOutputStream crcBuffer; private ByteArrayOutputStream crcBuffer;
private boolean socketOpen = true; private boolean socketOpen = true;
private boolean ignoreDC = false;
/** /**
* Constructor for ClientToServerThread which takes in ipAddress and portNumber and attempts to * Constructor for ClientToServerThread which takes in ipAddress and portNumber and attempts to
@@ -181,8 +174,10 @@ public class ClientToServerThread implements Runnable {
closeSocket(); closeSocket();
Platform.runLater(() -> { Platform.runLater(() -> {
ViewManager.getInstance().showErrorSnackBar("Server rejected connection."); if (ignoreDC) {
ViewManager.getInstance().goToStartView(); ViewManager.getInstance().showErrorSnackBar("Server rejected connection.");
ViewManager.getInstance().goToStartView();
}
}); });
} }
@@ -198,7 +193,7 @@ public class ClientToServerThread implements Runnable {
} }
private void notifyDisconnectListeners (String message) { private void notifyDisconnectListeners (String message) {
if (socketOpen) { if (socketOpen && !ignoreDC) {
for (DisconnectedFromHostListener listener : disconnectionListeners) { for (DisconnectedFromHostListener listener : disconnectionListeners) {
listener.notifyDisconnection(message); listener.notifyDisconnection(message);
} }
@@ -448,4 +443,8 @@ public class ClientToServerThread implements Runnable {
public boolean hasStarted() { public boolean hasStarted() {
return isStarted; return isStarted;
} }
public void ignoreDC() {
ignoreDC = true;
}
} }
@@ -49,12 +49,6 @@ import seng302.visualiser.controllers.RaceViewController;
import seng302.visualiser.controllers.ViewManager; import seng302.visualiser.controllers.ViewManager;
import seng302.visualiser.controllers.dialogs.PopupDialogController; import seng302.visualiser.controllers.dialogs.PopupDialogController;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.*;
/** /**
* This class is a client side instance of a yacht racing game in JavaFX. The game is instantiated * This class is a client side instance of a yacht racing game in JavaFX. The game is instantiated
* with a JavaFX Pane to insert itself into. * with a JavaFX Pane to insert itself into.
@@ -210,7 +204,11 @@ public class GameClient {
controller.setContent(message); controller.setContent(message);
controller.setOptionButtonText("GO HOME"); controller.setOptionButtonText("GO HOME");
controller controller
.setOptionButtonEventHandler(event -> ViewManager.getInstance().goToStartView()); .setOptionButtonEventHandler(event -> {
System.out.println("inShowConnectionError");
ViewManager.getInstance().goToStartView();
});
}); });
} }
@@ -2,7 +2,6 @@ package seng302.visualiser;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -24,7 +23,11 @@ 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.*; import seng302.model.ClientYacht;
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;
@@ -51,7 +54,7 @@ public class GameView3D extends GameView{
private final double FOV = 60; private final double FOV = 60;
private final double DEFAULT_CAMERA_X = 0; private final double DEFAULT_CAMERA_X = 0;
private final double DEFAULT_CAMERA_Y = 100; private final double DEFAULT_CAMERA_Y = 160;
private Group root3D; private Group root3D;
private SubScene view; private SubScene view;
@@ -164,6 +167,7 @@ public class GameView3D extends GameView{
} }
createMarkArrows(); createMarkArrows();
course.get(0).getMarks().forEach((mark -> markerObjects.get(mark).showNextExitArrow()));
//Scale race to markers if there is no border. //Scale race to markers if there is no border.
if (borderPoints == null) { if (borderPoints == null) {
@@ -505,7 +509,7 @@ public class GameView3D extends GameView{
private void updateMarkArrows (ClientYacht yacht, int legNumber) { private void updateMarkArrows (ClientYacht yacht, int legNumber) {
CompoundMark compoundMark; CompoundMark compoundMark;
if (legNumber - 1 >= 0) { if (legNumber - 1 >= 0 && legNumber-1 < course.size()) {
Sounds.playMarkRoundingSound(); Sounds.playMarkRoundingSound();
compoundMark = course.get(legNumber-1); compoundMark = course.get(legNumber-1);
for (Mark mark : compoundMark.getMarks()) { for (Mark mark : compoundMark.getMarks()) {
@@ -513,7 +517,7 @@ public class GameView3D extends GameView{
} }
} }
CompoundMark nextMark = null; CompoundMark nextMark = null;
if (legNumber < course.size() - 1) { if (legNumber < course.size()) {
Sounds.playMarkRoundingSound(); Sounds.playMarkRoundingSound();
nextMark = course.get(legNumber); nextMark = course.get(legNumber);
for (Mark mark : nextMark.getMarks()) { for (Mark mark : nextMark.getMarks()) {
@@ -16,8 +16,8 @@ public class IsometricCamera extends PerspectiveCamera implements RaceCamera {
private final Double MAX_Y = 170.0; private final Double MAX_Y = 170.0;
private final Double PAN_LIMIT = 160.0; private final Double PAN_LIMIT = 160.0;
private final Double NEAR_ZOOM_LIMIT = -50.0; private final Double NEAR_ZOOM_LIMIT = -30.0;
private final Double FAR_ZOOM_LIMIT = -160.0; private final Double FAR_ZOOM_LIMIT = -180.0;
private Double horizontalPan; private Double horizontalPan;
private Double verticalPan; private Double verticalPan;
@@ -29,7 +29,8 @@ public class IsometricCamera extends PerspectiveCamera implements RaceCamera {
super(true); super(true);
transforms = this.getTransforms(); transforms = this.getTransforms();
zoomFactor = (FAR_ZOOM_LIMIT + NEAR_ZOOM_LIMIT) / 2.0; // zoomFactor = (FAR_ZOOM_LIMIT + NEAR_ZOOM_LIMIT) / 2.0;
zoomFactor = FAR_ZOOM_LIMIT;
horizontalPan = cameraStartX; horizontalPan = cameraStartX;
verticalPan = cameraStartY; verticalPan = cameraStartY;
@@ -11,9 +11,9 @@ import seng302.visualiser.fxObjects.assets_3D.BoatObject;
public class TopDownCamera extends PerspectiveCamera implements RaceCamera { public class TopDownCamera extends PerspectiveCamera implements RaceCamera {
private final Double PAN_LIMIT = 30.0; private final Double PAN_LIMIT = 40d;
private final Double NEAR_ZOOM_LIMIT = -30.0; private final Double NEAR_ZOOM_LIMIT = -35d;
private final Double FAR_ZOOM_LIMIT = -130.0; private final Double FAR_ZOOM_LIMIT = -145d;
private final Double ZOOM_STEP = 2.5; private final Double ZOOM_STEP = 2.5;
private ObservableList<Transform> transforms; private ObservableList<Transform> transforms;
@@ -225,7 +225,7 @@ public class LobbyController implements Initializable {
} }
private void leaveLobby() { private void leaveLobby() {
System.out.println("LEFT LOBBY");
ViewManager.getInstance().getGameClient().stopGame(); ViewManager.getInstance().getGameClient().stopGame();
ViewManager.getInstance().goToStartView(); ViewManager.getInstance().goToStartView();
} }
@@ -197,7 +197,9 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel
} }
public void showFinishDialog(ArrayList<ClientYacht> finishedBoats) { public void showFinishDialog(ArrayList<ClientYacht> finishedBoats) {
System.out.println("called");
raceState.setRaceStarted(false); raceState.setRaceStarted(false);
ViewManager.getInstance().getGameClient().getServerThread().ignoreDC();
createFinishDialog(finishedBoats); createFinishDialog(finishedBoats);
} }
@@ -5,7 +5,6 @@ import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXListView; import com.jfoenix.controls.JFXListView;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
@@ -26,7 +25,10 @@ public class FinishDialogController implements Initializable {
@Override @Override
public void initialize(URL location, ResourceBundle resources) { public void initialize(URL location, ResourceBundle resources) {
playAgain.setOnAction(event -> ViewManager.getInstance().goToStartView()); playAgain.setOnAction(event -> {
System.out.println("CALLED HERE");
ViewManager.getInstance().goToStartView();
});
} }
public void setFinishedBoats(ArrayList<ClientYacht> finishedBoats) { public void setFinishedBoats(ArrayList<ClientYacht> finishedBoats) {
@@ -28,12 +28,12 @@ public class ServerCreationController implements Initializable {
@FXML @FXML
private JFXSlider maxPlayersSlider; private JFXSlider maxPlayersSlider;
@FXML @FXML
private Label maxPlayersLabel;
@FXML
private JFXButton submitBtn; private JFXButton submitBtn;
@FXML @FXML
private Label closeLabel; private Label closeLabel;
@FXML @FXML
private Label maxPlayersLabel;
@FXML
private JFXButton nextMapButton; private JFXButton nextMapButton;
@FXML @FXML
private JFXButton lastMapButton; private JFXButton lastMapButton;
@@ -47,10 +47,11 @@ public class ServerCreationController implements Initializable {
private JFXCheckBox pickupsCheckBox; private JFXCheckBox pickupsCheckBox;
@FXML @FXML
private AnchorPane mapHolder; private AnchorPane mapHolder;
//---------FXML END---------//
private MapMaker mapMaker = MapMaker.getInstance(); private MapMaker mapMaker = MapMaker.getInstance();
//---------FXML END---------//
private List<ServerCreationDialogListener> serverCreationDialogListeners; private List<ServerCreationDialogListener> serverCreationDialogListeners;
public void initialize(URL location, ResourceBundle resources) { public void initialize(URL location, ResourceBundle resources) {
@@ -95,7 +96,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); pickupsCheckBox.setSelected(true);
closeLabel.setOnMouseClicked(event -> notifyListeners()); //closeLabel.setOnMouseClicked(event -> notifyListeners());
} }
/** /**
@@ -133,8 +134,7 @@ public class ServerCreationController implements Initializable {
*/ */
private void updateMaxPlayerLabel() { private void updateMaxPlayerLabel() {
maxPlayersSlider.setValue(Math.floor(maxPlayersSlider.getValue())); maxPlayersSlider.setValue(Math.floor(maxPlayersSlider.getValue()));
maxPlayersLabel.setText(String maxPlayersLabel.setText(String.format("Max players: %.0f", maxPlayersSlider.getValue()));
.format("Only %.0f players are allowed into the game", maxPlayersSlider.getValue()));
} }
private void updateLegSliderLabel() { private void updateLegSliderLabel() {
@@ -2,14 +2,6 @@
-fx-font-family: monospace !important; -fx-font-family: monospace !important;
} }
.sliderLabel {
-fx-text-fill: -fx-pp-dark-text-color;
}
.error-label * {
-fx-text-fill: red;
}
#submitBtn { #submitBtn {
-fx-background-color: -fx-pp-theme-color; -fx-background-color: -fx-pp-theme-color;
-fx-text-fill: -fx-pp-light-text-color; -fx-text-fill: -fx-pp-light-text-color;
@@ -40,7 +32,12 @@
-fx-font-size: 16px; -fx-font-size: 16px;
} }
.optionLabel { #maxPlayersLabel {
-fx-text-fill: -fx-pp-dark-text-color;
-fx-font-size: 16px;
}
#maxPlayerPromptLabel {
-fx-text-fill: -fx-pp-dark-text-color; -fx-text-fill: -fx-pp-dark-text-color;
-fx-font-size: 16px; -fx-font-size: 16px;
} }
@@ -58,8 +55,3 @@
-fx-text-fill: red; -fx-text-fill: red;
-fx-font-size: 33px; -fx-font-size: 33px;
} }
JFXCheckBox {
-jfx-checked-color: -fx-pp-theme-color;
-fx-text-fill: -fx-pp-dark-text-color;
}
+1 -1
View File
@@ -45,7 +45,7 @@
<Corner CompoundMarkID="1" Rounding="PS"/> <Corner CompoundMarkID="1" Rounding="PS"/>
<Corner CompoundMarkID="2" Rounding="S"/> <Corner CompoundMarkID="2" Rounding="S"/>
<Corner CompoundMarkID="3" Rounding="S"/> <Corner CompoundMarkID="3" Rounding="S"/>
<Corner CompoundMarkID="4" Rounding="SP"/> <Corner CompoundMarkID="4" Rounding="PS"/>
</OpeningSegment> </OpeningSegment>
<RepeatingSegment> <RepeatingSegment>
+239 -237
View File
@@ -24,281 +24,283 @@
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<StackPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" style="-fx-background-color: skyblue;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.visualiser.controllers.RaceViewController"> <StackPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" style="-fx-background-color: skyblue;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.visualiser.controllers.RaceViewController">
<children>
<StackPane fx:id="contentStackPane" maxHeight="1.7976931348623157E308"
maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0"
prefWidth="1200.0" style="-fx-background-color: skyblue;" xmlns="http://javafx.com/javafx/8.0.111"
xmlns:fx="http://javafx.com/fxml/1">
<children> <children>
<StackPane fx:id="contentStackPane" maxHeight="1.7976931348623157E308" <GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308"
maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefHeight="800.0" prefWidth="1200.0">
prefWidth="1200.0" style="-fx-background-color: skyblue;" xmlns="http://javafx.com/javafx/8.0.111" <columnConstraints>
xmlns:fx="http://javafx.com/fxml/1"> <ColumnConstraints hgrow="SOMETIMES" maxWidth="250.0" minWidth="250.0"
prefWidth="250.0"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="400.0"
prefWidth="400.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="70.0" minHeight="70.0" prefHeight="70.0"
vgrow="SOMETIMES"/>
<RowConstraints maxHeight="1.7976931348623157E308" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="250.0" minHeight="250.0" prefHeight="250.0"
valignment="BOTTOM" vgrow="SOMETIMES"/>
</rowConstraints>
<children> <children>
<GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" <GridPane id="timerGrid" fx:id="timerGrid" prefWidth="192.0" styleClass="timer">
prefHeight="800.0" prefWidth="1200.0">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="250.0" minWidth="250.0" <ColumnConstraints hgrow="SOMETIMES" maxWidth="50.0" minWidth="50.0"
prefWidth="250.0"/> prefWidth="50.0"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308"/> <ColumnConstraints hgrow="SOMETIMES" maxWidth="135.0" minWidth="135.0"
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="400.0" prefWidth="135.0"/>
prefWidth="400.0"/> </columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
</rowConstraints>
<opaqueInsets>
<Insets/>
</opaqueInsets>
<GridPane.margin>
<Insets left="10.0" right="200.0" top="10.0"/>
</GridPane.margin>
<children>
<ImageView fitHeight="40.0" fitWidth="40.0" pickOnBounds="true"
preserveRatio="true" GridPane.halignment="CENTER"
GridPane.valignment="CENTER">
<image>
<Image url="@../images/timer.png"/>
</image>
<GridPane.margin>
<Insets/>
</GridPane.margin>
</ImageView>
<Label fx:id="timerLabel" text="00:03:34" GridPane.columnIndex="1"
GridPane.halignment="CENTER" GridPane.valignment="CENTER">
<font>
<Font size="21.0"/>
</font>
<GridPane.margin>
<Insets/>
</GridPane.margin>
</Label>
</children>
</GridPane>
<GridPane GridPane.columnIndex="2">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
</rowConstraints>
</GridPane>
<GridPane fx:id="chatGridPane" GridPane.columnIndex="2" GridPane.rowIndex="2">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="390.0" minWidth="390.0"
prefWidth="390.0"/>
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints maxHeight="70.0" minHeight="70.0" prefHeight="70.0"
vgrow="SOMETIMES"/>
<RowConstraints maxHeight="1.7976931348623157E308" vgrow="SOMETIMES"/> <RowConstraints maxHeight="1.7976931348623157E308" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="250.0" minHeight="250.0" prefHeight="250.0" <RowConstraints maxHeight="60.0" minHeight="60.0" prefHeight="60.0"
valignment="BOTTOM" vgrow="SOMETIMES"/> vgrow="SOMETIMES"/>
</rowConstraints> </rowConstraints>
<children> <children>
<GridPane id="timerGrid" fx:id="timerGrid" prefWidth="192.0" styleClass="timer"> <Pane fx:id="chatHistoryHolder" prefHeight="200.0" prefWidth="200.0"
<columnConstraints> GridPane.hgrow="ALWAYS" GridPane.valignment="BOTTOM"
<ColumnConstraints hgrow="SOMETIMES" maxWidth="50.0" minWidth="50.0" GridPane.vgrow="ALWAYS">
prefWidth="50.0"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="135.0" minWidth="135.0"
prefWidth="135.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
</rowConstraints>
<opaqueInsets>
<Insets/>
</opaqueInsets>
<GridPane.margin> <GridPane.margin>
<Insets left="10.0" right="200.0" top="10.0"/> <Insets/>
</GridPane.margin> </GridPane.margin>
<children> <padding>
<ImageView fitHeight="40.0" fitWidth="40.0" pickOnBounds="true" <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
preserveRatio="true" GridPane.halignment="CENTER" </padding>
GridPane.valignment="CENTER"> </Pane>
<image> <GridPane fx:id="chatInputHolder" GridPane.rowIndex="1">
<Image url="@../images/timer.png"/>
</image>
<GridPane.margin>
<Insets/>
</GridPane.margin>
</ImageView>
<Label fx:id="timerLabel" text="00:03:34" GridPane.columnIndex="1"
GridPane.halignment="CENTER" GridPane.valignment="CENTER">
<font>
<Font size="21.0"/>
</font>
<GridPane.margin>
<Insets/>
</GridPane.margin>
</Label>
</children>
</GridPane>
<GridPane GridPane.columnIndex="2">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/> prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity"
minWidth="90.0" prefWidth="90.0"/>
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/> <RowConstraints maxHeight="50.0" minHeight="50.0" prefHeight="50.0"
</rowConstraints> valignment="CENTER" vgrow="SOMETIMES"/>
</GridPane>
<GridPane fx:id="chatGridPane" GridPane.columnIndex="2" GridPane.rowIndex="2">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="390.0" minWidth="390.0"
prefWidth="390.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="1.7976931348623157E308" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="60.0" minHeight="60.0" prefHeight="60.0"
vgrow="SOMETIMES"/>
</rowConstraints> </rowConstraints>
<children> <children>
<Pane fx:id="chatHistoryHolder" prefHeight="200.0" prefWidth="200.0" <JFXButton fx:id="chatSend" alignment="CENTER" buttonType="RAISED"
GridPane.hgrow="ALWAYS" GridPane.valignment="BOTTOM" focusTraversable="false" maxHeight="-Infinity"
GridPane.vgrow="ALWAYS"> maxWidth="1.7976931348623157E308" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="35.0" text="SEND"
GridPane.columnIndex="1">
<GridPane.margin> <GridPane.margin>
<Insets/>
</GridPane.margin>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/> <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
</padding>
</Pane>
<GridPane fx:id="chatInputHolder" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity"
minWidth="90.0" prefWidth="90.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.0" minHeight="50.0" prefHeight="50.0"
valignment="CENTER" vgrow="SOMETIMES"/>
</rowConstraints>
<children>
<JFXButton fx:id="chatSend" alignment="CENTER" buttonType="RAISED"
focusTraversable="false" maxHeight="-Infinity"
maxWidth="1.7976931348623157E308" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="35.0" text="SEND"
GridPane.columnIndex="1">
<GridPane.margin>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
</GridPane.margin>
</JFXButton>
<JFXTextField fx:id="chatInput" focusTraversable="false"
maxHeight="35.0" minHeight="-Infinity" prefHeight="35.0">
<GridPane.margin>
<Insets bottom="10.0" left="20.0" right="10.0"/>
</GridPane.margin>
<padding>
<Insets right="15.0"/>
</padding>
</JFXTextField>
</children>
<GridPane.margin>
<Insets top="10.0"/>
</GridPane.margin> </GridPane.margin>
</GridPane> </JFXButton>
<JFXTextField fx:id="chatInput" focusTraversable="false"
maxHeight="35.0" minHeight="-Infinity" prefHeight="35.0">
<GridPane.margin>
<Insets bottom="10.0" left="20.0" right="10.0"/>
</GridPane.margin>
<padding>
<Insets right="15.0"/>
</padding>
</JFXTextField>
</children> </children>
<GridPane.margin> <GridPane.margin>
<Insets bottom="10.0" right="10.0"/> <Insets top="10.0"/>
</GridPane.margin> </GridPane.margin>
</GridPane> </GridPane>
<GridPane fx:id="windGridPane" maxHeight="-Infinity" maxWidth="-Infinity" </children>
prefHeight="150.0" prefWidth="240.0" GridPane.halignment="CENTER" <GridPane.margin>
GridPane.rowIndex="2" GridPane.valignment="BOTTOM"> <Insets bottom="10.0" right="10.0"/>
<columnConstraints> </GridPane.margin>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="110.0" minWidth="110.0" </GridPane>
prefWidth="110.0"/> <GridPane fx:id="windGridPane" maxHeight="-Infinity" maxWidth="-Infinity"
<ColumnConstraints hgrow="SOMETIMES" maxWidth="132.0" minWidth="10.0" prefHeight="150.0" prefWidth="240.0" GridPane.halignment="CENTER"
prefWidth="132.0"/> GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
</columnConstraints> <columnConstraints>
<rowConstraints> <ColumnConstraints hgrow="SOMETIMES" maxWidth="110.0" minWidth="110.0"
<RowConstraints maxHeight="120.0" minHeight="120.0" prefHeight="120.0" prefWidth="110.0"/>
vgrow="SOMETIMES"/> <ColumnConstraints hgrow="SOMETIMES" maxWidth="132.0" minWidth="10.0"
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" prefWidth="132.0"/>
vgrow="SOMETIMES"/> </columnConstraints>
</rowConstraints> <rowConstraints>
<children> <RowConstraints maxHeight="120.0" minHeight="120.0" prefHeight="120.0"
<Label fx:id="positionLabel" text="Position:" GridPane.columnIndex="1" vgrow="SOMETIMES"/>
GridPane.halignment="LEFT" GridPane.rowSpan="2" GridPane.valignment="TOP"> <RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0"
<padding> vgrow="SOMETIMES"/>
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/> </rowConstraints>
</padding> <children>
</Label> <Label fx:id="positionLabel" text="Position:" GridPane.columnIndex="1"
<Label fx:id="boatSpeedLabel" text="Boat Speed:" GridPane.columnIndex="1" GridPane.halignment="LEFT" GridPane.rowSpan="2" GridPane.valignment="TOP">
GridPane.halignment="LEFT" GridPane.rowSpan="2" <padding>
GridPane.valignment="CENTER"> <Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
<opaqueInsets> </padding>
<Insets/> </Label>
</opaqueInsets> <Label fx:id="boatSpeedLabel" text="Boat Speed:" GridPane.columnIndex="1"
<padding> GridPane.halignment="LEFT" GridPane.rowSpan="2"
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/> GridPane.valignment="CENTER">
</padding>
</Label>
<Label fx:id="boatHeadingLabel" text="Boat Heading:"
GridPane.columnIndex="1" GridPane.halignment="LEFT" GridPane.rowSpan="2"
GridPane.valignment="BOTTOM">
<padding>
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
</padding>
</Label>
<GridPane fx:id="windHolder" GridPane.rowSpan="2">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
prefWidth="100.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="120.0" minHeight="120.0"
prefHeight="120.0" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0"
vgrow="SOMETIMES"/>
</rowConstraints>
<children>
<ImageView fx:id="windImageView" fitHeight="92.0" fitWidth="109.0"
pickOnBounds="true" preserveRatio="true"
GridPane.halignment="CENTER" GridPane.rowSpan="2"
GridPane.valignment="CENTER"/>
<Label fx:id="windSpeedLabel" text="0.0 Knots"
GridPane.halignment="RIGHT" GridPane.rowIndex="1"
GridPane.valignment="CENTER">
<GridPane.margin>
<Insets right="5.0"/>
</GridPane.margin>
</Label>
<Label fx:id="windDirectionLabel" text="180.0°"
GridPane.halignment="LEFT" GridPane.rowIndex="1"
GridPane.valignment="CENTER">
<GridPane.margin>
<Insets left="5.0"/>
</GridPane.margin>
</Label>
</children>
</GridPane>
</children>
<opaqueInsets> <opaqueInsets>
<Insets/> <Insets/>
</opaqueInsets> </opaqueInsets>
<GridPane.margin> <padding>
<Insets bottom="10.0" left="10.0" top="40.0"/> <Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
</GridPane.margin> </padding>
</GridPane> </Label>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="2"> <Label fx:id="boatHeadingLabel" text="Boat Heading:"
GridPane.columnIndex="1" GridPane.halignment="LEFT" GridPane.rowSpan="2"
GridPane.valignment="BOTTOM">
<padding>
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
</padding>
</Label>
<GridPane fx:id="windHolder" GridPane.rowSpan="2">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/> prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints maxHeight="152.0" minHeight="10.0" prefHeight="152.0" <RowConstraints maxHeight="120.0" minHeight="120.0"
vgrow="SOMETIMES"/> prefHeight="120.0" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="118.0" minHeight="10.0" prefHeight="98.0" <RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0"
vgrow="SOMETIMES"/> vgrow="SOMETIMES"/>
</rowConstraints> </rowConstraints>
<children> <children>
<ImageView fx:id="velocityIcon" fitHeight="88.0" fitWidth="106.0" <ImageView fx:id="windImageView" fitHeight="92.0" fitWidth="109.0"
pickOnBounds="true" preserveRatio="true" visible="false" pickOnBounds="true" preserveRatio="true"
GridPane.halignment="CENTER" GridPane.rowIndex="1"> GridPane.halignment="CENTER" GridPane.rowSpan="2"
<image> GridPane.valignment="CENTER"/>
<Image url="@../icons/velocity.png"/> <Label fx:id="windSpeedLabel" text="0.0 Knots"
</image> GridPane.halignment="RIGHT" GridPane.rowIndex="1"
</ImageView> GridPane.valignment="CENTER">
<ImageView fx:id="handlingIcon" fitHeight="87.0" fitWidth="98.0" <GridPane.margin>
pickOnBounds="true" preserveRatio="true" visible="false" <Insets right="5.0"/>
GridPane.columnIndex="1" GridPane.halignment="CENTER" </GridPane.margin>
GridPane.rowIndex="1"> </Label>
<image> <Label fx:id="windDirectionLabel" text="180.0°"
<Image url="@../icons/handlingIcon.png"/> GridPane.halignment="LEFT" GridPane.rowIndex="1"
</image> GridPane.valignment="CENTER">
</ImageView> <GridPane.margin>
<ImageView fx:id="windWalkerIcon" fitHeight="83.0" fitWidth="100.0" <Insets left="5.0"/>
pickOnBounds="true" preserveRatio="true" visible="false" </GridPane.margin>
GridPane.columnIndex="2" GridPane.halignment="CENTER" </Label>
GridPane.rowIndex="1">
<image>
<Image url="@../icons/windWalkerIcon.png"/>
</image>
</ImageView>
<ImageView fx:id="bumperIcon" fitHeight="83.0" fitWidth="88.0"
pickOnBounds="true" preserveRatio="true" visible="false"
GridPane.columnIndex="3" GridPane.halignment="CENTER"
GridPane.rowIndex="1">
<image>
<Image url="@../icons/bumperIcon.png"/>
</image>
</ImageView>
<ImageView fx:id="badRandomIcon" fitHeight="69.0" fitWidth="103.0"
pickOnBounds="true" preserveRatio="true" visible="false"
GridPane.columnIndex="4" GridPane.halignment="CENTER"
GridPane.rowIndex="1" GridPane.valignment="CENTER">
<image>
<Image url="@../icons/slowedIcon.png"/>
</image>
</ImageView>
</children> </children>
</GridPane> </GridPane>
</children> </children>
<opaqueInsets>
<Insets/>
</opaqueInsets>
<GridPane.margin>
<Insets bottom="10.0" left="10.0" top="40.0"/>
</GridPane.margin>
</GridPane>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="2">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="152.0" minHeight="10.0" prefHeight="152.0"
vgrow="SOMETIMES"/>
<RowConstraints maxHeight="118.0" minHeight="10.0" prefHeight="98.0"
vgrow="SOMETIMES"/>
</rowConstraints>
<children>
<ImageView fx:id="velocityIcon" fitHeight="88.0" fitWidth="106.0"
pickOnBounds="true" preserveRatio="true" visible="false"
GridPane.halignment="CENTER" GridPane.rowIndex="1">
<image>
<Image url="@../icons/velocity.png"/>
</image>
</ImageView>
<ImageView fx:id="handlingIcon" fitHeight="87.0" fitWidth="98.0"
pickOnBounds="true" preserveRatio="true" visible="false"
GridPane.columnIndex="1" GridPane.halignment="CENTER"
GridPane.rowIndex="1">
<image>
<Image url="@../icons/handlingIcon.png"/>
</image>
</ImageView>
<ImageView fx:id="windWalkerIcon" fitHeight="83.0" fitWidth="100.0"
pickOnBounds="true" preserveRatio="true" visible="false"
GridPane.columnIndex="2" GridPane.halignment="CENTER"
GridPane.rowIndex="1">
<image>
<Image url="@../icons/windWalkerIcon.png"/>
</image>
</ImageView>
<ImageView fx:id="bumperIcon" fitHeight="83.0" fitWidth="88.0"
pickOnBounds="true" preserveRatio="true" visible="false"
GridPane.columnIndex="3" GridPane.halignment="CENTER"
GridPane.rowIndex="1">
<image>
<Image url="@../icons/bumperIcon.png"/>
</image>
</ImageView>
<ImageView fx:id="badRandomIcon" fitHeight="69.0" fitWidth="103.0"
pickOnBounds="true" preserveRatio="true" visible="false"
GridPane.columnIndex="4" GridPane.halignment="CENTER"
GridPane.rowIndex="1" GridPane.valignment="CENTER">
<image>
<Image url="@../icons/slowedIcon.png"/>
</image>
</ImageView>
</children>
</GridPane> </GridPane>
</children> </children>
</StackPane> </GridPane>
<AnchorPane fx:id="loadingScreenPane"> </children>
</StackPane>
</children>
<AnchorPane fx:id="loadingScreenPane">
<children>
<ImageView fx:id="loadingScreen" fitHeight="672.0" fitWidth="1200.0" pickOnBounds="true" preserveRatio="true" /> <ImageView fx:id="loadingScreen" fitHeight="672.0" fitWidth="1200.0" pickOnBounds="true" preserveRatio="true" />
<JFXSpinner layoutX="566.0" layoutY="692.0" radius="30.0" /> <JFXSpinner layoutX="566.0" layoutY="692.0" radius="30.0" />
</AnchorPane>
</children> </children>
</AnchorPane>
<stylesheets> <stylesheets>
<String fx:value="/css/Master.css"/> <String fx:value="/css/Master.css"/>
<String fx:value="/css/RaceView.css"/> <String fx:value="/css/RaceView.css"/>
@@ -5,18 +5,16 @@
<?import com.jfoenix.controls.JFXDialogLayout?> <?import com.jfoenix.controls.JFXDialogLayout?>
<?import com.jfoenix.controls.JFXSlider?> <?import com.jfoenix.controls.JFXSlider?>
<?import com.jfoenix.controls.JFXTextField?> <?import com.jfoenix.controls.JFXTextField?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?> <?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?> <?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?> <?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?> <?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?> <?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<JFXDialogLayout maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="600.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/8" <JFXDialogLayout maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.visualiser.controllers.dialogs.ServerCreationController">
xmlns:fx="http://javafx.com/fxml/1"
fx:controller="seng302.visualiser.controllers.dialogs.ServerCreationController">
<children> <children>
<GridPane> <GridPane>
<children> <children>
@@ -38,14 +36,9 @@
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints maxHeight="-Infinity" minHeight="90.0" prefHeight="90.0" <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
vgrow="SOMETIMES"/> <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="90.0" prefHeight="90.0" <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
vgrow="SOMETIMES"/>
<RowConstraints maxHeight="-Infinity" minHeight="90.0" prefHeight="90.0"
vgrow="SOMETIMES"/>
<RowConstraints maxHeight="-Infinity" minHeight="90.0" prefHeight="90.0"
vgrow="SOMETIMES"/>
</rowConstraints> </rowConstraints>
<children> <children>
<JFXTextField fx:id="serverName" promptText="SERVER NAME"> <JFXTextField fx:id="serverName" promptText="SERVER NAME">
@@ -53,33 +46,29 @@
<Insets left="15.0" right="15.0" /> <Insets left="15.0" right="15.0" />
</padding> </padding>
<GridPane.margin> <GridPane.margin>
<Insets left="20.0" right="35.0"/> <Insets left="35.0" right="35.0" />
</GridPane.margin> </GridPane.margin>
</JFXTextField> </JFXTextField>
<GridPane fx:id="maxPlayersGridPane" GridPane.rowIndex="1"> <GridPane fx:id="maxPlayersGridPane" GridPane.rowIndex="1">
<children> <children>
<Label styleClass="optionLabel" text="MAX PLAYERS" translateY="5.0" <Label fx:id="maxPlayersLabel" text="20" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
GridPane.halignment="CENTER" GridPane.valignment="BOTTOM">
<GridPane.margin> <GridPane.margin>
<Insets/> <Insets right="30.0" />
</GridPane.margin> </GridPane.margin>
</Label> </Label>
<JFXSlider fx:id="maxPlayersSlider" blockIncrement="1.0" <Label fx:id="maxPlayerPromptLabel" text="MAX PLAYERS" GridPane.halignment="LEFT" GridPane.valignment="BOTTOM">
majorTickUnit="2.0" max="20.0" min="1.0" minorTickCount="1"
snapToTicks="true" styleClass="maxPlayers" value="11.0"
GridPane.columnIndex="1" GridPane.valignment="BOTTOM">
<GridPane.margin> <GridPane.margin>
<Insets right="30.0"/> <Insets left="30.0" top="20.0" />
</GridPane.margin> </GridPane.margin>
</JFXSlider> </Label>
<Label fx:id="maxPlayersLabel" alignment="CENTER" <VBox alignment="BOTTOM_CENTER" prefHeight="200.0" prefWidth="100.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
styleClass="sliderLabel" text="10" GridPane.columnIndex="1" <children>
GridPane.halignment="CENTER" GridPane.rowIndex="1" <JFXSlider fx:id="maxPlayersSlider" blockIncrement="1.0" majorTickUnit="2.0" max="20.0" min="1.0" minorTickCount="1" snapToTicks="true" styleClass="maxPlayers" value="11.0" />
GridPane.valignment="CENTER"> </children>
<GridPane.margin> <GridPane.margin>
<Insets right="15.0"/> <Insets bottom="10.0" right="30.0" />
</GridPane.margin> </GridPane.margin>
</Label> </VBox>
</children> </children>
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="30.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="30.0" prefWidth="100.0" />
@@ -92,68 +81,48 @@
</GridPane> </GridPane>
<GridPane fx:id="maxPlayersGridPane1" GridPane.rowIndex="2"> <GridPane fx:id="maxPlayersGridPane1" GridPane.rowIndex="2">
<children> <children>
<Label fx:id="legsSliderLabel" text="20" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
<GridPane.margin>
<Insets right="30.0" />
</GridPane.margin>
</Label>
<VBox alignment="BOTTOM_CENTER" prefHeight="200.0" prefWidth="100.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
<children>
<JFXSlider fx:id="legsSlider" blockIncrement="1.0" majorTickUnit="2.0" max="20.0" min="1.0" minorTickCount="1" snapToTicks="true" styleClass="maxPlayers" value="11.0" />
</children>
<GridPane.margin>
<Insets bottom="10.0" right="30.0" />
</GridPane.margin>
</VBox>
<GridPane> <GridPane>
<children> <children>
<Label alignment="CENTER" styleClass="optionLabel" <Label alignment="CENTER" text="NUMBER OF" GridPane.halignment="CENTER" />
text="NUMBER OF" GridPane.halignment="CENTER" <Label alignment="CENTER" text="REPEATING LEGS" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
GridPane.valignment="BOTTOM"/>
</children> </children>
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
</GridPane> </GridPane>
<JFXSlider fx:id="legsSlider" blockIncrement="1.0" <JFXCheckBox fx:id="pickupsCheckBox" text="Enable Pickups" GridPane.rowIndex="1">
majorTickUnit="2.0" max="20.0" min="1.0" minorTickCount="1"
snapToTicks="true" styleClass="maxPlayers" value="11.0"
GridPane.columnIndex="1" GridPane.halignment="CENTER"
GridPane.valignment="BOTTOM">
<GridPane.margin> <GridPane.margin>
<Insets right="30.0"/> <Insets left="5.0" />
</GridPane.margin> </GridPane.margin>
</JFXSlider> </JFXCheckBox>
<Label alignment="CENTER" styleClass="optionLabel"
text="REPEATING LEGS" GridPane.halignment="CENTER"
GridPane.rowIndex="1"/>
<Label fx:id="legsSliderLabel" styleClass="sliderLabel" text="10"
GridPane.columnIndex="1" GridPane.rowIndex="1">
<GridPane.margin>
<Insets right="15.0"/>
</GridPane.margin>
</Label>
</children> </children>
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="30.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="30.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" <ColumnConstraints hgrow="SOMETIMES" minWidth="100.0" prefWidth="100.0" />
minWidth="100.0" prefWidth="100.0"/>
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints maxHeight="-Infinity" minHeight="10.0" <RowConstraints minHeight="10.0" percentHeight="60.0" prefHeight="10.0" vgrow="SOMETIMES" />
percentHeight="60.0" prefHeight="100.0" vgrow="SOMETIMES"/> <RowConstraints minHeight="10.0" percentHeight="40.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="10.0"
percentHeight="40.0" prefHeight="100.0" vgrow="SOMETIMES"/>
</rowConstraints> </rowConstraints>
</GridPane> </GridPane>
<GridPane GridPane.rowIndex="3">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
percentWidth="30.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
prefWidth="100.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0"
vgrow="SOMETIMES"/>
</rowConstraints>
<children>
<JFXCheckBox fx:id="pickupsCheckBox" text=" "
GridPane.columnIndex="1"/>
<Label styleClass="optionLabel" text="ENABLE TOKENS"
GridPane.halignment="CENTER" GridPane.valignment="CENTER"/>
</children>
</GridPane>
</children> </children>
</GridPane> </GridPane>
<GridPane GridPane.columnIndex="1"> <GridPane GridPane.columnIndex="1">
@@ -183,8 +152,7 @@
<RowConstraints maxHeight="342.0" minHeight="10.0" prefHeight="336.0" vgrow="SOMETIMES" /> <RowConstraints maxHeight="342.0" minHeight="10.0" prefHeight="336.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<children> <children>
<Label fx:id="mapNameLabel" styleClass="optionLabel" text="MAP NAME" <Label fx:id="mapNameLabel" text="MAP NAME" GridPane.halignment="CENTER" />
GridPane.halignment="CENTER"/>
<AnchorPane fx:id="mapHolder" prefHeight="333.0" prefWidth="404.0" GridPane.rowIndex="1" /> <AnchorPane fx:id="mapHolder" prefHeight="333.0" prefWidth="404.0" GridPane.rowIndex="1" />
</children> </children>
</GridPane> </GridPane>
@@ -196,8 +164,6 @@
<font> <font>
<Font size="20.0" /> <Font size="20.0" />
</font></Label> </font></Label>
<Label fx:id="closeLabel" text="✖" translateY="-10.0" GridPane.halignment="RIGHT"
GridPane.valignment="TOP"/>
</children> </children>
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
@@ -209,8 +175,4 @@
</rowConstraints> </rowConstraints>
</GridPane> </GridPane>
</children> </children>
<stylesheets>
<URL value="@../../css/Master.css"/>
<URL value="@../../css/dialogs/ServerCreation.css"/>
</stylesheets>
</JFXDialogLayout> </JFXDialogLayout>