mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Marks and gates correctly displaying from XML messages and mark(boat) position packets. Will need a little polishing but marks and gates are moving around.
#story[923] #pair[ajm412, ptg19]
This commit is contained in:
@@ -223,7 +223,7 @@ public class CanvasController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateMarkGroup (long raceId, MarkGroup markGroup) {
|
private void UpdateMarkGroup (long raceId, MarkGroup markGroup) {
|
||||||
PriorityBlockingQueue<BoatPositionPacket> movementQueue = StreamParser.markPositions.get(raceId);
|
PriorityBlockingQueue<BoatPositionPacket> movementQueue = StreamParser.markPositions.get(raceId);
|
||||||
if (movementQueue.size() > 0){
|
if (movementQueue.size() > 0){
|
||||||
try {
|
try {
|
||||||
@@ -260,13 +260,12 @@ public class CanvasController {
|
|||||||
if (mark.getMarkType() == MarkType.SINGLE_MARK) {
|
if (mark.getMarkType() == MarkType.SINGLE_MARK) {
|
||||||
SingleMark sMark = (SingleMark) mark;
|
SingleMark sMark = (SingleMark) mark;
|
||||||
|
|
||||||
MarkGroup markGroup = new MarkGroup(mark, findScaledXY(sMark));
|
MarkGroup markGroup = new MarkGroup(sMark, findScaledXY(sMark));
|
||||||
markGroups.add(markGroup);
|
markGroups.add(markGroup);
|
||||||
} else {
|
} else {
|
||||||
GateMark gMark = (GateMark) mark;
|
GateMark gMark = (GateMark) mark;
|
||||||
|
|
||||||
MarkGroup markGroup = new MarkGroup(mark, findScaledXY(gMark.getSingleMark1()),
|
MarkGroup markGroup = new MarkGroup(gMark, findScaledXY(gMark.getSingleMark1()), findScaledXY(gMark.getSingleMark2())); //should be 2 objects in the list.
|
||||||
findScaledXY(gMark.getSingleMark2())); //should be 2 objects in the list.
|
|
||||||
markGroups.add(markGroup);
|
markGroups.add(markGroup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,12 @@ public class MarkGroup extends Group {
|
|||||||
private List<Mark> marks = new ArrayList<>();
|
private List<Mark> marks = new ArrayList<>();
|
||||||
private Mark mainMark;
|
private Mark mainMark;
|
||||||
|
|
||||||
public MarkGroup (Mark mark, Point2D... points) {
|
/**
|
||||||
|
* Constructor for singleMark groups
|
||||||
|
* @param mark
|
||||||
|
* @param points
|
||||||
|
*/
|
||||||
|
public MarkGroup (SingleMark mark, Point2D points) {
|
||||||
marks.add(mark);
|
marks.add(mark);
|
||||||
mainMark = mark;
|
mainMark = mark;
|
||||||
Color color = Color.BLACK;
|
Color color = Color.BLACK;
|
||||||
@@ -31,43 +36,54 @@ public class MarkGroup extends Group {
|
|||||||
color = Color.RED;
|
color = Color.RED;
|
||||||
}
|
}
|
||||||
Circle markCircle;
|
Circle markCircle;
|
||||||
if (mark.getMarkType() == MarkType.SINGLE_MARK) {
|
markCircle = new Circle(
|
||||||
markCircle = new Circle(
|
points.getX(),
|
||||||
points[0].getX(),
|
points.getY(),
|
||||||
points[0].getY(),
|
MARK_RADIUS,
|
||||||
MARK_RADIUS,
|
color
|
||||||
color
|
);
|
||||||
);
|
super.getChildren().add(markCircle);
|
||||||
super.getChildren().add(markCircle);
|
}
|
||||||
} else {
|
|
||||||
markCircle = new Circle(
|
|
||||||
points[0].getX(),
|
|
||||||
points[0].getY(),
|
|
||||||
MARK_RADIUS,
|
|
||||||
color
|
|
||||||
);
|
|
||||||
super.getChildren().add(markCircle);
|
|
||||||
|
|
||||||
markCircle = new Circle(
|
public MarkGroup(GateMark mark, Point2D points1, Point2D points2) {
|
||||||
points[1].getX(),
|
marks.add(mark.getSingleMark1());
|
||||||
points[1].getY(),
|
marks.add(mark.getSingleMark2());
|
||||||
MARK_RADIUS,
|
mainMark = mark;
|
||||||
color
|
Color color = Color.BLACK;
|
||||||
);
|
if (mark.getName().equals("Start")){
|
||||||
super.getChildren().add(markCircle);
|
color = Color.GREEN;
|
||||||
Line line = new Line(
|
} else if (mark.getName().equals("Finish")){
|
||||||
points[0].getX(),
|
color = Color.RED;
|
||||||
points[0].getY(),
|
|
||||||
points[1].getX(),
|
|
||||||
points[1].getY()
|
|
||||||
);
|
|
||||||
line.setStrokeWidth(LINE_THICKNESS);
|
|
||||||
line.setStroke(color);
|
|
||||||
if (mark.getMarkType() == MarkType.OPEN_GATE) {
|
|
||||||
line.getStrokeDashArray().addAll(DASHED_GAP_LEN, DASHED_LINE_LEN);
|
|
||||||
}
|
|
||||||
super.getChildren().add(line);
|
|
||||||
}
|
}
|
||||||
|
Circle markCircle;
|
||||||
|
markCircle = new Circle(
|
||||||
|
points1.getX(),
|
||||||
|
points1.getY(),
|
||||||
|
MARK_RADIUS,
|
||||||
|
color
|
||||||
|
);
|
||||||
|
super.getChildren().add(markCircle);
|
||||||
|
|
||||||
|
markCircle = new Circle(
|
||||||
|
points2.getX(),
|
||||||
|
points2.getY(),
|
||||||
|
MARK_RADIUS,
|
||||||
|
color
|
||||||
|
);
|
||||||
|
super.getChildren().add(markCircle);
|
||||||
|
Line line = new Line(
|
||||||
|
points1.getX(),
|
||||||
|
points1.getY(),
|
||||||
|
points2.getX(),
|
||||||
|
points2.getY()
|
||||||
|
);
|
||||||
|
line.setStrokeWidth(LINE_THICKNESS);
|
||||||
|
line.setStroke(color);
|
||||||
|
if (mark.getMarkType() == MarkType.OPEN_GATE) {
|
||||||
|
line.getStrokeDashArray().addAll(DASHED_GAP_LEN, DASHED_LINE_LEN);
|
||||||
|
}
|
||||||
|
super.getChildren().add(line);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void moveMarkTo (double x, double y, long raceId)
|
public void moveMarkTo (double x, double y, long raceId)
|
||||||
@@ -80,12 +96,12 @@ public class MarkGroup extends Group {
|
|||||||
Circle markCircle1 = (Circle) super.getChildren().get(0);
|
Circle markCircle1 = (Circle) super.getChildren().get(0);
|
||||||
Circle markCircle2 = (Circle) super.getChildren().get(1);
|
Circle markCircle2 = (Circle) super.getChildren().get(1);
|
||||||
Line connectingLine = (Line) super.getChildren().get(2);
|
Line connectingLine = (Line) super.getChildren().get(2);
|
||||||
if (marks.get(1).getId() == raceId) {
|
if (marks.get(0).getId() == raceId) {
|
||||||
markCircle1.setCenterX(x);
|
markCircle1.setCenterX(x);
|
||||||
markCircle1.setCenterY(y);
|
markCircle1.setCenterY(y);
|
||||||
connectingLine.setStartX(markCircle1.getCenterX());
|
connectingLine.setStartX(markCircle1.getCenterX());
|
||||||
connectingLine.setStartY(markCircle1.getCenterY());
|
connectingLine.setStartY(markCircle1.getCenterY());
|
||||||
} else if (marks.get(2).getId() == raceId) {
|
} else if (marks.get(1).getId() == raceId) {
|
||||||
markCircle2.setCenterX(x);
|
markCircle2.setCenterX(x);
|
||||||
markCircle2.setCenterY(y);
|
markCircle2.setCenterY(y);
|
||||||
connectingLine.setEndX(markCircle2.getCenterX());
|
connectingLine.setEndX(markCircle2.getCenterX());
|
||||||
|
|||||||
Reference in New Issue
Block a user