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