Update boat position according to boat location messages in StreamedRace
- Added StreamedRace constructor accepting VisualiserInput - Modified VisualiserInput constructor to accept Socket - Refactored controller setup of Race #story[782]
This commit is contained in:
@@ -3,6 +3,7 @@ package seng302.Controllers;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import seng302.RaceDataSource;
|
||||
import seng302.VisualiserInput;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
@@ -16,8 +17,8 @@ public class MainController extends Controller {
|
||||
@FXML
|
||||
RaceController raceController;
|
||||
|
||||
public void beginRace(int scaleFactor, RaceDataSource raceData) {
|
||||
raceController.startRace(scaleFactor, raceData);
|
||||
public void beginRace(VisualiserInput visualiserInput) {
|
||||
raceController.startRace(visualiserInput);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import seng302.Mock.StreamedRace;
|
||||
import seng302.Model.*;
|
||||
import seng302.RaceDataSource;
|
||||
import seng302.RaceXMLReader;
|
||||
import seng302.VisualiserInput;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import java.io.IOException;
|
||||
@@ -114,13 +115,13 @@ public class RaceController extends Controller {
|
||||
* Initializes and runs the race, based on the user's chosen scale factor
|
||||
* Currently uses an example racecourse
|
||||
*
|
||||
* @param scaleFactor scale value of race
|
||||
* @param visualiserInput
|
||||
*/
|
||||
public void startRace(int scaleFactor, RaceDataSource raceData) {
|
||||
StreamedRace newRace = new StreamedRace(raceData, this, scaleFactor);
|
||||
public void startRace(VisualiserInput visualiserInput) {
|
||||
StreamedRace newRace = new StreamedRace(visualiserInput, this);
|
||||
//newRace.initialiseBoats();
|
||||
|
||||
raceMap = new ResizableRaceCanvas(raceData);
|
||||
raceMap = new ResizableRaceCanvas(visualiserInput.getCourse());
|
||||
raceMap.setMouseTransparent(true);
|
||||
raceMap.widthProperty().bind(canvasBase.widthProperty());
|
||||
raceMap.heightProperty().bind(canvasBase.heightProperty());
|
||||
@@ -133,8 +134,8 @@ public class RaceController extends Controller {
|
||||
|
||||
//Initialize save annotation array, fps listener, and annotation listeners
|
||||
//timezone
|
||||
RaceClock raceClock = new RaceClock(raceData.getZonedDateTime());
|
||||
timeZone.setText(raceClock.getTimeZone());
|
||||
// RaceClock raceClock = new RaceClock(visualiserInput.getCourse().getZonedDateTime());
|
||||
// timeZone.setText(raceClock.getTimeZone());
|
||||
initializeFPS();
|
||||
initializeAnnotations();
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import seng302.RaceDataSource;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.URL;
|
||||
import java.text.ParseException;
|
||||
import java.util.List;
|
||||
@@ -53,6 +55,8 @@ public class StartController extends Controller implements Observer {
|
||||
private StreamedCourse raceData;
|
||||
private long timeLeft = 1;
|
||||
|
||||
private VisualiserInput visualiserInput;
|
||||
|
||||
/**
|
||||
* Begins the race with a scale factor of 15
|
||||
*/
|
||||
@@ -88,7 +92,7 @@ public class StartController extends Controller implements Observer {
|
||||
try {
|
||||
raceData = new StreamedCourse();
|
||||
raceData.addObserver(this);
|
||||
VisualiserInput visualiserInput = new VisualiserInput(raceData);
|
||||
visualiserInput = new VisualiserInput(new Socket("livedata.americascup.com", 4941), raceData);
|
||||
new Thread(visualiserInput).start();
|
||||
// StreamedCourse streamedCourse = new StreamedCourse(new BoatXMLReader("mockXML/boatXML/boatTest.xml"));
|
||||
// streamedCourse.setStreamedCourseXMLReader(new StreamedCourseXMLReader("mockXML/raceXML/raceTest.xml"));
|
||||
@@ -150,7 +154,7 @@ public class StartController extends Controller implements Observer {
|
||||
if (timeLeft <= 0) {
|
||||
updateTime("Race is starting...");
|
||||
stop();
|
||||
parent.beginRace(scaleFactor, raceData);
|
||||
parent.beginRace(visualiserInput);
|
||||
startWrapper.setVisible(false);
|
||||
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user