parent
63e2cc1fd0
commit
4780354452
@ -0,0 +1,68 @@
|
|||||||
|
package visualiser.layout;
|
||||||
|
|
||||||
|
import javafx.scene.shape.Shape3D;
|
||||||
|
import javafx.scene.transform.Rotate;
|
||||||
|
import javafx.scene.transform.Translate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper for controlling the position and heading of rendered 3D models.
|
||||||
|
*/
|
||||||
|
public class Subject3D {
|
||||||
|
/**
|
||||||
|
* Rendered mesh
|
||||||
|
*/
|
||||||
|
private Shape3D mesh;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Position translation updated by state listeners
|
||||||
|
*/
|
||||||
|
private Translate position;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Heading rotation updated by state listeners
|
||||||
|
*/
|
||||||
|
private Rotate heading;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor for view subject wrapper
|
||||||
|
* @param mesh to be rendered
|
||||||
|
*/
|
||||||
|
public Subject3D(Shape3D mesh) {
|
||||||
|
this.mesh = mesh;
|
||||||
|
this.position = new Translate();
|
||||||
|
this.heading = new Rotate(0, Rotate.Y_AXIS);
|
||||||
|
|
||||||
|
this.mesh.getTransforms().addAll(position, heading, new Rotate(90, Rotate.X_AXIS), new Rotate(180, Rotate.Y_AXIS));
|
||||||
|
this.position.xProperty().addListener(((observable, oldValue, newValue) -> System.out.println("Boat x: " + newValue)));
|
||||||
|
this.position.yProperty().addListener(((observable, oldValue, newValue) -> System.out.println("Boat y: " + newValue)));
|
||||||
|
this.position.zProperty().addListener(((observable, oldValue, newValue) -> System.out.println("Boat z: " + newValue)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Shape3D getMesh() {
|
||||||
|
return mesh;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Translate getPosition() {
|
||||||
|
return this.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setX(double x) {
|
||||||
|
position.setX(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setY(double y) {
|
||||||
|
position.setY(y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setZ(double z) {
|
||||||
|
position.setZ(z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getHeading() {
|
||||||
|
return heading.getAngle();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeading(double angle) {
|
||||||
|
heading.setAngle(angle);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,161 @@
|
|||||||
|
package visualiser.layout;
|
||||||
|
|
||||||
|
import javafx.collections.ListChangeListener;
|
||||||
|
import javafx.collections.ObservableList;
|
||||||
|
import javafx.geometry.Point3D;
|
||||||
|
import javafx.scene.Group;
|
||||||
|
import javafx.scene.PerspectiveCamera;
|
||||||
|
import javafx.scene.SubScene;
|
||||||
|
import javafx.scene.layout.Pane;
|
||||||
|
import javafx.scene.paint.Color;
|
||||||
|
import javafx.scene.shape.Shape3D;
|
||||||
|
import javafx.scene.transform.Rotate;
|
||||||
|
import javafx.scene.transform.Translate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Control for rendering 3D objects visible through a PerspectiveCamera. Implements Adapter Pattern to
|
||||||
|
* interface with camera, and allows clients to add shapes to the scene. All scenes contain sea plane and
|
||||||
|
* sky box, whose textures are set with special methods.
|
||||||
|
*/
|
||||||
|
public class View3D extends Pane {
|
||||||
|
/**
|
||||||
|
* Observable list of renderable items
|
||||||
|
*/
|
||||||
|
private ObservableList<Subject3D> items;
|
||||||
|
/**
|
||||||
|
* Rendering container for shapes
|
||||||
|
*/
|
||||||
|
private Group world;
|
||||||
|
/**
|
||||||
|
* Near limit of view frustum
|
||||||
|
*/
|
||||||
|
private double nearClip;
|
||||||
|
/**
|
||||||
|
* Far limit of view frustum
|
||||||
|
*/
|
||||||
|
private double farClip;
|
||||||
|
/**
|
||||||
|
* Camera origin
|
||||||
|
*/
|
||||||
|
private Translate pivot;
|
||||||
|
/**
|
||||||
|
* Distance of camera from pivot point
|
||||||
|
*/
|
||||||
|
private Translate distance;
|
||||||
|
/**
|
||||||
|
* Angle along ground between z-axis and camera
|
||||||
|
*/
|
||||||
|
private Rotate yaw;
|
||||||
|
/**
|
||||||
|
* Angle between ground plane and camera direction
|
||||||
|
*/
|
||||||
|
private Rotate pitch;
|
||||||
|
|
||||||
|
private PerspectiveCamera camera;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default constructor for View3D. Sets up Scene and PerspectiveCamera.
|
||||||
|
*/
|
||||||
|
public View3D() {
|
||||||
|
world = new Group();
|
||||||
|
|
||||||
|
SubScene scene = new SubScene(world, 300, 300);
|
||||||
|
scene.widthProperty().bind(this.widthProperty());
|
||||||
|
scene.heightProperty().bind(this.heightProperty());
|
||||||
|
scene.setFill(new Color(0.2, 0.6, 1, 1));
|
||||||
|
|
||||||
|
scene.setCamera(buildCamera());
|
||||||
|
|
||||||
|
this.getChildren().add(scene);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up camera view frustum and binds transformations
|
||||||
|
* @return perspective camera
|
||||||
|
*/
|
||||||
|
private PerspectiveCamera buildCamera() {
|
||||||
|
PerspectiveCamera camera = new PerspectiveCamera(true);
|
||||||
|
|
||||||
|
// Set up view frustum
|
||||||
|
nearClip = 0.1;
|
||||||
|
farClip = 3000.0;
|
||||||
|
camera.setNearClip(nearClip);
|
||||||
|
camera.setFarClip(farClip);
|
||||||
|
|
||||||
|
// Set up transformations
|
||||||
|
pivot = new Translate();
|
||||||
|
distance = new Translate();
|
||||||
|
yaw = new Rotate(0, Rotate.Y_AXIS);
|
||||||
|
pitch = new Rotate(0, Rotate.X_AXIS);
|
||||||
|
camera.getTransforms().addAll(pivot, yaw, pitch, distance);
|
||||||
|
centerCamera();
|
||||||
|
|
||||||
|
this.camera = camera;
|
||||||
|
return camera;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItems(ObservableList<Subject3D> items) {
|
||||||
|
this.items = items;
|
||||||
|
this.items.addListener((ListChangeListener<? super Subject3D>) c -> {
|
||||||
|
while(c.next()) {
|
||||||
|
if (c.wasRemoved() || c.wasAdded()) {
|
||||||
|
for (Subject3D shape : c.getRemoved()) world.getChildren().remove(shape.getMesh());
|
||||||
|
for (Subject3D shape : c.getAddedSubList()) world.getChildren().add(shape.getMesh());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNearClip(double nearClip) {
|
||||||
|
this.nearClip = nearClip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFarClip(double farClip) {
|
||||||
|
this.farClip = farClip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updatePivot(Translate pivot) {
|
||||||
|
this.pivot.setX(pivot.getX());
|
||||||
|
this.pivot.setY(pivot.getY());
|
||||||
|
this.pivot.setZ(pivot.getZ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updatePosition(double x, double y, double z) {
|
||||||
|
this.distance.setX(x);
|
||||||
|
this.distance.setY(y);
|
||||||
|
this.distance.setZ(z);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set distance of camera from pivot
|
||||||
|
* @param distance in units
|
||||||
|
*/
|
||||||
|
public void setDistance(double distance) {
|
||||||
|
this.distance.setZ(-distance);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set angle of camera from z-axis along ground
|
||||||
|
* @param yaw in degrees
|
||||||
|
*/
|
||||||
|
public void setYaw(double yaw) {
|
||||||
|
this.yaw.setAngle(yaw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set elevation of camera
|
||||||
|
* @param pitch in degrees
|
||||||
|
*/
|
||||||
|
public void setPitch(double pitch) {
|
||||||
|
this.pitch.setAngle(-pitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void centerCamera(){
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rotateCamera(double angle, double x, double y, double z){
|
||||||
|
camera.setRotationAxis(new Point3D(x, y, z));
|
||||||
|
camera.setRotate(-90);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,18 +0,0 @@
|
|||||||
package visualiser.model;
|
|
||||||
|
|
||||||
import com.interactivemesh.jfx.importer.Importer;
|
|
||||||
import javafx.scene.layout.Pane;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by fwy13 on 29/08/17.
|
|
||||||
*/
|
|
||||||
public class BoatDisplay3D extends Pane {
|
|
||||||
|
|
||||||
|
|
||||||
public BoatDisplay3D(String filePath){
|
|
||||||
super();
|
|
||||||
// Shape3D
|
|
||||||
// this.getChildren().add();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
package visualiser.model;
|
|
||||||
|
|
||||||
import javafx.animation.AnimationTimer;
|
|
||||||
import javafx.scene.Group;
|
|
||||||
import javafx.scene.PerspectiveCamera;
|
|
||||||
import javafx.scene.SubScene;
|
|
||||||
import javafx.scene.layout.Pane;
|
|
||||||
import javafx.scene.shape.Box;
|
|
||||||
import javafx.scene.shape.CullFace;
|
|
||||||
import javafx.scene.transform.Rotate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by connortaylorbrown on 30/08/17.
|
|
||||||
*/
|
|
||||||
public class View3D extends Pane {
|
|
||||||
SubScene scene;
|
|
||||||
PerspectiveCamera camera;
|
|
||||||
Box box;
|
|
||||||
|
|
||||||
public View3D() {
|
|
||||||
scene = new SubScene(this, 500, 500);
|
|
||||||
camera = new PerspectiveCamera();
|
|
||||||
scene.setCamera(camera);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void spinBox() {
|
|
||||||
camera.getTransforms().add(new Rotate(-20, Rotate.X_AXIS));
|
|
||||||
|
|
||||||
box = new Box(50,50,50);
|
|
||||||
box.setTranslateX(100);
|
|
||||||
box.setTranslateY(100);
|
|
||||||
box.setCullFace(CullFace.BACK);
|
|
||||||
|
|
||||||
Rotate ry = new Rotate(0, 0,0,0, Rotate.Y_AXIS);
|
|
||||||
box.getTransforms().add(ry);
|
|
||||||
|
|
||||||
this.getChildren().add(camera);
|
|
||||||
this.getChildren().add(box);
|
|
||||||
|
|
||||||
AnimationTimer rotation = new AnimationTimer() {
|
|
||||||
@Override
|
|
||||||
public void handle(long now) {
|
|
||||||
ry.setAngle(ry.getAngle() + 0.1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
rotation.start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,98 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import javafx.geometry.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.image.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<?import javafx.scene.text.*?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.SplitPane?>
|
||||||
|
<?import javafx.scene.control.TableColumn?>
|
||||||
|
<?import javafx.scene.control.TableView?>
|
||||||
|
<?import javafx.scene.image.Image?>
|
||||||
|
<?import javafx.scene.image.ImageView?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
|
<?import javafx.scene.layout.GridPane?>
|
||||||
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
|
<AnchorPane fx:id="gameLobbyWrapper" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="780.0" visible="false" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.InGameLobbyController">
|
||||||
|
<children>
|
||||||
|
<GridPane style="-fx-background-color: rgba(0, 0, 0, 0.5);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<Button mnemonicParsing="false" onAction="#menuBtnPressed" text="Quit" GridPane.rowIndex="2">
|
||||||
|
<GridPane.margin>
|
||||||
|
<Insets left="20.0" />
|
||||||
|
</GridPane.margin>
|
||||||
|
</Button>
|
||||||
|
<Label fx:id="countdownLabel" alignment="CENTER" contentDisplay="CENTER" textFill="WHITE" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2">
|
||||||
|
<font>
|
||||||
|
<Font size="16.0" />
|
||||||
|
</font>
|
||||||
|
</Label>
|
||||||
|
<GridPane fx:id="playerContainer" GridPane.columnSpan="3" GridPane.rowIndex="1">
|
||||||
|
<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>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
|
<children>
|
||||||
|
<Label fx:id="playerLabel" text="No Player" GridPane.halignment="CENTER" GridPane.valignment="BOTTOM">
|
||||||
|
<GridPane.margin>
|
||||||
|
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||||
|
</GridPane.margin>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="playerLabel4" text="No Player" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="BOTTOM">
|
||||||
|
<GridPane.margin>
|
||||||
|
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||||
|
</GridPane.margin>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="playerLabel2" text="No Player" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="BOTTOM">
|
||||||
|
<GridPane.margin>
|
||||||
|
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||||
|
</GridPane.margin>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="playerLabel3" text="No Player" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.valignment="BOTTOM">
|
||||||
|
<GridPane.margin>
|
||||||
|
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||||
|
</GridPane.margin>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="playerLabel5" text="No Player" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="BOTTOM">
|
||||||
|
<GridPane.margin>
|
||||||
|
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||||
|
</GridPane.margin>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="playerLabel6" text="No Player" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="BOTTOM">
|
||||||
|
<GridPane.margin>
|
||||||
|
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||||
|
</GridPane.margin>
|
||||||
|
</Label>
|
||||||
|
</children>
|
||||||
|
</GridPane>
|
||||||
|
<Label text="Get Ready For The Next Race" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font name="Cabin-Bold" size="17.0" />
|
||||||
|
</font>
|
||||||
|
</Label>
|
||||||
|
</children>
|
||||||
|
<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>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="80.0" minHeight="80.0" prefHeight="80.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="1.7976931348623157E308" minHeight="250.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="80.0" minHeight="80.0" prefHeight="80.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
|
</GridPane>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
@ -1,44 +1,40 @@
|
|||||||
<!--<?xml version="1.0" encoding="UTF-8"?>-->
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<!--<?import java.lang.*?>-->
|
<?import javafx.scene.control.Button?>
|
||||||
<!--<?import javafx.scene.control.*?>-->
|
<?import javafx.scene.control.Label?>
|
||||||
<!--<?import javafx.scene.text.*?>-->
|
<?import javafx.scene.layout.*?>
|
||||||
<!--<?import javafx.scene.control.Button?>-->
|
<?import javafx.scene.text.Font?>
|
||||||
<!--<?import javafx.scene.control.Label?>-->
|
<AnchorPane fx:id="hostWrapper" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="780.0" visible="false" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.HostController">
|
||||||
<!--<?import javafx.scene.layout.*?>-->
|
<children>
|
||||||
<!--<?import javafx.scene.text.Font?>-->
|
<GridPane AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<columnConstraints>
|
||||||
<!--<AnchorPane fx:id="hostWrapper" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="780.0" visible="false" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">-->
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<!--<children>-->
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<!--<GridPane AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">-->
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<!--<columnConstraints>-->
|
</columnConstraints>
|
||||||
<!--<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />-->
|
<rowConstraints>
|
||||||
<!--<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />-->
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<!--<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />-->
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<!--</columnConstraints>-->
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<!--<rowConstraints>-->
|
</rowConstraints>
|
||||||
<!--<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />-->
|
<children>
|
||||||
<!--<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />-->
|
<Button fx:id="hostGameBtn" mnemonicParsing="false" onAction="#hostGamePressed" text="Start Game" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2">
|
||||||
<!--<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />-->
|
<font>
|
||||||
<!--</rowConstraints>-->
|
<Font size="20.0" />
|
||||||
<!--<children>-->
|
</font>
|
||||||
<!--<Button fx:id="hostGameBtn" mnemonicParsing="false" onAction="#hostGamePressed" text="Start Game" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2">-->
|
</Button>
|
||||||
<!--<font>-->
|
<Label text="Address: 127.0.0.1" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
|
||||||
<!--<Font size="20.0" />-->
|
<font>
|
||||||
<!--</font>-->
|
<Font size="17.0" />
|
||||||
<!--</Button>-->
|
</font>
|
||||||
<!--<Label text="Address: 127.0.0.1" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">-->
|
</Label>
|
||||||
<!--<font>-->
|
<Label text="Port: 4942" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
||||||
<!--<Font size="17.0" />-->
|
<font>
|
||||||
<!--</font>-->
|
<Font size="17.0" />
|
||||||
<!--</Label>-->
|
</font>
|
||||||
<!--<Label text="Port: 4942" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1">-->
|
</Label>
|
||||||
<!--<font>-->
|
<Button mnemonicParsing="false" onAction="#menuBtnPressed" text="Main Menu" GridPane.halignment="CENTER" />
|
||||||
<!--<Font size="17.0" />-->
|
</children>
|
||||||
<!--</font>-->
|
</GridPane>
|
||||||
<!--</Label>-->
|
</children>
|
||||||
<!--<Button mnemonicParsing="false" onAction="#menuBtnPressed" text="Main Menu" GridPane.halignment="CENTER" />-->
|
</AnchorPane>
|
||||||
<!--</children>-->
|
|
||||||
<!--</GridPane>-->
|
|
||||||
<!--</children>-->
|
|
||||||
<!--</AnchorPane>-->
|
|
||||||
@ -1,182 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.image.*?>
|
|
||||||
<?import java.lang.*?>
|
|
||||||
<?import javafx.geometry.*?>
|
|
||||||
<?import javafx.scene.control.*?>
|
|
||||||
<?import javafx.scene.layout.*?>
|
|
||||||
<?import javafx.scene.text.*?>
|
|
||||||
<?import javafx.geometry.Insets?>
|
|
||||||
<?import javafx.scene.control.Button?>
|
|
||||||
<?import javafx.scene.control.Label?>
|
|
||||||
<?import javafx.scene.control.SplitPane?>
|
|
||||||
<?import javafx.scene.control.TableColumn?>
|
|
||||||
<?import javafx.scene.control.TableView?>
|
|
||||||
<?import javafx.scene.image.Image?>
|
|
||||||
<?import javafx.scene.image.ImageView?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
|
||||||
<?import javafx.scene.layout.GridPane?>
|
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
|
|
||||||
<AnchorPane fx:id="hostWrapper" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="780.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.InGameLobby">
|
|
||||||
<children>
|
|
||||||
<SplitPane fx:id="splitPane" dividerPositions="0.7724935732647815" layoutX="580.0" layoutY="129.0" prefHeight="160.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
|
||||||
<items>
|
|
||||||
<AnchorPane fx:id="imagePane" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
|
|
||||||
<children>
|
|
||||||
<ImageView fx:id="imageView" fitHeight="376.0" fitWidth="597.0" nodeOrientation="INHERIT" pickOnBounds="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
|
||||||
<image>
|
|
||||||
<Image url="@../images/lobby.gif" />
|
|
||||||
</image></ImageView>
|
|
||||||
<GridPane style="-fx-background-color: rgba(0, 0, 0, 0.5);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
|
||||||
<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>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints maxHeight="50.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="1.7976931348623157E308" minHeight="10.0" prefHeight="173.0" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="50.0" minHeight="10.0" prefHeight="50.0" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="1.7976931348623157E308" minHeight="10.0" prefHeight="173.0" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="50.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<AnchorPane GridPane.rowIndex="1">
|
|
||||||
<children>
|
|
||||||
<Pane fx:id="playerPane" layoutX="22.0" layoutY="28.0" onMouseClicked="#joinRacePressed" prefHeight="150.0" prefWidth="156.0" style="-fx-border-color: black; -fx-background-color: rgba(100, 100, 100, 0.8);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="0.0" GridPane.rowIndex="1">
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
<padding>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</padding>
|
|
||||||
<opaqueInsets>
|
|
||||||
<Insets />
|
|
||||||
</opaqueInsets>
|
|
||||||
</Pane>
|
|
||||||
<Label alignment="CENTER" contentDisplay="CENTER" text="No Player" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" />
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
<AnchorPane layoutX="10.0" layoutY="78.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
|
|
||||||
<children>
|
|
||||||
<Pane layoutX="22.0" layoutY="28.0" onMouseClicked="#joinRacePressed" prefHeight="150.0" prefWidth="156.0" style="-fx-border-color: black; -fx-background-color: rgba(100, 100, 100, 0.8);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="0.0" GridPane.rowIndex="1">
|
|
||||||
<opaqueInsets>
|
|
||||||
<Insets />
|
|
||||||
</opaqueInsets>
|
|
||||||
<padding>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</padding>
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
</Pane>
|
|
||||||
<Label alignment="CENTER" contentDisplay="CENTER" text="No Player" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" />
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
<AnchorPane layoutX="209.0" layoutY="78.0" GridPane.columnIndex="2" GridPane.rowIndex="1">
|
|
||||||
<children>
|
|
||||||
<Pane layoutX="22.0" layoutY="28.0" onMouseClicked="#joinRacePressed" prefHeight="150.0" prefWidth="156.0" style="-fx-border-color: black; -fx-background-color: rgba(100, 100, 100, 0.8);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="0.0" GridPane.rowIndex="1">
|
|
||||||
<opaqueInsets>
|
|
||||||
<Insets />
|
|
||||||
</opaqueInsets>
|
|
||||||
<padding>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</padding>
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
</Pane>
|
|
||||||
<Label alignment="CENTER" contentDisplay="CENTER" text="No Player" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" />
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
<AnchorPane layoutX="408.0" layoutY="78.0" GridPane.rowIndex="3">
|
|
||||||
<children>
|
|
||||||
<Pane fx:id="playerPane4" layoutX="22.0" layoutY="28.0" onMouseClicked="#joinRacePressed" prefHeight="150.0" prefWidth="156.0" style="-fx-border-color: black; -fx-background-color: rgba(100, 100, 100, 0.8);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="0.0" GridPane.rowIndex="1">
|
|
||||||
<opaqueInsets>
|
|
||||||
<Insets />
|
|
||||||
</opaqueInsets>
|
|
||||||
<padding>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</padding>
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
</Pane>
|
|
||||||
<Label alignment="CENTER" contentDisplay="CENTER" text="No Player" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" />
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
<AnchorPane layoutX="10.0" layoutY="334.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
|
||||||
<children>
|
|
||||||
<Pane layoutX="22.0" layoutY="28.0" onMouseClicked="#joinRacePressed" prefHeight="150.0" prefWidth="156.0" style="-fx-border-color: black; -fx-background-color: rgba(100, 100, 100, 0.8);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="0.0" GridPane.rowIndex="1">
|
|
||||||
<opaqueInsets>
|
|
||||||
<Insets />
|
|
||||||
</opaqueInsets>
|
|
||||||
<padding>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</padding>
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
</Pane>
|
|
||||||
<Label alignment="CENTER" contentDisplay="CENTER" text="No Player" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" />
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
<AnchorPane layoutX="209.0" layoutY="334.0" GridPane.columnIndex="2" GridPane.rowIndex="3">
|
|
||||||
<children>
|
|
||||||
<Pane layoutX="22.0" layoutY="28.0" onMouseClicked="#joinRacePressed" prefHeight="150.0" prefWidth="156.0" style="-fx-border-color: black; -fx-background-color: rgba(100, 100, 100, 0.8);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="0.0" GridPane.rowIndex="1">
|
|
||||||
<opaqueInsets>
|
|
||||||
<Insets />
|
|
||||||
</opaqueInsets>
|
|
||||||
<padding>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</padding>
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets left="20.0" right="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
</Pane>
|
|
||||||
<Label alignment="CENTER" contentDisplay="CENTER" text="No Player" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" />
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
<Button mnemonicParsing="false" onAction="#menuBtnPressed" text="Quit" GridPane.rowIndex="4">
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets left="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
</Button>
|
|
||||||
<Button alignment="CENTER_RIGHT" contentDisplay="RIGHT" mnemonicParsing="false" onAction="#startBtnPressed" text="Start Game" GridPane.columnIndex="2" GridPane.halignment="RIGHT" GridPane.rowIndex="4">
|
|
||||||
<GridPane.margin>
|
|
||||||
<Insets right="20.0" />
|
|
||||||
</GridPane.margin>
|
|
||||||
</Button>
|
|
||||||
<Label alignment="CENTER" contentDisplay="CENTER" text="Map: MapNameHere" textFill="WHITE" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2">
|
|
||||||
<font>
|
|
||||||
<Font size="16.0" />
|
|
||||||
</font>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
<Label alignment="TOP_CENTER" text="Get Ready For The Next Race" textFill="#fffdfd" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="20.0">
|
|
||||||
<font>
|
|
||||||
<Font size="22.0" />
|
|
||||||
</font>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
<AnchorPane fx:id="specPane" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
|
|
||||||
<children>
|
|
||||||
<TableView onMouseClicked="#joinSpecPressed" prefHeight="200.0" prefWidth="200.0" style="-fx-background-color: rgba(60, 60, 60, 1);" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
|
||||||
<columns>
|
|
||||||
<TableColumn prefWidth="173.0" text="Spectators" />
|
|
||||||
</columns>
|
|
||||||
<columnResizePolicy>
|
|
||||||
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
|
|
||||||
</columnResizePolicy>
|
|
||||||
</TableView>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
</items>
|
|
||||||
</SplitPane>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
Loading…
Reference in new issue