From 83e696b79e2c868a0cfd14968bc036adf865923c Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Wed, 13 Sep 2017 13:18:25 +1200 Subject: [PATCH] Committed merge-related bug fixes --- .../src/main/java/mock/app/Event.java | 39 ++++++++++++++++--- .../java/mock/model/SourceIdAllocator.java | 4 +- .../src/main/java/shared/model/Constants.java | 4 +- .../java/visualiser/layout/Boundary3D.java | 4 +- .../java/visualiser/layout/SeaSurface.java | 2 +- .../main/java/visualiser/layout/SkyBox.java | 10 ++--- 6 files changed, 44 insertions(+), 19 deletions(-) diff --git a/racevisionGame/src/main/java/mock/app/Event.java b/racevisionGame/src/main/java/mock/app/Event.java index 1ff92196..2c9785f1 100644 --- a/racevisionGame/src/main/java/mock/app/Event.java +++ b/racevisionGame/src/main/java/mock/app/Event.java @@ -18,6 +18,7 @@ import shared.exceptions.InvalidRegattaDataException; import shared.exceptions.XMLReaderException; import shared.model.Bearing; import shared.model.Constants; +import shared.xml.XMLUtilities; import javax.xml.bind.JAXBException; import javax.xml.parsers.ParserConfigurationException; @@ -70,6 +71,8 @@ public class Event { private Thread connectionThread; + private int mapIndex; + @@ -79,11 +82,29 @@ public class Event { * @param singlePlayer Whether or not to create a single player event. * @throws EventConstructionException Thrown if we cannot create an Event for any reason. */ - public Event(boolean singlePlayer) throws EventConstructionException { - - String raceXMLFile = "mock/mockXML/raceThreePlayers.xml"; + public Event(boolean singlePlayer, int mapIndex) throws EventConstructionException { + this.mapIndex = mapIndex; + String raceXMLFile; String boatsXMLFile = "mock/mockXML/boatTest.xml"; String regattaXMLFile = "mock/mockXML/regattaTest.xml"; + switch (mapIndex){ + case 0:raceXMLFile = "mock/mockXML/raceSixPlayers.xml"; + break; + case 1:raceXMLFile = "mock/mockXML/oMapLayout.xml"; + break; + case 2: raceXMLFile = "mock/mockXML/iMapLayout.xml"; + break; + case 3: raceXMLFile = "mock/mockXML/mMapLayout.xml"; + break; + case 4: + raceXMLFile = "mock/mockXML/raceTutorial.xml"; + boatsXMLFile = "mock/mockXML/boatTutorial.xml"; + regattaXMLFile = "mock/mockXML/regattaTutorial.xml"; + break; + default: raceXMLFile = "mock/mockXML/raceSixPlayers.xml"; + + } + if (singlePlayer) { raceXMLFile = "mock/mockXML/raceSinglePlayer.xml"; @@ -95,7 +116,9 @@ public class Event { //this.raceXML = RaceXMLCreator.alterRaceToWind(raceXMLFile, 90); this.raceXML = XMLReader.readXMLFileToString(raceXMLFile, StandardCharsets.UTF_8); this.raceXML = Event.setRaceXMLAtCurrentTimeToNow(XMLReader.readXMLFileToString(raceXMLFile, StandardCharsets.UTF_8)); - + if(mapIndex==4){ + this.raceXML = Event.setRaceXMLAtCurrentTimeToNow(XMLReader.readXMLFileToString(raceXMLFile, StandardCharsets.UTF_8), 1000, 5000); + } this.boatXML = XMLReader.readXMLFileToString(boatsXMLFile, StandardCharsets.UTF_8); this.regattaXML = XMLReader.readXMLFileToString(regattaXMLFile, StandardCharsets.UTF_8); @@ -178,9 +201,14 @@ public class Event { * @return String containing edited xml */ public static String setRaceXMLAtCurrentTimeToNow(String raceXML) { + return setRaceXMLAtCurrentTimeToNow(raceXML, Constants.RacePreStartTime, Constants.RacePreparatoryTime); + } + public static String setRaceXMLAtCurrentTimeToNow(String raceXML, long racePreStartTime, long racePreparatoryTime){ //The start time is current time + 4 minutes. prestart is 3 minutes, and we add another minute. - long millisecondsToAdd = Constants.RacePreStartTime + 1 * 60 * 1000; + + long millisecondsToAdd = racePreStartTime + racePreparatoryTime; + long secondsToAdd = millisecondsToAdd / 1000; //Scale the time using our time scalar. secondsToAdd = secondsToAdd / Constants.RaceTimeScale; @@ -190,7 +218,6 @@ public class Event { raceXML = raceXML.replace("RACE_CREATION_TIME", dateFormat.format(creationTime)); raceXML = raceXML.replace("RACE_START_TIME", dateFormat.format(creationTime.plusSeconds(secondsToAdd))); - return raceXML; } diff --git a/racevisionGame/src/main/java/mock/model/SourceIdAllocator.java b/racevisionGame/src/main/java/mock/model/SourceIdAllocator.java index fb0cfd5a..f590d9b7 100644 --- a/racevisionGame/src/main/java/mock/model/SourceIdAllocator.java +++ b/racevisionGame/src/main/java/mock/model/SourceIdAllocator.java @@ -42,14 +42,12 @@ public class SourceIdAllocator { } List allocatedIDs = mockRace.getRaceDataSource().getParticipants(); - System.out.println(allocatedIDs); + List allIDs = new ArrayList<>(mockRace.getBoatDataSource().getBoats().keySet()); - System.out.println(allIDs); //Get list of unallocated ids. List unallocatedIDs = new ArrayList<>(allIDs); unallocatedIDs.removeAll(allocatedIDs); - System.out.println(unallocatedIDs.isEmpty()); if (!unallocatedIDs.isEmpty()) { diff --git a/racevisionGame/src/main/java/shared/model/Constants.java b/racevisionGame/src/main/java/shared/model/Constants.java index 26c56d11..7a5e2820 100644 --- a/racevisionGame/src/main/java/shared/model/Constants.java +++ b/racevisionGame/src/main/java/shared/model/Constants.java @@ -39,14 +39,14 @@ public class Constants { * The race pre-start time, in milliseconds. 3 minutes (30 seconds for development). */ // public static final long RacePreStartTime = 30 * 1000; - public static final long RacePreStartTime = 6 * 1000; + public static final long RacePreStartTime = 1000; /** * The race preparatory time, in milliseconds. 1 minute. */ // public static final long RacePreparatoryTime = 60 * 1000; - public static final long RacePreparatoryTime = 6 * 1000; + public static final long RacePreparatoryTime = 1 * 60 * 1000; diff --git a/racevisionGame/src/main/java/visualiser/layout/Boundary3D.java b/racevisionGame/src/main/java/visualiser/layout/Boundary3D.java index beb59914..6af7918b 100644 --- a/racevisionGame/src/main/java/visualiser/layout/Boundary3D.java +++ b/racevisionGame/src/main/java/visualiser/layout/Boundary3D.java @@ -62,12 +62,12 @@ public class Boundary3D { double c = Math.sqrt(a * a + b * b); - Subject3D bound1 = new Subject3D(new Sphere(thickness * 2)); + Subject3D bound1 = new Subject3D(new Sphere(thickness * 2),0); bound1.setX(graphCoord1.getX()); bound1.setZ(graphCoord1.getY()); boundaryNodes.add(bound1); - Subject3D connector = new Subject3D(new Box(c, thickness, thickness)); + Subject3D connector = new Subject3D(new Box(c, thickness, thickness),0); connector.setX(avgCoord.getX()); connector.setZ(avgCoord.getY()); double angle = 90 + Math.toDegrees(GPSConverter.getAngle(graphCoord2, graphCoord1)); diff --git a/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java b/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java index 57056556..31464705 100644 --- a/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java +++ b/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java @@ -23,7 +23,7 @@ public class SeaSurface extends Subject3D { * @param freq frequency the perlin noise is to be generated at */ public SeaSurface(int size, double freq){ - super(createSurface(size, freq)); + super(createSurface(size, freq),0); } /** diff --git a/racevisionGame/src/main/java/visualiser/layout/SkyBox.java b/racevisionGame/src/main/java/visualiser/layout/SkyBox.java index 72c1e89d..23e8ccdc 100644 --- a/racevisionGame/src/main/java/visualiser/layout/SkyBox.java +++ b/racevisionGame/src/main/java/visualiser/layout/SkyBox.java @@ -52,7 +52,7 @@ public class SkyBox { surface.setTranslateY(y - size + 1); surface.setTranslateZ(z); - Subject3D top = new Subject3D(surface); + Subject3D top = new Subject3D(surface,0); skyBoxPlanes.add(top); } @@ -71,7 +71,7 @@ public class SkyBox { surface.setTranslateZ(z + size/2 - 1); - Subject3D right = new Subject3D(surface); + Subject3D right = new Subject3D(surface,0); skyBoxPlanes.add(right); } @@ -93,7 +93,7 @@ public class SkyBox { surface.setTranslateZ(z - size/2 + 1); - Subject3D left = new Subject3D(surface); + Subject3D left = new Subject3D(surface,0); skyBoxPlanes.add(left); } @@ -111,7 +111,7 @@ public class SkyBox { surface.setTranslateY(y - size/2); surface.setTranslateZ(z); - Subject3D back = new Subject3D(surface); + Subject3D back = new Subject3D(surface,0); skyBoxPlanes.add(back); } @@ -129,7 +129,7 @@ public class SkyBox { surface.setTranslateY(y - size/2); surface.setTranslateZ(z); - Subject3D front = new Subject3D(surface); + Subject3D front = new Subject3D(surface,0); skyBoxPlanes.add(front); }