Polar velocities should now work as intended.

Snapping to VMG still needs to be implemented.
Still an issue of not being able to pass the total upwind or downwind point

tags: #story[986]
This commit is contained in:
William Muir
2017-07-25 22:19:03 +12:00
parent c8a96dcce9
commit a56dac1e87
5 changed files with 46 additions and 32 deletions
@@ -2,6 +2,7 @@ package seng302.gameServer;
import java.util.*;
import seng302.client.ClientPacketParser;
import seng302.models.Player;
import seng302.models.Yacht;
@@ -80,10 +81,14 @@ public class GameState {
return windDirection;
}
public static Double getWindSpeed() {
public static Double getWindSpeedMMS() {
return windSpeed;
}
public static Double getWindSpeedKnots() {
return windSpeed / 1000 * ClientPacketParser.MS_TO_KNOTS;
}
public static Map<Integer, Yacht> getYachts() {
return yachts;
}
@@ -93,6 +98,7 @@ public class GameState {
// System.out.println("-----------------------");
switch (actionType) {
case VMG:
playerYacht.turnToVMG();
// System.out.println("Snapping to VMG");
// TODO: 22/07/17 wmu16 - Add in the vmg calculation code here
break;
@@ -118,12 +124,13 @@ public class GameState {
break;
}
// System.out.println("-----------------------");
// System.out.println("Heading: " + playerYacht.getHeading());
// System.out.println("Sails are in: " + playerYacht.getSailIn());
// System.out.println("Lat: " + playerYacht.getLocation().getLat());
// System.out.println("Lng: " + playerYacht.getLocation().getLng());
// System.out.println("-----------------------\n");
System.out.println("-----------------------");
System.out.println("Sails are in: " + playerYacht.getSailIn());
System.out.println("Heading: " + playerYacht.getHeading());
System.out.println("Velocity: " + playerYacht.getVelocityMMS() / 1000);
System.out.println("Lat: " + playerYacht.getLocation().getLat());
System.out.println("Lng: " + playerYacht.getLocation().getLng());
System.out.println("-----------------------\n");
}
public static void update() {
@@ -12,10 +12,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import java.util.Random;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
import org.apache.commons.io.IOUtils;
import seng302.models.Player;
import seng302.models.Yacht;
import seng302.models.stream.packets.PacketType;
@@ -29,18 +28,11 @@ import seng302.server.messages.BoatStatus;
import seng302.server.messages.BoatSubMessage;
import seng302.server.messages.Message;
import java.io.*;
import java.net.Socket;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
import seng302.server.messages.RaceStatus;
import seng302.server.messages.RaceStatusMessage;
import seng302.server.messages.RaceType;
import seng302.server.messages.XMLMessage;
import seng302.server.messages.XMLMessageSubType;
import seng302.server.messages.XMLMessage;
import seng302.server.messages.XMLMessageSubType;
import seng302.utilities.GeoPoint;
/**
* A class describing a single connection to a Client for the purposes of sending and receiving on
@@ -306,7 +298,7 @@ public class ServerToClientThread implements Runnable, Observer {
yacht.getLocation().getLat(),
yacht.getLocation().getLng(),
yacht.getHeading(),
(long) yacht.getVelocity());
(long) yacht.getVelocityMMS());
sendMessage(boatLocationMessage);
}
@@ -348,7 +340,7 @@ public class ServerToClientThread implements Runnable, Observer {
}
sendMessage(new RaceStatusMessage(1, raceStatus, startTime, GameState.getWindDirection(),
GameState.getWindSpeed().longValue(), GameState.getPlayers().size(),
GameState.getWindSpeedMMS().longValue(), GameState.getPlayers().size(),
RaceType.MATCH_RACE, 1, boatSubMessages));
}