Added token information to the lobby screen.

#implement #story[1293]
This commit is contained in:
Calum
2017-09-28 05:09:54 +13:00
parent ba768deabc
commit b9cb6fa5b4
3 changed files with 138 additions and 82 deletions
@@ -2,8 +2,13 @@ package seng302.visualiser.controllers;
import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog; import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXTextArea; import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.collections.ListChangeListener; import javafx.collections.ListChangeListener;
import javafx.fxml.FXML; import javafx.fxml.FXML;
@@ -35,13 +40,6 @@ import seng302.utilities.Sounds;
import seng302.visualiser.MapPreview; import seng302.visualiser.MapPreview;
import seng302.visualiser.controllers.cells.PlayerCell; import seng302.visualiser.controllers.cells.PlayerCell;
import seng302.visualiser.controllers.dialogs.BoatCustomizeController; import seng302.visualiser.controllers.dialogs.BoatCustomizeController;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import seng302.visualiser.fxObjects.assets_3D.ModelFactory; import seng302.visualiser.fxObjects.assets_3D.ModelFactory;
import seng302.visualiser.fxObjects.assets_3D.ModelType; import seng302.visualiser.fxObjects.assets_3D.ModelType;
@@ -140,7 +138,6 @@ public class LobbyController implements Initializable {
beginRaceButton.setOnMouseEntered(e -> Sounds.playHoverSound()); beginRaceButton.setOnMouseEntered(e -> Sounds.playHoverSound());
initMapPreview(); initMapPreview();
initTokenPreviews(); initTokenPreviews();
} }
@@ -155,8 +152,8 @@ public class LobbyController implements Initializable {
tokensPreviews.forEach((tokenPreview) -> { tokensPreviews.forEach((tokenPreview) -> {
tokenPreview.getTransforms().addAll( tokenPreview.getTransforms().addAll(
new Translate(30, 30, 0), new Translate(40, 50, 0),
new Scale(15, 15, 15)); new Scale(13, 13, 13));
}); });
//Hacky rotations for wind and random to level it in the plane //Hacky rotations for wind and random to level it in the plane
+116 -58
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.*?>
<?import com.jfoenix.controls.*?> <?import com.jfoenix.controls.*?>
<?import java.lang.*?> <?import java.lang.*?>
<?import javafx.geometry.*?> <?import javafx.geometry.*?>
@@ -19,10 +20,7 @@
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<StackPane fx:id="serverListMainStackPane" maxHeight="1.7976931348623157E308" <StackPane fx:id="serverListMainStackPane" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.visualiser.controllers.LobbyController">
maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="seng302.visualiser.controllers.LobbyController">
<children> <children>
<GridPane fx:id="serverListMainGridPane" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308"> <GridPane fx:id="serverListMainGridPane" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308">
<children> <children>
@@ -81,87 +79,147 @@
</GridPane> </GridPane>
<GridPane GridPane.rowIndex="1"> <GridPane GridPane.rowIndex="1">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/> <ColumnConstraints hgrow="SOMETIMES" maxWidth="222.0" minWidth="222.0" prefWidth="222.0" />
<ColumnConstraints hgrow="SOMETIMES" /> <ColumnConstraints hgrow="SOMETIMES" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="400.0" minWidth="400.0" prefWidth="400.0" /> <ColumnConstraints hgrow="SOMETIMES" maxWidth="350.0" minWidth="350.0" prefWidth="350.0" />
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints vgrow="SOMETIMES" /> <RowConstraints vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<children> <children>
<ScrollPane fx:id="playerListScrollPane" hbarPolicy="NEVER" <ScrollPane fx:id="playerListScrollPane" hbarPolicy="NEVER" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
GridPane.columnIndex="2" GridPane.halignment="CENTER"
GridPane.valignment="CENTER">
<content> <content>
<VBox fx:id="playerListVBox" alignment="TOP_RIGHT" <VBox fx:id="playerListVBox" alignment="TOP_RIGHT" maxWidth="328.0" minWidth="328.0" prefWidth="328.0" />
prefHeight="200.0" prefWidth="100.0"/>
</content> </content>
<GridPane.margin> <GridPane.margin>
<Insets bottom="15.0" left="7.0" right="15.0" top="15.0" /> <Insets bottom="15.0" left="7.0" right="15.0" top="15.0" />
</GridPane.margin> </GridPane.margin>
<padding>
<Insets right="5.0" />
</padding>
</ScrollPane> </ScrollPane>
<AnchorPane fx:id="serverMap" style="-fx-background-color: skyblue;" <AnchorPane fx:id="serverMap" style="-fx-background-color: skyblue;" GridPane.columnIndex="1">
GridPane.columnIndex="1">
<opaqueInsets> <opaqueInsets>
<Insets /> <Insets />
</opaqueInsets> </opaqueInsets>
<GridPane.margin> <GridPane.margin>
<Insets bottom="15.0" left="15.0" right="7.0" top="15.0" /> <Insets bottom="15.0" left="7.0" right="7.0" top="15.0" />
</GridPane.margin> </GridPane.margin>
</AnchorPane> </AnchorPane>
<AnchorPane> <AnchorPane maxWidth="200.0" minWidth="200.0" prefHeight="370.0" prefWidth="200.0">
<GridPane.margin> <GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0"/> <Insets />
</GridPane.margin> </GridPane.margin>
<children> <children>
<GridPane prefHeight="370.0" prefWidth="259.0" <GridPane prefHeight="370.0" prefWidth="189.0" style="-fx-border-color: black; -fx-grid-lines-visible: true;" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="309.0" AnchorPane.topAnchor="0.0">
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="123.0" <ColumnConstraints hgrow="SOMETIMES" maxWidth="80.0" minWidth="80.0" prefWidth="80.0" />
minWidth="-Infinity" prefWidth="60.0"/> <ColumnConstraints hgrow="SOMETIMES" maxWidth="110.0" minWidth="110.0" prefWidth="110.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="175.0"
minWidth="-Infinity" prefWidth="170.0"/>
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints maxHeight="116.0" minHeight="0.0" <RowConstraints maxHeight="116.0" minHeight="0.0" prefHeight="40.0" vgrow="NEVER" />
prefHeight="40.0" vgrow="NEVER"/> <RowConstraints maxHeight="285.0" minHeight="-Infinity" prefHeight="60.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="285.0" minHeight="-Infinity" <RowConstraints maxHeight="285.0" minHeight="-Infinity" prefHeight="60.0" vgrow="SOMETIMES" />
prefHeight="60.0" vgrow="SOMETIMES"/> <RowConstraints maxHeight="141.0" minHeight="-Infinity" prefHeight="60.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="285.0" minHeight="-Infinity" <RowConstraints maxHeight="285.0" minHeight="-Infinity" prefHeight="60.0" vgrow="SOMETIMES" />
prefHeight="60.0" vgrow="SOMETIMES"/> <RowConstraints maxHeight="285.0" minHeight="-Infinity" prefHeight="60.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="141.0" minHeight="-Infinity"
prefHeight="60.0" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="285.0" minHeight="-Infinity"
prefHeight="60.0" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="285.0" minHeight="-Infinity"
prefHeight="60.0" vgrow="SOMETIMES"/>
</rowConstraints> </rowConstraints>
<children> <children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Tokens" <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Token" GridPane.halignment="CENTER">
GridPane.columnSpan="2147483647" <font>
GridPane.halignment="CENTER"/> <Font name="System Bold" size="18.0" />
<Pane fx:id="speedTokenPane" prefHeight="200.0" </font></Text>
prefWidth="200.0" GridPane.rowIndex="1"/> <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Ability" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
<Pane fx:id="handlingTokenPane" prefHeight="200.0" <font>
prefWidth="200.0" GridPane.rowIndex="2"/> <Font name="System Bold" size="18.0" />
<Pane fx:id="windWalkerTokenPane" prefHeight="200.0" </font>
prefWidth="200.0" GridPane.rowIndex="3"/> </Text>
<Pane fx:id="randomTokenPane" prefHeight="200.0" <StackPane prefHeight="150.0" prefWidth="200.0" GridPane.rowIndex="1">
prefWidth="200.0" GridPane.rowIndex="5"/> <children>
<Pane fx:id="bumperTokenPane" prefHeight="200.0" <Label alignment="BOTTOM_CENTER" text="Speed" StackPane.alignment="BOTTOM_CENTER">
prefWidth="200.0" GridPane.rowIndex="4"/> <font>
<Label text="Speed" GridPane.columnIndex="1" <Font size="12.0" />
GridPane.rowIndex="1"/> </font>
<Label text="Handling" GridPane.columnIndex="1" <padding>
GridPane.rowIndex="2"/> <Insets bottom="5.0" />
<Label text="Wind Walker" GridPane.columnIndex="1" </padding>
GridPane.rowIndex="3"/> </Label>
<Label text="Bumper" GridPane.columnIndex="1" <Pane fx:id="speedTokenPane" prefHeight="999.0" prefWidth="200.0" />
GridPane.rowIndex="4"/>
<Label text="Random" GridPane.columnIndex="1"
GridPane.rowIndex="5"/>
</children> </children>
</StackPane>
<StackPane prefHeight="150.0" prefWidth="200.0" GridPane.rowIndex="2">
<children>
<Label alignment="BOTTOM_CENTER" text="Handling" StackPane.alignment="BOTTOM_CENTER">
<font>
<Font size="12.0" />
</font>
<padding>
<Insets bottom="5.0" />
</padding>
</Label>
<Pane fx:id="handlingTokenPane" prefHeight="999.0" prefWidth="200.0" />
</children>
</StackPane>
<StackPane prefHeight="150.0" prefWidth="200.0" GridPane.rowIndex="3">
<children>
<Label alignment="BOTTOM_CENTER" text="Wind Walker" StackPane.alignment="BOTTOM_CENTER">
<font>
<Font size="12.0" />
</font>
<padding>
<Insets bottom="5.0" />
</padding>
</Label>
<Pane fx:id="windWalkerTokenPane" prefHeight="999.0" prefWidth="200.0" />
</children>
</StackPane>
<StackPane prefHeight="150.0" prefWidth="200.0" GridPane.rowIndex="4">
<children>
<Label alignment="BOTTOM_CENTER" text="Bumper" StackPane.alignment="BOTTOM_CENTER">
<font>
<Font size="12.0" />
</font>
<padding>
<Insets bottom="5.0" />
</padding>
</Label>
<Pane fx:id="bumperTokenPane" prefHeight="999.0" prefWidth="200.0" />
</children>
</StackPane>
<StackPane prefHeight="150.0" prefWidth="200.0" GridPane.rowIndex="5">
<children>
<Label alignment="BOTTOM_CENTER" text="Random" StackPane.alignment="BOTTOM_CENTER">
<font>
<Font size="12.0" />
</font>
<padding>
<Insets bottom="5.0" />
</padding>
</Label>
<Pane fx:id="randomTokenPane" prefHeight="999.0" prefWidth="60.0" />
</children>
</StackPane>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Increases your speed and acceleration" textAlignment="CENTER" wrappingWidth="100.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Text>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Decreases your turning circle" textAlignment="CENTER" wrappingWidth="100.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="CENTER">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Text>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="The wind follows you at the optimal angle" textAlignment="CENTER" wrappingWidth="100.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Text>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Hitting another yacht will temporarily disable it" textAlignment="CENTER" wrappingWidth="100.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="4" GridPane.valignment="CENTER" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="50/50 chance for a random token or self slow" textAlignment="CENTER" wrappingWidth="100.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="5" GridPane.valignment="CENTER" />
</children>
<padding>
<Insets bottom="15.0" left="15.0" right="7.0" top="15.0" />
</padding>
</GridPane> </GridPane>
</children> </children>
</AnchorPane> </AnchorPane>
+14 -13
View File
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import java.lang.String?> <?import java.lang.String?>
<?import javafx.geometry.Insets?> <?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?> <?import javafx.scene.control.Label?>
@@ -8,33 +12,30 @@
<?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?> <?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<VBox fx:id="playerCellVBox" maxHeight="-Infinity" maxWidth="1.7976931348623157E308"
minHeight="-Infinity" minWidth="-Infinity" prefHeight="80.0" <VBox fx:id="playerCellVBox" maxHeight="-Infinity" maxWidth="340.0" minHeight="-Infinity" minWidth="340.0" prefHeight="80.0" prefWidth="340.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
<stylesheets> <stylesheets>
<String fx:value="/css/Master.css"/> <String fx:value="/css/Master.css" />
<String fx:value="/css/cells/PlayerCell.css"/> <String fx:value="/css/cells/PlayerCell.css" />
</stylesheets> </stylesheets>
<children> <children>
<GridPane fx:id="playerListCell" maxHeight="-Infinity" maxWidth="1.7976931348623157E308" <GridPane fx:id="playerListCell" maxHeight="-Infinity" maxWidth="1.7976931348623157E308" minHeight="-Infinity" prefHeight="70.0">
minHeight="-Infinity" prefHeight="70.0">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="80.0" minWidth="80.0" prefWidth="80.0"/> <ColumnConstraints hgrow="SOMETIMES" maxWidth="80.0" minWidth="80.0" prefWidth="80.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="290.0" minWidth="290.0" <ColumnConstraints hgrow="SOMETIMES" maxWidth="260.0" minWidth="260.0" prefWidth="260.0" />
prefWidth="290.0"/>
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints maxHeight="80.0" minHeight="80.0" prefHeight="80.0" vgrow="SOMETIMES"/> <RowConstraints maxHeight="80.0" minHeight="80.0" prefHeight="80.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<children> <children>
<Label fx:id="playerName" text="Party parrots in space" GridPane.columnIndex="1"> <Label fx:id="playerName" text="Party parrots in space" GridPane.columnIndex="1">
<padding> <padding>
<Insets left="20.0" /> <Insets left="20.0" />
</padding></Label> </padding></Label>
<Pane fx:id="boatPane" prefHeight="200.0" prefWidth="200.0"/> <Pane fx:id="boatPane" prefHeight="200.0" prefWidth="200.0" />
</children> </children>
<VBox.margin> <VBox.margin>
<Insets right="40.0"/> <Insets right="40.0" />
</VBox.margin> </VBox.margin>
</GridPane> </GridPane>
</children> </children>