mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Merge remote-tracking branch 'origin/Story62_Creating_Game_Loop' into Story62_Creating_Game_Loop
# Conflicts: # src/main/java/seng302/gameServer/GameState.java
This commit is contained in:
@@ -66,6 +66,14 @@ public class GameState {
|
||||
GameState.currentStage = currentStage;
|
||||
}
|
||||
|
||||
public static Double getWindDirection() {
|
||||
return windDirection;
|
||||
}
|
||||
|
||||
public static Double getWindSpeed() {
|
||||
return windSpeed;
|
||||
}
|
||||
|
||||
public static void updateBoat(Integer sourceId, BoatActionType actionType) {
|
||||
switch (actionType) {
|
||||
case VMG:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package seng302.models;
|
||||
|
||||
import java.io.*;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -140,7 +143,7 @@ public final class PolarTable {
|
||||
}
|
||||
|
||||
|
||||
private static Double getClosestMatch(Double thisWindSpeed) {
|
||||
public static Double getClosestMatch(Double thisWindSpeed) {
|
||||
|
||||
ArrayList<Double> windValues = new ArrayList<>(polarTable.keySet());
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ package seng302.models;
|
||||
|
||||
import static seng302.utilities.GeoUtility.getGeoCoordinate;
|
||||
|
||||
import javafx.scene.paint.Color;
|
||||
import seng302.models.mark.Mark;
|
||||
import seng302.controllers.RaceViewController;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Map;
|
||||
import javafx.scene.paint.Color;
|
||||
import seng302.controllers.RaceViewController;
|
||||
import seng302.models.mark.Mark;
|
||||
import seng302.utilities.GeoPoint;
|
||||
|
||||
/**
|
||||
@@ -96,6 +96,32 @@ public class Yacht {
|
||||
location = getGeoCoordinate(location, heading, metersCovered);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjusts the yachts velocity based on the wind direction and speed from the polar table.
|
||||
*
|
||||
* @param windDir current wind Direction TODO: 20/07/17 ajm412: (TWA or AWA, not 100% sure?)
|
||||
* @param windSpd current wind Speed
|
||||
*/
|
||||
public void updateYachtVelocity(Double windDir, Double windSpd) {
|
||||
Double closestSpd = PolarTable.getClosestMatch(windSpd);
|
||||
Map<Double, Double> polarsFromClosestSpd = PolarTable.getPolarTable().get(closestSpd);
|
||||
|
||||
Double closest = 0d;
|
||||
Double closest_key = 0d;
|
||||
|
||||
for (Double key : polarsFromClosestSpd.keySet()) {
|
||||
Double difference = Math.abs(key - windDir);
|
||||
if (difference <= closest) {
|
||||
closest = difference;
|
||||
closest_key = key;
|
||||
}
|
||||
}
|
||||
// System.out.println("Closest angle " + closest_key);
|
||||
// System.out.println("WindDir " + windDir);
|
||||
velocity = polarsFromClosestSpd.get(closest_key);
|
||||
}
|
||||
|
||||
|
||||
public String getBoatType() {
|
||||
return boatType;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user