Merge remote-tracking branch 'origin/master' into story_51_rounding_fix

# Conflicts:
#	racevisionGame/src/main/java/mock/app/Event.java
#	racevisionGame/src/main/java/mock/model/MockRace.java
#	racevisionGame/src/main/java/shared/model/Constants.java
This commit is contained in:
fjc40
2017-09-13 13:30:51 +12:00
25 changed files with 314 additions and 139 deletions
@@ -403,10 +403,6 @@ public class Boat extends Collider {
public boolean isSailsOut() {
return sailsOut;
}
public void bounce(double repulsionRadius) {
Azimuth reverseAzimuth = Azimuth.fromDegrees(getBearing().degrees() - 180d);
setPosition(GPSCoordinate.calculateNewPosition(getPosition(), 2 * repulsionRadius, reverseAzimuth));
}
@Override
public boolean rayCast(Boat boat) {
@@ -416,9 +412,11 @@ public class Boat extends Collider {
}
@Override
public void onCollisionEnter(Boat collider, Collision e) {
public void onCollisionEnter(Collision e) {
if(e.getBearing().degrees() > 270 || e.getBearing().degrees() < 90) {
collider.bounce(100);
// Notify observers of collision
this.setChanged();
notifyObservers(e);
}
}
}
@@ -5,7 +5,6 @@ package shared.model;
* Created by Erika on 19-Mar-17.
*/
public class Constants {
/**
* Multiply by this factor to convert nautical miles to meters.
* <br>
@@ -15,8 +14,6 @@ public class Constants {
*/
public static final int NMToMetersConversion = 1852;
/**
* Multiply by this factor to convert Knots to millimeters per second.
* <br>
@@ -26,8 +23,6 @@ public class Constants {
*/
public static final double KnotsToMMPerSecond = 514.444;
/**
* The scale factor of the race.
* Frame periods are multiplied by this to get the amount of time a single frame represents.
@@ -36,22 +31,16 @@ public class Constants {
public static final int RaceTimeScale = 10;
/**
* The race pre-start time, in milliseconds.
* The race pre-start time, in milliseconds. 30 seconds.
* Official time is 3 minutes.
*/
public static final long RacePreStartTime = 30 * 1000;
/**
* The race preparatory time, in milliseconds. 10 seconds.
* Official time is 1 minute.
*/
public static final long RacePreparatoryTime = 10 * 1000;
/**
* The number of milliseconds in one hour.
* <br>
@@ -69,7 +58,4 @@ public class Constants {
* Divide by this factor to convert hours to seconds.
*/
public static long OneHourSeconds = 1 * 60 * 60;
}
@@ -101,7 +101,8 @@ public class Mark extends Collider{
}
@Override
public void onCollisionEnter(Boat collider, Collision e) {
collider.bounce(repulsionRadius);
public void onCollisionEnter(Collision e) {
this.setChanged();
notifyObservers(e);
}
}
@@ -13,6 +13,7 @@ import shared.dataInput.RegattaDataSource;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
/**
@@ -20,7 +21,7 @@ import java.util.List;
* This is a base class inherited by {@link mock.model.MockRace} and {@link visualiser.model.VisualiserRaceState}.
* Has a course, state, wind, boundaries, etc.... Boats are added by inheriting classes (see {@link Boat}, {@link mock.model.MockBoat}, {@link visualiser.model.VisualiserBoat}.
*/
public abstract class RaceState {
public abstract class RaceState extends Observable{