diff --git a/src/main/java/seng302/model/ClientYacht.java b/src/main/java/seng302/model/ClientYacht.java index 9e38b781..612ca1e5 100644 --- a/src/main/java/seng302/model/ClientYacht.java +++ b/src/main/java/seng302/model/ClientYacht.java @@ -13,15 +13,11 @@ import javafx.beans.property.ReadOnlyIntegerProperty; import javafx.beans.property.ReadOnlyIntegerWrapper; import javafx.beans.property.ReadOnlyLongProperty; import javafx.beans.property.ReadOnlyLongWrapper; -import javafx.beans.value.ObservableObjectValue; -import javafx.collections.FXCollections; import javafx.scene.paint.Color; -import jdk.nashorn.internal.objects.annotations.Function; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import seng302.model.token.TokenType; import seng302.visualiser.fxObjects.assets_3D.BoatMeshType; -import seng302.model.token.TokenType; import seng302.visualiser.fxObjects.assets_3D.BoatObject; /** @@ -286,6 +282,7 @@ public class ClientYacht extends Observable { public void setHeading(Double heading) { this.heading = heading; + System.out.println(heading); setHeadingProperty(); } diff --git a/src/main/java/seng302/model/mark/CompoundMark.java b/src/main/java/seng302/model/mark/CompoundMark.java index b9385446..c45750af 100644 --- a/src/main/java/seng302/model/mark/CompoundMark.java +++ b/src/main/java/seng302/model/mark/CompoundMark.java @@ -72,7 +72,6 @@ public class CompoundMark { getSubMark(1).setRoundingSide(RoundingSide.STARBOARD); break; - } } diff --git a/src/main/java/seng302/visualiser/MapMaker.java b/src/main/java/seng302/visualiser/MapMaker.java index 073c9d60..5bda5b7e 100644 --- a/src/main/java/seng302/visualiser/MapMaker.java +++ b/src/main/java/seng302/visualiser/MapMaker.java @@ -1,6 +1,5 @@ package seng302.visualiser; -import java.io.File; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; @@ -35,7 +34,8 @@ public class MapMaker { private int index = 0; private XMLGenerator xmlGenerator = new XMLGenerator(); - private List maps = new ArrayList<>(Arrays.asList("default.xml", "horseshoe.xml", "loop.xml")); + private List maps = new ArrayList<>( + Arrays.asList("default.xml", "horseshoe.xml", "madagascar.xml", "loop.xml")); public static MapMaker getInstance() { if (instance == null) { diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java index 4be41d90..fbd85eba 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java @@ -13,7 +13,7 @@ public enum BoatMeshType { PIRATE_SHIP("pirateship_hull.stl", "pirateship_mast.stl", -0.5415, "pirateship_mainsail.stl", -0.5415, "pirateship_frontsail.stl", true, 1.2, 1.6, 1.2), DUCKY("ducky_hull.stl", "ducky_mast.stl", -2.18539, "ducky_sail.stl", -2.18539, "ducky_eyes.stl", false, 1.2, 1.1, 1.4), - PARROT("parrot_hull.stl", null, 0, "parrot_sail.stl", 0, "parrot_features.stl", true, 1, 1, 1), + PARROT("parrot_hull.stl", null, 0, "parrot_features.stl", 0, "parrot_sail.stl", true, 1, 1, 1), WAKA("waka_hull.stl", "waka_mast.stl", 0, "waka_sail.stl", 0, null, true, 1.7, 0.5, 1.5); final String hullFile, mastFile, sailFile, jibFile; diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java index 93d16c13..828a4492 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java @@ -93,22 +93,25 @@ public class ModelFactory { Group boatAssets = new Group(); MeshView hull = importBoatSTL(boatType.hullFile); hull.setMaterial(new PhongMaterial(primaryColour)); - MeshView sail = importBoatSTL(boatType.sailFile); - sail.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) - ); - - boatAssets.getChildren().addAll(hull, sail); + boatAssets.getChildren().add(hull); if (boatType.mastFile != null) { MeshView mast = importBoatSTL(boatType.mastFile); mast.setMaterial(new PhongMaterial(primaryColour)); boatAssets.getChildren().add(mast); + } else { + boatAssets.getChildren().add(new MeshView()); } + MeshView sail = importBoatSTL(boatType.sailFile); + sail.setMaterial( + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) + ); + boatAssets.getChildren().add(sail); + if (boatType.jibFile != null) { MeshView jib = importBoatSTL(boatType.jibFile); - sail.setMaterial( + jib.setMaterial( new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) ); boatAssets.getChildren().add(jib); diff --git a/src/main/resources/maps/madagascar.xml b/src/main/resources/maps/madagascar.xml new file mode 100644 index 00000000..37113567 --- /dev/null +++ b/src/main/resources/maps/madagascar.xml @@ -0,0 +1,65 @@ + + + + Madagascar + + -15.67707 + 49.79338 + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/meshes/boatSTLs/parrot_features.stl b/src/main/resources/meshes/boatSTLs/parrot_features.stl index 89072cfa..99b40002 100644 Binary files a/src/main/resources/meshes/boatSTLs/parrot_features.stl and b/src/main/resources/meshes/boatSTLs/parrot_features.stl differ diff --git a/src/test/java/seng302/utilities/MapMakerTest.java b/src/test/java/seng302/utilities/MapMakerTest.java new file mode 100644 index 00000000..dc2af1b1 --- /dev/null +++ b/src/test/java/seng302/utilities/MapMakerTest.java @@ -0,0 +1,9 @@ +package seng302.utilities; + +/** + * Created by cir27 on 28/09/17. + */ +public class MapMakerTest { +// @Test + +} diff --git a/src/test/java/steps/CustomMapsSteps.java b/src/test/java/steps/CustomMapsSteps.java index 5d7a2f1d..42e9314b 100644 --- a/src/test/java/steps/CustomMapsSteps.java +++ b/src/test/java/steps/CustomMapsSteps.java @@ -16,26 +16,26 @@ public class CustomMapsSteps { @Given("^that the game has multiple race xml files$") public void that_the_game_has_multiple_race_xml_files() throws Throwable { -// mapMaker = MapMaker.getInstance(); -// String firstMap = mapMaker.getCurrentRacePath(); -// int numMaps = 0; -// do { -// mapMaker.next(); -// numMaps++; -// } while (!mapMaker.getCurrentRacePath().equals(firstMap)); -// Assert.assertTrue(numMaps >= 2); + mapMaker = MapMaker.getInstance(); + String firstMap = mapMaker.getCurrentRacePath(); + int numMaps = 0; + do { + mapMaker.next(); + numMaps++; + } while (!mapMaker.getCurrentRacePath().equals(firstMap)); + Assert.assertTrue(numMaps >= 2); } @Then("^all of them can be seen$") public void all_of_them_can_be_seen() throws Throwable { -// File[] files = new File(this.getClass().getResource("/maps/").getPath()).listFiles(); -// for (File file : files) { -// if (file.isFile()) { -// Assert.assertTrue(file.getAbsolutePath().equals(mapMaker.getCurrentRacePath())); -// mapMaker.next(); -// System.out.println(file.getAbsolutePath()); -// } -// } + File[] files = new File(this.getClass().getResource("/maps/").getPath()).listFiles(); + for (File file : files) { + if (file.isFile()) { + Assert.assertTrue(file.getAbsolutePath().equals(mapMaker.getCurrentRacePath())); + mapMaker.next(); + System.out.println(file.getAbsolutePath()); + } + } } @Given("^that I choose a race$")