From 3785cd705f797b7ff87feccae03cdb119e8bfeeb Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Tue, 25 Jul 2017 15:08:10 +1200 Subject: [PATCH] Fixed wind speed and direction being sent correctly. #pair[kre39,mra106] #story[1036] --- .../seng302/controllers/LobbyController.java | 2 +- .../java/seng302/gameServer/GameState.java | 26 +++++++++---------- .../gameServer/ServerToClientThread.java | 5 ++-- .../server/messages/RaceStatusMessage.java | 9 ++++--- .../server/messages/WindDirection.java | 20 -------------- .../server_config/xml_templates/boats.ftlh | 5 ---- 6 files changed, 21 insertions(+), 46 deletions(-) delete mode 100644 src/main/java/seng302/server/messages/WindDirection.java diff --git a/src/main/java/seng302/controllers/LobbyController.java b/src/main/java/seng302/controllers/LobbyController.java index 10bdf35c..af2b0793 100644 --- a/src/main/java/seng302/controllers/LobbyController.java +++ b/src/main/java/seng302/controllers/LobbyController.java @@ -115,7 +115,7 @@ public class LobbyController implements Initializable, Observer{ } initialiseListView(); // initialiseLobbyControllerThread(); -// initialiseImageView(); // parrot gif init + initialiseImageView(); // parrot gif init // set up client state query thread, so that when it receives the race-started packet // it can switch to the race view diff --git a/src/main/java/seng302/gameServer/GameState.java b/src/main/java/seng302/gameServer/GameState.java index 7c1a9be1..b13942c5 100644 --- a/src/main/java/seng302/gameServer/GameState.java +++ b/src/main/java/seng302/gameServer/GameState.java @@ -86,40 +86,40 @@ public class GameState { public static void updateBoat(Integer sourceId, BoatActionType actionType) { Yacht playerYacht = yachts.get(sourceId); - System.out.println("-----------------------"); +// System.out.println("-----------------------"); switch (actionType) { case VMG: - System.out.println("Snapping to VMG"); +// System.out.println("Snapping to VMG"); // TODO: 22/07/17 wmu16 - Add in the vmg calculation code here break; case SAILS_IN: playerYacht.toggleSailIn(); - System.out.println("Toggling Sails"); +// System.out.println("Toggling Sails"); break; case SAILS_OUT: playerYacht.toggleSailIn(); - System.out.println("Toggling Sails"); +// System.out.println("Toggling Sails"); break; case TACK_GYBE: playerYacht.tackGybe(windDirection); - System.out.println("Tack/Gybe"); +// System.out.println("Tack/Gybe"); break; case UPWIND: playerYacht.turnUpwind(); - System.out.println("Moving upwind"); +// System.out.println("Moving upwind"); break; case DOWNWIND: playerYacht.turnDownwind(); - System.out.println("Moving downwind"); +// System.out.println("Moving downwind"); 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("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"); } public static void update() { diff --git a/src/main/java/seng302/gameServer/ServerToClientThread.java b/src/main/java/seng302/gameServer/ServerToClientThread.java index 85ce5713..b547c439 100644 --- a/src/main/java/seng302/gameServer/ServerToClientThread.java +++ b/src/main/java/seng302/gameServer/ServerToClientThread.java @@ -34,7 +34,6 @@ import java.util.zip.Checksum; import seng302.server.messages.RaceStatus; import seng302.server.messages.RaceStatusMessage; import seng302.server.messages.RaceType; -import seng302.server.messages.WindDirection; import seng302.server.messages.XMLMessage; import seng302.server.messages.XMLMessageSubType; import seng302.server.messages.XMLMessage; @@ -410,7 +409,7 @@ public class ServerToClientThread implements Runnable, Observer { raceStatus = RaceStatus.WARNING; } - sendMessage(new RaceStatusMessage(1, raceStatus, startTime, WindDirection.SOUTH, - 100, GameState.getPlayers().size(), RaceType.MATCH_RACE, 1, boatSubMessages)); + sendMessage(new RaceStatusMessage(1, raceStatus, startTime, GameState.getWindDirection(), + GameState.getWindSpeed().longValue(), GameState.getPlayers().size(), RaceType.MATCH_RACE, 1, boatSubMessages)); } } diff --git a/src/main/java/seng302/server/messages/RaceStatusMessage.java b/src/main/java/seng302/server/messages/RaceStatusMessage.java index 2375ba17..8d6183e8 100644 --- a/src/main/java/seng302/server/messages/RaceStatusMessage.java +++ b/src/main/java/seng302/server/messages/RaceStatusMessage.java @@ -9,12 +9,13 @@ public class RaceStatusMessage extends Message{ private final MessageType MESSAGE_TYPE = MessageType.RACE_STATUS; private final int MESSAGE_VERSION = 2; //Always set to 1 private final int MESSAGE_BASE_SIZE = 24; + private final double windDirFactor = 0x4000 / 90; private long currentTime; private long raceId; private RaceStatus raceStatus; private long expectedStartTime; - private WindDirection raceWindDirection; + private double raceWindDirection; private long windSpeed; private long numBoatsInRace; private RaceType raceType; @@ -33,13 +34,13 @@ public class RaceStatusMessage extends Message{ * @param sourceId The source of this message * @param boats A list of boat status sub messages */ - public RaceStatusMessage(long raceId, RaceStatus raceStatus, long expectedStartTime, WindDirection raceWindDirection, + public RaceStatusMessage(long raceId, RaceStatus raceStatus, long expectedStartTime, double raceWindDirection, long windSpeed, long numBoatsInRace, RaceType raceType, long sourceId, List boats){ currentTime = System.currentTimeMillis(); this.raceId = raceId; this.raceStatus = raceStatus; this.expectedStartTime = expectedStartTime; - this.raceWindDirection = raceWindDirection; + this.raceWindDirection = raceWindDirection * windDirFactor; this.windSpeed = windSpeed; this.numBoatsInRace = numBoatsInRace; this.raceType = raceType; @@ -55,7 +56,7 @@ public class RaceStatusMessage extends Message{ putInt((int) raceId, 4); putByte((byte) raceStatus.getCode()); putInt(expectedStartTime, 6); - putInt((int) raceWindDirection.getCode(), 2); + putInt((int) this.raceWindDirection, 2); putInt((int) windSpeed, 2); putByte((byte) numBoatsInRace); putByte((byte) raceType.getCode()); diff --git a/src/main/java/seng302/server/messages/WindDirection.java b/src/main/java/seng302/server/messages/WindDirection.java deleted file mode 100644 index c0b8d767..00000000 --- a/src/main/java/seng302/server/messages/WindDirection.java +++ /dev/null @@ -1,20 +0,0 @@ -package seng302.server.messages; - -/** - * Enum containing the supported wind directions - */ -public enum WindDirection { - NORTH(0x0000L), - EAST(0x4000L), - SOUTH(0x8000L); - - private long code; - - WindDirection(long code) { - this.code = code; - } - - public long getCode() { - return code; - } -} diff --git a/src/main/resources/server_config/xml_templates/boats.ftlh b/src/main/resources/server_config/xml_templates/boats.ftlh index f619e115..f9a1e2d0 100644 --- a/src/main/resources/server_config/xml_templates/boats.ftlh +++ b/src/main/resources/server_config/xml_templates/boats.ftlh @@ -1,24 +1,19 @@ - 2012-05-17T07:49:40+0200 12 - - <#-- Not used --> - <#list boats as boat> -