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:
@@ -6,7 +6,10 @@ import seng302.Constants;
|
||||
import seng302.Controllers.RaceController;
|
||||
import seng302.GPSCoordinate;
|
||||
import seng302.Model.*;
|
||||
import seng302.Networking.MessageDecoders.BoatLocationDecoder;
|
||||
import seng302.Networking.Utils.BoatLocationMessage;
|
||||
import seng302.RaceDataSource;
|
||||
import seng302.VisualiserInput;
|
||||
|
||||
import java.awt.geom.Point2D;
|
||||
import java.util.*;
|
||||
@@ -15,12 +18,12 @@ import java.util.*;
|
||||
* Created by jjg64 on 21/04/17.
|
||||
*/
|
||||
public class StreamedRace extends Race {
|
||||
private RaceDataSource raceData;
|
||||
private VisualiserInput visualiserInput;
|
||||
private double MMPS_TO_KN = 0.001944;
|
||||
|
||||
public StreamedRace(RaceDataSource raceData, RaceController controller, int scaleFactor) {
|
||||
super(raceData.getBoats(), raceData.getLegs(), controller, scaleFactor);
|
||||
this.raceData = raceData;
|
||||
this.scaleFactor = 1; // There will be no scaling in a live streamed race
|
||||
public StreamedRace(VisualiserInput visualiserInput, RaceController controller) {
|
||||
super(visualiserInput.getCourse(), controller, 1);
|
||||
this.visualiserInput = visualiserInput;
|
||||
}
|
||||
|
||||
public void initialiseBoats() {
|
||||
@@ -72,8 +75,16 @@ public class StreamedRace extends Race {
|
||||
* @param millisecondsElapsed time since last update
|
||||
*/
|
||||
protected void updatePosition(Boat boat, int millisecondsElapsed) {
|
||||
//TODO Grab info from network
|
||||
// setPosition(boat, coordinate);
|
||||
int sourceID = boat.getSourceID();
|
||||
BoatLocationMessage boatLocationMessage = visualiserInput.getBoatLocationMessage(sourceID);
|
||||
if(boatLocationMessage != null) {
|
||||
System.out.println(sourceID);
|
||||
double lat = boatLocationMessage.getLatitudeDouble();
|
||||
double lon = boatLocationMessage.getLongitudeDouble();
|
||||
boat.setCurrentPosition(new GPSCoordinate(lat, lon));
|
||||
boat.setHeading(boatLocationMessage.getHeadingDegrees());
|
||||
boat.setVelocity(boatLocationMessage.getBoatSpeed() * MMPS_TO_KN);
|
||||
}
|
||||
}
|
||||
|
||||
protected void setPosition(Boat boat, GPSCoordinate coordinate) {
|
||||
|
||||
Reference in New Issue
Block a user