diff --git a/src/main/java/seng302/model/RaceState.java b/src/main/java/seng302/model/RaceState.java index a602a36b..d4e71971 100644 --- a/src/main/java/seng302/model/RaceState.java +++ b/src/main/java/seng302/model/RaceState.java @@ -17,7 +17,7 @@ public class RaceState { private double windSpeed; private double windDirection; - private long raceTime; + private long serverSystemTime; private long expectedStartTime; private boolean isRaceStarted = false; long timeTillStart; @@ -28,7 +28,7 @@ public class RaceState { public void updateState (RaceStatusData data) { this.windSpeed = data.getWindSpeed(); this.windDirection = data.getWindDirection(); - this.raceTime = data.getCurrentTime(); + this.serverSystemTime = data.getCurrentTime(); this.expectedStartTime = data.getExpectedStartTime(); this.isRaceStarted = data.isRaceStarted(); } @@ -42,15 +42,16 @@ public class RaceState { } public String getRaceTimeStr () { - return DATE_TIME_FORMAT.format(raceTime); + long raceTime = serverSystemTime - expectedStartTime; + if (raceTime < 0) { + return "-" + DATE_TIME_FORMAT.format(-1 * (raceTime - 1000)); + } else { + return DATE_TIME_FORMAT.format(serverSystemTime - expectedStartTime); + } } public long getTimeTillStart () { - return (expectedStartTime - raceTime) / 1000; - } - - public String getTimeTillStartStr () { - return DATE_TIME_FORMAT.format(getTimeTillStart() * 1000); + return (expectedStartTime - serverSystemTime); } public double getWindSpeed() { @@ -62,11 +63,7 @@ public class RaceState { } public long getRaceTime() { - return raceTime; - } - - public long getExpectedStartTime() { - return expectedStartTime; + return serverSystemTime; } public boolean isRaceStarted () { diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 2689135d..bcd1e2f9 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -158,7 +158,7 @@ public class GameClient { case RACE_STATUS: processRaceStatusUpdate(StreamParser.extractRaceStatus(packet)); - if (raceState.getTimeTillStart() <= 5){ + if (raceState.getTimeTillStart() <= 5000) { startRaceIfAllDataReceived(); } diff --git a/src/main/java/seng302/visualiser/controllers/LobbyController.java b/src/main/java/seng302/visualiser/controllers/LobbyController.java index 5f6af424..665826e2 100644 --- a/src/main/java/seng302/visualiser/controllers/LobbyController.java +++ b/src/main/java/seng302/visualiser/controllers/LobbyController.java @@ -214,9 +214,8 @@ public class LobbyController { } public void updateRaceState(RaceState raceState){ - System.out.println(raceState.getTimeTillStart()); this.raceState = raceState; - timeUntilStart.setText(raceState.getTimeTillStartStr()); + timeUntilStart.setText(raceState.getRaceTimeStr()); } public void disableReadyButton () { diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index 2a166081..351ead7d 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -359,12 +359,12 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel * Updates the clock for the race */ private void updateRaceTime() { - if (!raceState.isRaceStarted()) { - timerLabel.setFill(Color.RED); - timerLabel.setText("Race Finished!"); - } else { - timerLabel.setText(raceState.getRaceTimeStr()); - } +// if (!raceState.isRaceStarted()) { +// timerLabel.setFill(Color.RED); +// timerLabel.setText("Race Finished!"); +// } else { + timerLabel.setText(raceState.getRaceTimeStr()); +// } } /**