From 265b20ad61c7a9c2b173206091e10b3478ac93c9 Mon Sep 17 00:00:00 2001 From: Alistair McIntyre Date: Thu, 28 Sep 2017 12:12:22 +1300 Subject: [PATCH 1/5] - Created Madagascar Map Initial tags : #story[1275] --- src/main/java/seng302/model/ClientYacht.java | 5 +- src/main/resources/maps/madagascar.xml | 64 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/maps/madagascar.xml 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/resources/maps/madagascar.xml b/src/main/resources/maps/madagascar.xml new file mode 100644 index 00000000..2c82e661 --- /dev/null +++ b/src/main/resources/maps/madagascar.xml @@ -0,0 +1,64 @@ + + + + Madagascar + + 57.6679590 + 11.8503233 + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From d7fc339ad52dc31facdd8711cdf2210f634397e3 Mon Sep 17 00:00:00 2001 From: Alistair McIntyre Date: Thu, 28 Sep 2017 14:41:35 +1300 Subject: [PATCH 2/5] - Added Madagascar Map tags : #story[1275] --- .../messages/MarkRoundingMessage.java | 1 + .../java/seng302/model/mark/CompoundMark.java | 1 - .../java/seng302/visualiser/MapMaker.java | 4 +- src/main/resources/maps/madagascar.xml | 53 ++++++++++--------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java index b1276814..4b7d33c3 100644 --- a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java +++ b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java @@ -44,6 +44,7 @@ public class MarkRoundingMessage extends Message{ putInt((int) raceId, 4); putInt((int) sourceId, 4); putByte((byte) boatStatus.getCode()); + System.out.println(roundingSide.getCode()); putByte((byte) roundingSide.getCode()); putByte((byte) markType.getCode()); putByte((byte) markId); 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/resources/maps/madagascar.xml b/src/main/resources/maps/madagascar.xml index 2c82e661..37113567 100644 --- a/src/main/resources/maps/madagascar.xml +++ b/src/main/resources/maps/madagascar.xml @@ -3,62 +3,63 @@ Madagascar - 57.6679590 - 11.8503233 + -15.67707 + 49.79338 10 - - + + - + - - + - - + - - + + + + + + - - - + + + + + - - - - - - - - - - - - + + + + + + + + + \ No newline at end of file From 1aedcaddf593ae11d397c24afb7dd14d3d48f176 Mon Sep 17 00:00:00 2001 From: Alistair McIntyre Date: Thu, 28 Sep 2017 14:42:34 +1300 Subject: [PATCH 3/5] removed an added print statement tags : #story[1275] --- .../java/seng302/gameServer/messages/MarkRoundingMessage.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java index 4b7d33c3..b1276814 100644 --- a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java +++ b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java @@ -44,7 +44,6 @@ public class MarkRoundingMessage extends Message{ putInt((int) raceId, 4); putInt((int) sourceId, 4); putByte((byte) boatStatus.getCode()); - System.out.println(roundingSide.getCode()); putByte((byte) roundingSide.getCode()); putByte((byte) markType.getCode()); putByte((byte) markId); From 1e19dd5ab601a0f35fa20bd552a4e2842628c3ad Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 14:46:55 +1300 Subject: [PATCH 4/5] Fixed parrot again. --- .../fxObjects/assets_3D/BoatMeshType.java | 2 +- .../fxObjects/assets_3D/ModelFactory.java | 6 ++-- .../java/seng302/utilities/MapMakerTest.java | 9 ++++++ src/test/java/steps/CustomMapsSteps.java | 32 +++++++++---------- 4 files changed, 29 insertions(+), 20 deletions(-) create mode 100644 src/test/java/seng302/utilities/MapMakerTest.java 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 e454b666..828a4492 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java @@ -100,19 +100,19 @@ public class ModelFactory { mast.setMaterial(new PhongMaterial(primaryColour)); boatAssets.getChildren().add(mast); } else { - boatAssets.getChildren().add(new Group()); + boatAssets.getChildren().add(new MeshView()); } MeshView sail = importBoatSTL(boatType.sailFile); sail.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) ); boatAssets.getChildren().add(sail); if (boatType.jibFile != null) { MeshView jib = importBoatSTL(boatType.jibFile); jib.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) ); boatAssets.getChildren().add(jib); } 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$") From 80c26a9e4a032d252d819e748d694bd172db62db Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Thu, 28 Sep 2017 15:00:00 +1300 Subject: [PATCH 5/5] Fixed bug where server could connect to an expired server - Increased update interval Tags: #story[1281] --- src/main/java/seng302/App.java | 1 - .../discoveryServer/DiscoveryServer.java | 2 +- .../discoveryServer/DiscoveryServerClient.java | 2 +- .../discoveryServer/util/ServerListing.java | 2 +- .../visualiser/ClientToServerThread.java | 10 ++++++---- .../java/seng302/visualiser/GameClient.java | 17 +++++++++++++---- .../controllers/ServerListController.java | 4 +++- 7 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index fdfc3ad4..7b53c2cf 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -105,7 +105,6 @@ public class App extends Application { } }, 0, 1200); - try { parseArgs(args); } catch (ParseException e) { diff --git a/src/main/java/seng302/discoveryServer/DiscoveryServer.java b/src/main/java/seng302/discoveryServer/DiscoveryServer.java index 88c531e7..c5707b92 100644 --- a/src/main/java/seng302/discoveryServer/DiscoveryServer.java +++ b/src/main/java/seng302/discoveryServer/DiscoveryServer.java @@ -48,7 +48,7 @@ public class DiscoveryServer { " .:;...'cxxxxxxxxxxxxoc;,::,..cdl;;l' \n" + " .cl;':,'';oxxxxxxdxxxxxx:....,cooc,cO; \n" + " .,,,::;,lxoc:,,:lxxxxxxxxxxxo:,,;lxxl;'oNc \n" + - " .cdxo;':lxxxxxxc'';cccccoxxxxxxxxxxxxo,.;lc. " + ANSI_YELLOW + "Party-Parrots-At-Sea Discovery Server v0.1 " + selectedColor +"\n" + + " .cdxo;':lxxxxxxc'';cccccoxxxxxxxxxxxxo,.;lc. " + ANSI_YELLOW + "Party-Parrots-At-Sea Discovery Server v1.0.0 (Release) " + selectedColor +"\n" + " .loc'.'lxxxxxxxxocc;''''';ccoxxxxxxxxx:..oc \n" + "olc,..',:cccccccccccc:;;;;;;;;:ccccccccc,.'c, \n" + "Ol;......................................;l' "); diff --git a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java index 79df1c2f..80521951 100644 --- a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java +++ b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java @@ -19,7 +19,7 @@ import java.util.Timer; import java.util.TimerTask; public class DiscoveryServerClient { - private final Integer UPDATE_INTERVAL_MS = 5000; + private final Integer UPDATE_INTERVAL_MS = 1000; private static String roomCode = null; private Timer serverListingUpdateTimer; diff --git a/src/main/java/seng302/discoveryServer/util/ServerListing.java b/src/main/java/seng302/discoveryServer/util/ServerListing.java index 4c5bdaad..d477b717 100644 --- a/src/main/java/seng302/discoveryServer/util/ServerListing.java +++ b/src/main/java/seng302/discoveryServer/util/ServerListing.java @@ -1,7 +1,7 @@ package seng302.discoveryServer.util; public class ServerListing { - public final static int SERVER_TTL_DEFAULT = 10; + public final static int SERVER_TTL_DEFAULT = 3; private String serverName = ""; private String mapName = ""; diff --git a/src/main/java/seng302/visualiser/ClientToServerThread.java b/src/main/java/seng302/visualiser/ClientToServerThread.java index d8d52fff..b4840004 100644 --- a/src/main/java/seng302/visualiser/ClientToServerThread.java +++ b/src/main/java/seng302/visualiser/ClientToServerThread.java @@ -180,10 +180,12 @@ public class ClientToServerThread implements Runnable { notifyDisconnectListeners("Connection to server was terminated"); closeSocket(); - Platform.runLater(() -> { - ViewManager.getInstance().showErrorSnackBar("Server rejected connection."); - ViewManager.getInstance().goToStartView(); - }); + //thread.interrupt(); + +// Platform.runLater(() -> { +// ViewManager.getInstance().showErrorSnackBar("Server rejected connection."); +// ViewManager.getInstance().goToStartView(); +// }); } public void sendCustomizationRequest(CustomizeRequestType reqType, byte[] payload) { diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 4d09e60f..63df3d27 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -95,7 +95,7 @@ public class GameClient { * @param ipAddress IP to connect to. * @param portNumber Port to connect to. */ - public void runAsClient(String ipAddress, Integer portNumber) { + public boolean runAsClient(String ipAddress, Integer portNumber) { try { startClientToServerThread(ipAddress, portNumber); socketThread.addDisconnectionListener((cause) -> { @@ -106,12 +106,19 @@ public class GameClient { ViewManager.getInstance().setPlayerList(clientLobbyList); - while (regattaData == null){ + int triesLeft = 10; + + while (regattaData == null && triesLeft >= 0){ try { Thread.sleep(100); - } catch (InterruptedException e) { - e.printStackTrace(); + } catch (InterruptedException ignored) { + ; } + triesLeft--; + } + + if (triesLeft < 1){ + return false; } ViewManager.getInstance().setProperty("serverName", regattaData.getRegattaName()); @@ -127,6 +134,8 @@ public class GameClient { } catch (IOException ioe) { ViewManager.getInstance().showErrorSnackBar("There are no servers currently available."); } + + return true; } private void destroyClientToServerThread() { diff --git a/src/main/java/seng302/visualiser/controllers/ServerListController.java b/src/main/java/seng302/visualiser/controllers/ServerListController.java index 2e133ceb..77e8bf4d 100644 --- a/src/main/java/seng302/visualiser/controllers/ServerListController.java +++ b/src/main/java/seng302/visualiser/controllers/ServerListController.java @@ -140,7 +140,9 @@ public class ServerListController implements Initializable, ServerListenerDelega return; } - ViewManager.getInstance().getGameClient().runAsClient(listing.getAddress(), listing.getPortNumber()); + if (!ViewManager.getInstance().getGameClient().runAsClient(listing.getAddress(), listing.getPortNumber())){ + ViewManager.getInstance().showErrorSnackBar("Could not connect to server"); + } }); /*