Merge remote-tracking branch 'origin/master'
# Conflicts: # src/main/java/seng302/Controllers/RaceController.java
This commit is contained in:
@@ -4,10 +4,7 @@ package seng302.Controllers;
|
||||
import javafx.beans.property.ReadOnlyObjectWrapper;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.layout.GridPane;
|
||||
@@ -103,14 +100,11 @@ public class RaceController extends Controller {
|
||||
@Override
|
||||
public void initialize(URL location, ResourceBundle resources) {
|
||||
//listener for fps
|
||||
showFPS.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
||||
public void changed(ObservableValue<? extends Boolean> ov,
|
||||
Boolean old_val, Boolean new_val) {
|
||||
if (showFPS.isSelected()) {
|
||||
FPS.setVisible(true);
|
||||
} else {
|
||||
FPS.setVisible(false);
|
||||
}
|
||||
showFPS.selectedProperty().addListener((ov, old_val, new_val) -> {
|
||||
if (showFPS.isSelected()) {
|
||||
FPS.setVisible(true);
|
||||
} else {
|
||||
FPS.setVisible(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -141,7 +135,6 @@ public class RaceController extends Controller {
|
||||
//timezone
|
||||
RaceClock raceClock = new RaceClock(raceData.getMark());
|
||||
timeZone.setText(raceClock.getTimeZone());
|
||||
|
||||
initializeFPS();
|
||||
initializeAnnotations();
|
||||
|
||||
@@ -172,14 +165,11 @@ public class RaceController extends Controller {
|
||||
*/
|
||||
private void initializeFPS() {
|
||||
showFPS.setVisible(true);
|
||||
showFPS.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
||||
public void changed(ObservableValue<? extends Boolean> ov,
|
||||
Boolean old_val, Boolean new_val) {
|
||||
if (showFPS.isSelected()) {
|
||||
FPS.setVisible(true);
|
||||
} else {
|
||||
FPS.setVisible(false);
|
||||
}
|
||||
showFPS.selectedProperty().addListener((ov, old_val, new_val) -> {
|
||||
if (showFPS.isSelected()) {
|
||||
FPS.setVisible(true);
|
||||
} else {
|
||||
FPS.setVisible(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -190,68 +180,47 @@ public class RaceController extends Controller {
|
||||
private void initializeAnnotations() {
|
||||
presetAnno = new ArrayList<>();
|
||||
//listener for annotation
|
||||
showAnnotations.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
||||
public void changed(ObservableValue<? extends Boolean> ov,
|
||||
Boolean old_val, Boolean new_val) {
|
||||
raceMap.toggleAnnotations();
|
||||
raceMap.update();
|
||||
}
|
||||
showAnnotations.selectedProperty().addListener((ov, old_val, new_val) -> {
|
||||
raceMap.toggleAnnotations();
|
||||
raceMap.update();
|
||||
});
|
||||
//listener for show name in annotation
|
||||
showName.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
||||
public void changed(ObservableValue<? extends Boolean> ov,
|
||||
Boolean old_val, Boolean new_val) {
|
||||
raceMap.toggleAnnoName();
|
||||
raceMap.update();
|
||||
}
|
||||
showName.selectedProperty().addListener((ov, old_val, new_val) -> {
|
||||
raceMap.toggleAnnoName();
|
||||
raceMap.update();
|
||||
});
|
||||
//listener for show abbreviation for annotation
|
||||
showAbbrev.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
||||
public void changed(ObservableValue<? extends Boolean> ov,
|
||||
Boolean old_val, Boolean new_val) {
|
||||
raceMap.toggleAnnoAbbrev();
|
||||
raceMap.update();
|
||||
}
|
||||
showAbbrev.selectedProperty().addListener((ov, old_val, new_val) -> {
|
||||
raceMap.toggleAnnoAbbrev();
|
||||
raceMap.update();
|
||||
});
|
||||
|
||||
//listener for show abbreviation for annotation
|
||||
showBoatPath.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
||||
public void changed(ObservableValue<? extends Boolean> ov,
|
||||
Boolean old_val, Boolean new_val) {
|
||||
raceMap.toggleBoatPath();
|
||||
raceMap.update();
|
||||
}
|
||||
//listener for show boat path for annotation
|
||||
showBoatPath.selectedProperty().addListener((ov, old_val, new_val) -> {
|
||||
raceMap.toggleBoatPath();
|
||||
raceMap.update();
|
||||
});
|
||||
//listener to show speed for annotation
|
||||
showSpeed.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
||||
public void changed(ObservableValue<? extends Boolean> ov,
|
||||
Boolean old_val, Boolean new_val) {
|
||||
raceMap.toggleAnnoSpeed();
|
||||
raceMap.update();
|
||||
}
|
||||
showSpeed.selectedProperty().addListener((ov, old_val, new_val) -> {
|
||||
raceMap.toggleAnnoSpeed();
|
||||
raceMap.update();
|
||||
});
|
||||
//listener to save currently selected annotation
|
||||
saveAnno.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
presetAnno.clear();
|
||||
presetAnno.add(showName.isSelected());
|
||||
presetAnno.add(showAbbrev.isSelected());
|
||||
presetAnno.add(showSpeed.isSelected());
|
||||
presetAnno.add(showBoatPath.isSelected());
|
||||
}
|
||||
saveAnno.setOnAction(event -> {
|
||||
presetAnno.clear();
|
||||
presetAnno.add(showName.isSelected());
|
||||
presetAnno.add(showAbbrev.isSelected());
|
||||
presetAnno.add(showSpeed.isSelected());
|
||||
presetAnno.add(showBoatPath.isSelected());
|
||||
});
|
||||
//listener to show saved annotation
|
||||
showSetAnno.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
if (presetAnno.size() > 0) {
|
||||
showName.setSelected(presetAnno.get(0));
|
||||
showAbbrev.setSelected(presetAnno.get(1));
|
||||
showSpeed.setSelected(presetAnno.get(2));
|
||||
showBoatPath.setSelected(presetAnno.get(3));
|
||||
raceMap.update();
|
||||
}
|
||||
showSetAnno.setOnAction(event -> {
|
||||
if (presetAnno.size() > 0) {
|
||||
showName.setSelected(presetAnno.get(0));
|
||||
showAbbrev.setSelected(presetAnno.get(1));
|
||||
showSpeed.setSelected(presetAnno.get(2));
|
||||
showBoatPath.setSelected(presetAnno.get(3));
|
||||
raceMap.update();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -302,10 +302,18 @@ public class BoatInRace extends Boat {
|
||||
this.trackVisible = trackVisible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get base track point time interval
|
||||
* @return base track point time interval
|
||||
*/
|
||||
public static float getBaseTrackPointTimeInterval() {
|
||||
return BASE_TRACK_POINT_TIME_INTERVAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set track point time interval
|
||||
* @param value track point time interval value
|
||||
*/
|
||||
public static void setTrackPointTimeInterval(float value) {
|
||||
trackPointTimeInterval = value;
|
||||
}
|
||||
|
||||
@@ -28,10 +28,8 @@ public abstract class Race implements Runnable {
|
||||
protected int boatsFinished = 0;
|
||||
protected long totalTimeElapsed;
|
||||
private int dnfChance = 1; //%percentage chance a boat fails at each checkpoint
|
||||
|
||||
private int lastFPS = 20;
|
||||
|
||||
|
||||
protected int scaleFactor;
|
||||
|
||||
private int SLEEP_TIME = 100; //time in milliseconds to pause in a paced loop
|
||||
@@ -195,6 +193,10 @@ public abstract class Race implements Runnable {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Randomly generate number to see if boat fails
|
||||
* @return True if number lower than dnfChance else false
|
||||
*/
|
||||
private boolean doNotFinish() {
|
||||
Random rand = new Random();
|
||||
return rand.nextInt(100) < dnfChance;
|
||||
|
||||
@@ -347,7 +347,7 @@ public class ResizableRaceCanvas extends Canvas {
|
||||
* @see seng302.Model.TrackPoint
|
||||
*/
|
||||
private void drawTrack(BoatInRace boat) {
|
||||
if (annoPath) {
|
||||
if (annoPath && raceAnno) {
|
||||
for (TrackPoint point : boat.getTrack()) {
|
||||
GraphCoordinate scaledCoordinate = this.map.convertGPS(point.getCoordinate());
|
||||
Color boatColour = boat.getColour();
|
||||
|
||||
Reference in New Issue
Block a user