diff --git a/mock/src/main/java/seng302/Data/RaceData.java b/mock/src/main/java/seng302/Data/RaceData.java index cde1dffb..58409c05 100644 --- a/mock/src/main/java/seng302/Data/RaceData.java +++ b/mock/src/main/java/seng302/Data/RaceData.java @@ -93,7 +93,7 @@ public class RaceData { */ private void appendRaceId() { Element raceIdElement = doc.createElement("RaceID"); - raceIdElement.appendChild(doc.createTextNode(dataSource.getRaceId())); + raceIdElement.appendChild(doc.createTextNode(Integer.toString(dataSource.getRaceId()))); rootElement.appendChild(raceIdElement); } diff --git a/mock/src/main/java/seng302/DataInput/RaceDataSource.java b/mock/src/main/java/seng302/DataInput/RaceDataSource.java index 52e2fd7d..290fba5a 100644 --- a/mock/src/main/java/seng302/DataInput/RaceDataSource.java +++ b/mock/src/main/java/seng302/DataInput/RaceDataSource.java @@ -20,7 +20,7 @@ public interface RaceDataSource { List getMarkers(); - String getRaceId(); + int getRaceId(); String getRaceType(); diff --git a/mock/src/main/java/seng302/DataInput/RaceXMLReader.java b/mock/src/main/java/seng302/DataInput/RaceXMLReader.java index 6a56891d..ea812a65 100644 --- a/mock/src/main/java/seng302/DataInput/RaceXMLReader.java +++ b/mock/src/main/java/seng302/DataInput/RaceXMLReader.java @@ -20,7 +20,7 @@ import java.util.List; */ public class RaceXMLReader extends XMLReader implements RaceDataSource { private static double COORDINATEPADDING = 0.0005; - private String raceID; + private int raceID; private List boats = new ArrayList<>(); private Color[] colors = {Color.BLUEVIOLET, Color.BLACK, Color.RED, Color.ORANGE, Color.DARKOLIVEGREEN, Color.LIMEGREEN};//TODO make this established in xml or come up with a better system. private List legs = new ArrayList<>(); @@ -70,10 +70,8 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource { } public void readID() { - NodeList race = doc.getElementsByTagName("race"); - - raceID = getTextValueOfNode((Element) race.item(0), "raceId"); + raceID = Integer.parseInt(getTextValueOfNode((Element) race.item(0), "raceId")); } /** @@ -358,7 +356,7 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource { return mapBottomRight; } - public String getRaceId() { + public int getRaceId() { return raceID; } diff --git a/mock/src/main/java/seng302/Model/Race.java b/mock/src/main/java/seng302/Model/Race.java index c4da279c..7159ec0a 100644 --- a/mock/src/main/java/seng302/Model/Race.java +++ b/mock/src/main/java/seng302/Model/Race.java @@ -38,6 +38,7 @@ public class Race implements Runnable { private int raceId; private int dnfChance = 0; //percentage chance a boat fails at each checkpoint private MockOutput mockOutput; + private static int boatOffset = 0; /** @@ -47,11 +48,12 @@ public class Race implements Runnable { * @param legs Number of marks in order that the boats pass in order to complete the race. * @param scaleFactor for race */ - public Race(List boats, List legs, int scaleFactor, MockOutput mockOutput) { + public Race(List boats, List legs, int raceID, int scaleFactor, MockOutput mockOutput) { this.startingBoats = FXCollections.observableArrayList(boats); this.legs = legs; this.legs.add(new Leg("Finish", this.legs.size())); + this.raceId = raceID; this.scaleFactor = scaleFactor; this.mockOutput = mockOutput; @@ -63,7 +65,7 @@ public class Race implements Runnable { } public Race(RaceDataSource raceData, int scaleFactor, MockOutput mockOutput) { - this(raceData.getBoats(), raceData.getLegs(), scaleFactor, mockOutput); + this(raceData.getBoats(), raceData.getLegs(), raceData.getRaceId(), scaleFactor, mockOutput); } /** @@ -163,7 +165,8 @@ public class Race implements Runnable { ArrayList boatStatusMessages = new ArrayList(); //For each boat, we update it's position, and generate a BoatLocationMessage. - for (Boat boat : startingBoats) { + for (int i = 0; i < startingBoats.size(); i++) { + Boat boat = startingBoats.get((i + boatOffset) % startingBoats.size()); if (boat != null) { //Update position. if (boat.getTimeFinished() < 0) { @@ -177,6 +180,7 @@ public class Race implements Runnable { stop(); } } + boatOffset = (boatOffset + 1) % (startingBoats.size()); RaceStatus raceStatus = new RaceStatus(totalTimeElapsed, raceId, 3, 2, boatStatusMessages); mockOutput.parseRaceStatus(raceStatus); } diff --git a/mock/src/main/java/seng302/Model/RaceClock.java b/mock/src/main/java/seng302/Model/RaceClock.java deleted file mode 100644 index 0be11147..00000000 --- a/mock/src/main/java/seng302/Model/RaceClock.java +++ /dev/null @@ -1,52 +0,0 @@ -package seng302.Model; - -import com.github.bfsmith.geotimezone.TimeZoneLookup; -import com.github.bfsmith.geotimezone.TimeZoneResult; -import javafx.beans.property.SimpleStringProperty; -import javafx.beans.property.StringProperty; - - -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; - -/** - * Created by Gondr on 19/04/2017. - */ -public class RaceClock { - private StringProperty time; - private DateTimeFormatter dateTimeFormatter; - private String timeZone; - private ZoneId zoneId; - - public RaceClock(GPSCoordinate gpsCoordinate) { - TimeZoneLookup timeZoneLookup = new TimeZoneLookup(); - TimeZoneResult timeZoneResult = timeZoneLookup.getTimeZone(gpsCoordinate.getLatitude(), gpsCoordinate.getLongitude()); - zoneId = ZoneId.of(timeZoneResult.getResult()); - LocalDateTime localDateTime = LocalDateTime.now(zoneId); - ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId); - dateTimeFormatter = DateTimeFormatter.ofPattern("dd-MM HH:mm:ss z"); - time = new SimpleStringProperty(dateTimeFormatter.format(zonedDateTime)); - DateTimeFormatter timeZoneFormatter = DateTimeFormatter.ofPattern("z"); - timeZone = timeZoneFormatter.format(zonedDateTime); - } - - public void updateTime() { - LocalDateTime localDateTime = LocalDateTime.now(zoneId); - ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId); - time.setValue(dateTimeFormatter.format(zonedDateTime)); - } - - public String getTime() { - return time.get(); - } - - public StringProperty timeProperty() { - return time; - } - - public String getTimeZone() { - return timeZone; - } -} diff --git a/mock/src/test/java/seng302/Data/RaceDataTest.java b/mock/src/test/java/seng302/Data/RaceDataTest.java index 378e20ed..5f9ed54c 100644 --- a/mock/src/test/java/seng302/Data/RaceDataTest.java +++ b/mock/src/test/java/seng302/Data/RaceDataTest.java @@ -75,7 +75,7 @@ public class RaceDataTest { String newId = result.substring(result.indexOf("") + 8, result.indexOf("")); String newRaceType = result.substring(result.indexOf("") + 10, result.indexOf("")); - assertTrue(raceDataSource.getRaceId().equals(newId)); + assertTrue(raceDataSource.getRaceId() == Integer.parseInt(newId)); assertTrue(raceDataSource.getRaceType().equals(newRaceType)); } diff --git a/network/src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java b/network/src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java index 1a9d735b..6b27ed4d 100644 --- a/network/src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java +++ b/network/src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java @@ -30,7 +30,6 @@ public class AC35DumpReader { packets = new ArrayList<>(); - System.out.println(dump.length); readAllPackets(); }