MarkRounding Message now sent out correctly.

Added submark seqID attribute to each mark of a compound mark from parsing xml
Added Rounding side attribute to each individual mark as read from the xml
RoundingSide enum now has a method to get Enum from String literal
Now store the closest mark to each yacht in each update for purpose of knowing which mark they round
Minor code tidying, Added logger to serverToClientThread, removed 'serverLog' method
removed obsolete code
This commit is contained in:
William Muir
2017-08-14 16:11:32 +12:00
parent 028fc44dce
commit 58446ffaed
18 changed files with 144 additions and 615 deletions
@@ -2,6 +2,7 @@ package seng302.model.mark;
import java.util.ArrayList;
import java.util.List;
import seng302.gameServer.server.messages.RoundingSide;
import seng302.model.GeoPoint;
import seng302.utilities.GeoUtility;
@@ -9,7 +10,6 @@ public class CompoundMark {
private int compoundMarkId;
private String name;
private List<Mark> marks = new ArrayList<>();
private GeoPoint midPoint;
@@ -55,6 +55,27 @@ public class CompoundMark {
this.name = name;
}
public void setRoundingSide(RoundingSide roundingSide) {
switch (roundingSide) {
case SP:
getSubMark(1).setRoundingSide(RoundingSide.STARBOARD);
getSubMark(2).setRoundingSide(RoundingSide.PORT);
break;
case PS:
getSubMark(1).setRoundingSide(RoundingSide.PORT);
getSubMark(2).setRoundingSide(RoundingSide.STARBOARD);
break;
case PORT:
getSubMark(1).setRoundingSide(RoundingSide.PORT);
break;
case STARBOARD:
getSubMark(1).setRoundingSide(RoundingSide.STARBOARD);
break;
}
}
/**
* Returns the mark contained in the compound mark. Marks are numbered 1 to n;
* @param singleMarkId the id of the desired mark contained in this compound mark.
+12 -5
View File
@@ -2,6 +2,7 @@ package seng302.model.mark;
import java.util.ArrayList;
import java.util.List;
import seng302.gameServer.server.messages.RoundingSide;
import seng302.model.GeoPoint;
/**
@@ -19,11 +20,13 @@ public class Mark extends GeoPoint {
private String name;
private int sourceID;
private List<PositionListener> positionListeners = new ArrayList<>();
private RoundingSide roundingSide;
public Mark(String name, double lat, double lng, int sourceID) {
public Mark(String name, int seqID, double lat, double lng, int sourceID) {
super(lat, lng);
this.name = name;
this.sourceID = sourceID;
this.seqID = seqID;
}
/**
@@ -39,10 +42,6 @@ public class Mark extends GeoPoint {
return seqID;
}
public void setSeqID(int seqID) {
this.seqID = seqID;
}
public String getName() {
return name;
}
@@ -55,6 +54,14 @@ public class Mark extends GeoPoint {
return sourceID;
}
public RoundingSide getRoundingSide() {
return roundingSide;
}
public void setRoundingSide(RoundingSide roundingSide) {
this.roundingSide = roundingSide;
}
public void setSourceID(int sourceID) {
this.sourceID = sourceID;
}
@@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import seng302.gameServer.server.messages.RoundingSide;
import seng302.model.stream.xml.generator.Race;
import seng302.model.stream.xml.parser.RaceXMLData;
import seng302.utilities.XMLGenerator;
@@ -104,6 +105,7 @@ public class MarkOrder {
for (Corner corner : corners){
CompoundMark compoundMark = marks.get(corner.getCompoundMarkID());
compoundMark.setRoundingSide(RoundingSide.getRoundingSide(corner.getRounding()));
course.add(compoundMark);
}