diff --git a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java
index 4e326e42..8cb2bb39 100644
--- a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java
+++ b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java
@@ -20,12 +20,14 @@ import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
+import javafx.scene.paint.Material;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.MeshView;
import javafx.scene.shape.Shape3D;
import mock.app.Event;
import network.Messages.Enums.RaceStatusEnum;
import network.Messages.Enums.RequestToJoinEnum;
+import org.apache.commons.codec.language.bm.Rule;
import shared.model.Boat;
import visualiser.app.App;
import visualiser.gameController.ControllerClient;
@@ -154,6 +156,18 @@ public class InGameLobbyController extends Controller {
animatedPane.add(view3D, 0, 0);
+ //add sail
+ Material whiteSail = new PhongMaterial(Color.WHITE);
+ Sails3D sails3D = new Sails3D();
+ Subject3D sailsSubject = new Subject3D(sails3D, 0);
+ sails3D.setMouseTransparent(true);
+ sails3D.setMaterial(whiteSail);
+ sailsSubject.setXRot(0d);
+ sailsSubject.setX(0);
+ sailsSubject.setZ(radius);
+ sailsSubject.setScale(0.1);
+ subjects.add(sailsSubject);
+
AnimationTimer loop = new AnimationTimer() {
double angle = -90;
double offset = 0.05;
@@ -162,6 +176,9 @@ public class InGameLobbyController extends Controller {
boat.setX(radius * Math.cos(angle * Math.PI/180));
boat.setZ(radius * Math.sin(angle * Math.PI/180));
boat.setHeading(-angle);
+ sailsSubject.setX(boat.getX());
+ sailsSubject.setZ(boat.getZ());
+ sailsSubject.setHeading(boat.getHeading().getAngle());
angle += offset;
}
};
diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java
index ec27d068..fd2ef10a 100644
--- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java
+++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java
@@ -20,14 +20,14 @@ import javafx.scene.media.AudioClip;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.paint.Color;
+import javafx.scene.paint.Material;
+import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.MeshView;
+import javafx.scene.shape.Shape3D;
import javafx.stage.Modality;
import mock.exceptions.EventConstructionException;
import visualiser.app.App;
-import visualiser.layout.SeaSurface;
-import visualiser.layout.SkyBox;
-import visualiser.layout.Subject3D;
-import visualiser.layout.View3D;
+import visualiser.layout.*;
import java.io.File;
import java.io.IOException;
@@ -82,10 +82,13 @@ public class TitleController extends Controller {
seaSurface.setZ(250);
subjects.add(seaSurface);
- URL asset = RaceViewController.class.getClassLoader().getResource("assets/V1.2 Complete Boat.stl");
- StlMeshImporter importer = new StlMeshImporter();
- importer.read(asset);
- Subject3D boat = new Subject3D(new MeshView(importer.getImport()), 0);
+// URL asset = RaceViewController.class.getClassLoader().getResource("assets/V1.2 Complete Boat.stl");
+// StlMeshImporter importer = new StlMeshImporter();
+// importer.read(asset);
+// Subject3D boat = new Subject3D(new MeshView(importer.getImport()), 0);
+
+ Shape3D mesh = Assets3D.getBoat();
+ Subject3D boat = new Subject3D(mesh, 0);
double radius = 100;
boat.setX(0);
@@ -95,6 +98,18 @@ public class TitleController extends Controller {
subjects.add(boat);
view3D.trackSubject(boat, -45);
+ //add sail
+ Material whiteSail = new PhongMaterial(Color.WHITE);
+ Sails3D sails3D = new Sails3D();
+ Subject3D sailsSubject = new Subject3D(sails3D, 0);
+ sails3D.setMouseTransparent(true);
+ sails3D.setMaterial(whiteSail);
+ sailsSubject.setXRot(0d);
+ sailsSubject.setX(0);
+ sailsSubject.setZ(radius);
+ sailsSubject.setScale(0.1);
+ subjects.add(sailsSubject);
+
view3DContainer.add(view3D, 0, 0);
AnimationTimer loop = new AnimationTimer() {
@@ -105,6 +120,9 @@ public class TitleController extends Controller {
boat.setX(radius * Math.cos(angle * Math.PI/180));
boat.setZ(radius * Math.sin(angle * Math.PI/180));
boat.setHeading(-angle);
+ sailsSubject.setX(boat.getX());
+ sailsSubject.setZ(boat.getZ());
+ sailsSubject.setHeading(boat.getHeading().getAngle());
angle += offset;
}
};
diff --git a/racevisionGame/src/main/resources/css/dayMode.css b/racevisionGame/src/main/resources/css/dayMode.css
index ec68f091..2509ea56 100644
--- a/racevisionGame/src/main/resources/css/dayMode.css
+++ b/racevisionGame/src/main/resources/css/dayMode.css
@@ -222,3 +222,7 @@
-fx-border-width: 3;
}
+#gameTitle .text{
+ -fx-stroke: black;
+ -fx-stroke-width:1px;
+}
\ No newline at end of file
diff --git a/racevisionGame/src/main/resources/css/nightMode.css b/racevisionGame/src/main/resources/css/nightMode.css
index 098c2931..b1c700ff 100644
--- a/racevisionGame/src/main/resources/css/nightMode.css
+++ b/racevisionGame/src/main/resources/css/nightMode.css
@@ -335,3 +335,8 @@
-fx-focus-color: transparent;
-fx-background-color: transparent;
}
+
+#gameTitle .text{
+ -fx-stroke: black;
+ -fx-stroke-width:1px;
+}
\ No newline at end of file
diff --git a/racevisionGame/src/main/resources/visualiser/scenes/title.fxml b/racevisionGame/src/main/resources/visualiser/scenes/title.fxml
index 0f452560..7831a97d 100644
--- a/racevisionGame/src/main/resources/visualiser/scenes/title.fxml
+++ b/racevisionGame/src/main/resources/visualiser/scenes/title.fxml
@@ -54,7 +54,7 @@
-