diff --git a/src/main/java/seng302/Model/Boat.java b/src/main/java/seng302/Model/Boat.java index 866de7dc..5da81224 100644 --- a/src/main/java/seng302/Model/Boat.java +++ b/src/main/java/seng302/Model/Boat.java @@ -54,7 +54,7 @@ public class Boat { */ public void setVelocity(double velocity) { this.velocity = velocity; - this.velocityProp.setValue(velocity); + this.velocityProp.setValue(String.valueOf(Math.round(velocity))); } /** diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index 72906939..fbe0fce9 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -23,6 +23,7 @@ public class BoatInRace extends Boat { private Color colour; private boolean finished = false; private StringProperty currentLegName; + private boolean started = false; /** * Constructor method. @@ -221,4 +222,11 @@ public class BoatInRace extends Boat { this.finished = bool; } + public boolean isStarted() { + return started; + } + + public void setStarted(boolean started) { + this.started = started; + } } diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index 8c8d9c99..100c12c1 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -98,7 +98,7 @@ public abstract class Race implements Runnable { for (int i = 0; i < startingBoats.size(); i++) { if (startingBoats.get(i) != null) { System.out.println(i + 1 + ". " + startingBoats.get(i).toString() + ", Speed: " - + Math.round(startingBoats.get(i).getVelocity() * 1.94384) + "kn"); + + Math.round(startingBoats.get(i).getVelocity()) + "kn"); startingBoats.get(i).setCurrentLeg(legs.get(0)); } } @@ -165,16 +165,6 @@ public abstract class Race implements Runnable { */ protected void updateTime(String time){ Platform.runLater(() -> {controller.setTimer(time);}); -======= - * Updates the GUI race clock - * @param time - */ - protected void updateTime(String time) { - - Platform.runLater(() -> { - controller.setTimer(time); - }); ->>>>>>> Temporary merge branch 2 } /** @@ -198,6 +188,10 @@ public abstract class Race implements Runnable { System.setProperty("javafx.animation.fullspeed", "true"); + for (BoatInRace boat: startingBoats){ + boat.setStarted(true); + } + new AnimationTimer() { long timeRaceStarted = System.currentTimeMillis(); //start time of loop diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index c2d0cad4..5ea25415 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -210,17 +210,7 @@ public class ResizableRaceCanvas extends Canvas { displayLine(startline1, startline2, Color.GREEN); - - if (boats != null) { - for (BoatInRace boat : boats) { - if (boat != null) { -// System.out.print("Drawing Boat At: " + boat.getCurrentPosition()); - displayPoint(this.map.convertGPS(boat.getCurrentPosition()), boat.getColour()); - if (raceAnno){ - displayText(boat.getAbbrev(), boat.getVelocity(), this.map.convertGPS(boat.getCurrentPosition()));} - } - } - } + updateBoats(); //display wind direction arrow - specify origin point and angle - angle now set to random angle displayArrow(new GraphCoordinate((int)getWidth()-40, 40), 150); @@ -244,13 +234,15 @@ public class ResizableRaceCanvas extends Canvas { if (boats != null) { for (BoatInRace boat : boats) { boolean finished = boat.getCurrentLeg().getName().equals("Finish") || boat.getCurrentLeg().getName().equals("DNF"); - if (!finished) { + boolean isStart = boat.isStarted(); + if (!finished && isStart) { displayBoat(boat, boat.calculateHeading()); GraphCoordinate wakeFrom = this.map.convertGPS(boat.getCurrentPosition()); GraphCoordinate wakeTo = this.map.convertGPS(boat.getWake()); displayLine(wakeFrom, wakeTo, boat.getColour()); - } - else { + } else if (!isStart){ + displayBoat(boat, boat.calculateHeading()); + } else { displayBoat(boat, 0); } diff --git a/src/main/java/seng302/RaceXMLReader.java b/src/main/java/seng302/RaceXMLReader.java index 746e48f5..aeb0063b 100644 --- a/src/main/java/seng302/RaceXMLReader.java +++ b/src/main/java/seng302/RaceXMLReader.java @@ -35,8 +35,8 @@ public class RaceXMLReader extends XMLReader{ private void read(){ readCourse(); - readBoats(); readLegs(); + readBoats(); } public void readBoats(){ @@ -50,6 +50,9 @@ public class RaceXMLReader extends XMLReader{ //System.out.println(String.format("%s, %s, %s",name, abbrev, velo)); BoatInRace boat = new BoatInRace(name, velo, colors[i], abbrev); boat.setCurrentPosition(startPt1); + if (legs.size() > 0){ + boat.setCurrentLeg(legs.get(0)); + } boats.add(boat); } } diff --git a/src/main/resources/raceXML/bermuda_AC35.xml b/src/main/resources/raceXML/bermuda_AC35.xml index f818ebd8..bf75e809 100644 --- a/src/main/resources/raceXML/bermuda_AC35.xml +++ b/src/main/resources/raceXML/bermuda_AC35.xml @@ -2,37 +2,37 @@ ORACLE TEAM USA - 300 + 30 USA BLUEVIOLET Land Rover BAR - 500 + 50 GBR BLACK SoftBank Team Japan - 400 + 40 JPN RED Groupama Team France - 350 + 35 FRA ORANGE Artemis Racing - 440 + 44 SWE DARKOLIVEGREEN Emirates Team New Zealand - 620 + 62 NZL LIMEGREEN diff --git a/src/main/resources/scenes/racepane.fxml b/src/main/resources/scenes/racepane.fxml index 9d409ab4..c939fdea 100644 --- a/src/main/resources/scenes/racepane.fxml +++ b/src/main/resources/scenes/racepane.fxml @@ -98,5 +98,4 @@ ->>>>>>> Temporary merge branch 2