|
|
|
|
@ -71,15 +71,6 @@ public class InGameLobbyController extends Controller {
|
|
|
|
|
@FXML
|
|
|
|
|
private Label playerLabel6;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private Label countdownLabel;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private AnchorPane countdownTenPane;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private Label countdownTenText;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private Button startButton;
|
|
|
|
|
|
|
|
|
|
@ -216,37 +207,13 @@ public class InGameLobbyController extends Controller {
|
|
|
|
|
* Starts the race.
|
|
|
|
|
*/
|
|
|
|
|
private void startRace() {
|
|
|
|
|
//Initialises the race clock.
|
|
|
|
|
initialiseRaceClock(this.visualiserRaceEvent.getVisualiserRaceState());
|
|
|
|
|
|
|
|
|
|
//Starts the race countdown timer.
|
|
|
|
|
countdownTimer();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Initialises the race clock/timer labels for the start time, current time, and remaining time.
|
|
|
|
|
* @param visualiserRace The race to get data from.
|
|
|
|
|
*/
|
|
|
|
|
private void initialiseRaceClock(VisualiserRaceState visualiserRace) {
|
|
|
|
|
//Remaining time.
|
|
|
|
|
initialiseRaceClockDuration(visualiserRace);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Initialises the race duration label.
|
|
|
|
|
* @param visualiserRace The race to get data from.
|
|
|
|
|
*/
|
|
|
|
|
private void initialiseRaceClockDuration(VisualiserRaceState visualiserRace) {
|
|
|
|
|
|
|
|
|
|
visualiserRace.getRaceClock().durationProperty().addListener((observable, oldValue, newValue) -> {
|
|
|
|
|
Platform.runLater(() -> {
|
|
|
|
|
countdownLabel.setText(newValue);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Countdown timer until race starts.
|
|
|
|
|
*/
|
|
|
|
|
@ -257,18 +224,6 @@ public class InGameLobbyController extends Controller {
|
|
|
|
|
//Get the current race status.
|
|
|
|
|
RaceStatusEnum raceStatus = visualiserRaceEvent.getVisualiserRaceState().getRaceStatusEnum();
|
|
|
|
|
|
|
|
|
|
//Try catch for getting interval times
|
|
|
|
|
try {
|
|
|
|
|
long interval = ChronoUnit.MILLIS.between(visualiserRaceEvent.getVisualiserRaceState().getRaceClock().getCurrentTime(), visualiserRaceEvent.getVisualiserRaceState().getRaceClock().getStartingTime());
|
|
|
|
|
if(interval<=10000){
|
|
|
|
|
countdownLabel.setVisible(false);
|
|
|
|
|
countdownTenPane.setVisible(true);
|
|
|
|
|
countdownTenText.setVisible(true);
|
|
|
|
|
}
|
|
|
|
|
countdownText(interval);
|
|
|
|
|
} catch (Exception e){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//If the race has reached the preparatory phase, or has started...
|
|
|
|
|
if (raceStatus == RaceStatusEnum.PREPARATORY || raceStatus == RaceStatusEnum.STARTED) {
|
|
|
|
|
@ -370,48 +325,5 @@ public class InGameLobbyController extends Controller {
|
|
|
|
|
//System.out.println("Empty race user pane pressed. Joining racers");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Countdown interval checker that updates the countdown text
|
|
|
|
|
* @param interval Countdown interval to check
|
|
|
|
|
*/
|
|
|
|
|
private void countdownText(long interval){
|
|
|
|
|
countdownTenPane.setVisible(false);
|
|
|
|
|
//Do nothing if 5 seconds or less to go
|
|
|
|
|
if (interval <=5000){
|
|
|
|
|
countdownTenPane.setVisible(false);
|
|
|
|
|
//countdownTenText.setText("5");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//6 seconds left. Display 1 second for countdown
|
|
|
|
|
if (interval <=6000){
|
|
|
|
|
countdownTenText.setText("1");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//7 seconds left. Display 2 seconds for countdown
|
|
|
|
|
if (interval <=7000){
|
|
|
|
|
countdownTenText.setText("2");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//8 seconds left. Display 3 seconds for countdown
|
|
|
|
|
if (interval <=8000){
|
|
|
|
|
countdownTenText.setText("3");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//9 seconds left. Display 4 seconds for countdown
|
|
|
|
|
if (interval <=9000){
|
|
|
|
|
countdownTenText.setText("4");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//10 seconds left. Display 5 seconds for countdown
|
|
|
|
|
if (interval <=10000){
|
|
|
|
|
countdownTenText.setText("5");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|