fixed race clock countdown/count up #story[1109]

This commit is contained in:
Peter Galloway
2017-08-14 16:32:50 +12:00
parent d2fd9ebaea
commit ff92262a78
4 changed files with 18 additions and 22 deletions
+10 -13
View File
@@ -17,7 +17,7 @@ public class RaceState {
private double windSpeed; private double windSpeed;
private double windDirection; private double windDirection;
private long raceTime; private long serverSystemTime;
private long expectedStartTime; private long expectedStartTime;
private boolean isRaceStarted = false; private boolean isRaceStarted = false;
long timeTillStart; long timeTillStart;
@@ -28,7 +28,7 @@ public class RaceState {
public void updateState (RaceStatusData data) { public void updateState (RaceStatusData data) {
this.windSpeed = data.getWindSpeed(); this.windSpeed = data.getWindSpeed();
this.windDirection = data.getWindDirection(); this.windDirection = data.getWindDirection();
this.raceTime = data.getCurrentTime(); this.serverSystemTime = data.getCurrentTime();
this.expectedStartTime = data.getExpectedStartTime(); this.expectedStartTime = data.getExpectedStartTime();
this.isRaceStarted = data.isRaceStarted(); this.isRaceStarted = data.isRaceStarted();
} }
@@ -42,15 +42,16 @@ public class RaceState {
} }
public String getRaceTimeStr () { 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 () { public long getTimeTillStart () {
return (expectedStartTime - raceTime) / 1000; return (expectedStartTime - serverSystemTime);
}
public String getTimeTillStartStr () {
return DATE_TIME_FORMAT.format(getTimeTillStart() * 1000);
} }
public double getWindSpeed() { public double getWindSpeed() {
@@ -62,11 +63,7 @@ public class RaceState {
} }
public long getRaceTime() { public long getRaceTime() {
return raceTime; return serverSystemTime;
}
public long getExpectedStartTime() {
return expectedStartTime;
} }
public boolean isRaceStarted () { public boolean isRaceStarted () {
@@ -158,7 +158,7 @@ public class GameClient {
case RACE_STATUS: case RACE_STATUS:
processRaceStatusUpdate(StreamParser.extractRaceStatus(packet)); processRaceStatusUpdate(StreamParser.extractRaceStatus(packet));
if (raceState.getTimeTillStart() <= 5){ if (raceState.getTimeTillStart() <= 5000) {
startRaceIfAllDataReceived(); startRaceIfAllDataReceived();
} }
@@ -214,9 +214,8 @@ public class LobbyController {
} }
public void updateRaceState(RaceState raceState){ public void updateRaceState(RaceState raceState){
System.out.println(raceState.getTimeTillStart());
this.raceState = raceState; this.raceState = raceState;
timeUntilStart.setText(raceState.getTimeTillStartStr()); timeUntilStart.setText(raceState.getRaceTimeStr());
} }
public void disableReadyButton () { public void disableReadyButton () {
@@ -359,12 +359,12 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel
* Updates the clock for the race * Updates the clock for the race
*/ */
private void updateRaceTime() { private void updateRaceTime() {
if (!raceState.isRaceStarted()) { // if (!raceState.isRaceStarted()) {
timerLabel.setFill(Color.RED); // timerLabel.setFill(Color.RED);
timerLabel.setText("Race Finished!"); // timerLabel.setText("Race Finished!");
} else { // } else {
timerLabel.setText(raceState.getRaceTimeStr()); timerLabel.setText(raceState.getRaceTimeStr());
} // }
} }
/** /**