From 3e04ed12ad8b2bff03db59c72f1a008f5334734d Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 15:41:24 +1300 Subject: [PATCH 1/6] Removed raceSinglePlayer.xml and raceThreePlayers.xml as they are identical to raceSixPlayers.xml. Renamed raceSixPlayers.xml to ac35MapLayout.xml to be more consistent with other map names. Issue #63 --- .../src/main/java/mock/app/Event.java | 5 +- .../{raceSixPlayers.xml => ac35MapLayout.xml} | 0 .../mock/mockXML/raceSinglePlayer.xml | 51 ------------------- .../mock/mockXML/raceThreePlayers.xml | 51 ------------------- 4 files changed, 2 insertions(+), 105 deletions(-) rename racevisionGame/src/main/resources/mock/mockXML/{raceSixPlayers.xml => ac35MapLayout.xml} (100%) delete mode 100644 racevisionGame/src/main/resources/mock/mockXML/raceSinglePlayer.xml delete mode 100644 racevisionGame/src/main/resources/mock/mockXML/raceThreePlayers.xml diff --git a/racevisionGame/src/main/java/mock/app/Event.java b/racevisionGame/src/main/java/mock/app/Event.java index 11553a07..3814fa80 100644 --- a/racevisionGame/src/main/java/mock/app/Event.java +++ b/racevisionGame/src/main/java/mock/app/Event.java @@ -77,7 +77,7 @@ public class Event { String boatsXMLFile = "mock/mockXML/boatTest.xml"; String regattaXMLFile = "mock/mockXML/regattaTest.xml"; switch (mapIndex){ - case 0:raceXMLFile = "mock/mockXML/raceSixPlayers.xml"; + case 0:raceXMLFile = "mock/mockXML/ac35MapLayout.xml"; break; case 1:raceXMLFile = "mock/mockXML/oMapLayout.xml"; break; @@ -90,13 +90,12 @@ public class Event { boatsXMLFile = "mock/mockXML/boatTutorial.xml"; regattaXMLFile = "mock/mockXML/regattaTutorial.xml"; break; - default: raceXMLFile = "mock/mockXML/raceSixPlayers.xml"; + default: raceXMLFile = "mock/mockXML/ac35MapLayout.xml"; } if (singlePlayer) { - raceXMLFile = "mock/mockXML/raceSinglePlayer.xml"; boatsXMLFile = "mock/mockXML/boatsSinglePlayer.xml"; } diff --git a/racevisionGame/src/main/resources/mock/mockXML/raceSixPlayers.xml b/racevisionGame/src/main/resources/mock/mockXML/ac35MapLayout.xml similarity index 100% rename from racevisionGame/src/main/resources/mock/mockXML/raceSixPlayers.xml rename to racevisionGame/src/main/resources/mock/mockXML/ac35MapLayout.xml diff --git a/racevisionGame/src/main/resources/mock/mockXML/raceSinglePlayer.xml b/racevisionGame/src/main/resources/mock/mockXML/raceSinglePlayer.xml deleted file mode 100644 index c4efcd17..00000000 --- a/racevisionGame/src/main/resources/mock/mockXML/raceSinglePlayer.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 5326 - FLEET - RACE_CREATION_TIME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/racevisionGame/src/main/resources/mock/mockXML/raceThreePlayers.xml b/racevisionGame/src/main/resources/mock/mockXML/raceThreePlayers.xml deleted file mode 100644 index c4efcd17..00000000 --- a/racevisionGame/src/main/resources/mock/mockXML/raceThreePlayers.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 5326 - FLEET - RACE_CREATION_TIME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From abfa3ea8637ee1864cdd5b455dab84e1581b66d7 Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 15:51:00 +1300 Subject: [PATCH 2/6] Race now uses a 1 for timescale, which effectively disables time/speed scaling. --- racevisionGame/src/main/java/shared/model/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racevisionGame/src/main/java/shared/model/Constants.java b/racevisionGame/src/main/java/shared/model/Constants.java index 6d1c35a8..e62a2e04 100644 --- a/racevisionGame/src/main/java/shared/model/Constants.java +++ b/racevisionGame/src/main/java/shared/model/Constants.java @@ -28,7 +28,7 @@ public class Constants { * Frame periods are multiplied by this to get the amount of time a single frame represents. * E.g., frame period = 20ms, scale = 5, frame represents 20 * 5 = 100ms, and so boats are simulated for 100ms, even though only 20ms actually occurred. */ - public static final int RaceTimeScale = 2; + public static final int RaceTimeScale = 1; /** * The race pre-start time, in milliseconds. 30 seconds. From e77208aea156003a09f0d849e90c2e99a760be30 Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 16:08:02 +1300 Subject: [PATCH 3/6] MarkRoundingSequence now stores data using the leg number, rather than the leg object itself. This was an issue as leg objects would be recreated when race xml files are received. Fixes issue #64 --- .../src/main/java/shared/model/MarkRoundingSequence.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java b/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java index de11c170..2b8fd823 100644 --- a/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java +++ b/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java @@ -17,8 +17,9 @@ public class MarkRoundingSequence { /** * For each leg, mark rounding information. + * Maps between leg number and rounding data. */ - private Map roundingPoints; + private Map roundingPoints; @@ -34,7 +35,7 @@ public class MarkRoundingSequence { * @return Rounding points for leg. */ public MarkRoundingData getRoundingData(Leg leg) { - return roundingPoints.get(leg); + return roundingPoints.get(leg.getLegNumber()); } @@ -139,7 +140,7 @@ public class MarkRoundingSequence { roundingData.setRoundCheck2Halfway(roundCheck2Halfway); - this.roundingPoints.put(currentLeg, roundingData); + this.roundingPoints.put(currentLeg.getLegNumber(), roundingData); //Rounding points: From c7f59b73d5141176ea7bdb3b6691f6b55c850e4c Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 16:56:20 +1300 Subject: [PATCH 4/6] Expanded the boundary for ac35MapLayout.xml slightly. Fixes issue #63 --- .../resources/mock/mockXML/ac35MapLayout.xml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/racevisionGame/src/main/resources/mock/mockXML/ac35MapLayout.xml b/racevisionGame/src/main/resources/mock/mockXML/ac35MapLayout.xml index 6ae04ef8..6931f080 100644 --- a/racevisionGame/src/main/resources/mock/mockXML/ac35MapLayout.xml +++ b/racevisionGame/src/main/resources/mock/mockXML/ac35MapLayout.xml @@ -37,16 +37,16 @@ - - - - - - - - - - - + + + + + + + + + + + From 5d9b574378ad9819fb0433c2a24befb3130b953a Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 23:40:00 +1300 Subject: [PATCH 5/6] Zooming in while in birds eye no longer clips through sea surface. Zooming with mouse wheel is the same speed as zooming with keyboard. --- .../java/visualiser/Controllers/RaceViewController.java | 7 ++++++- racevisionGame/src/main/java/visualiser/layout/View3D.java | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index 72c564f2..66ac58d1 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -576,7 +576,12 @@ public class RaceViewController extends Controller { // Bind zooming to scrolling view3D.setOnScroll(e -> { - view3D.updateDistance(e.getDeltaY()); + //view3D.updateDistance(e.getDeltaY()); + if (e.getDeltaY() > 0) { + view3D.zoomIn(); + } else { + view3D.zoomOut(); + } }); // Bind zooming to keypress (Z/X default) diff --git a/racevisionGame/src/main/java/visualiser/layout/View3D.java b/racevisionGame/src/main/java/visualiser/layout/View3D.java index 8501cdaa..dfaa0c0f 100644 --- a/racevisionGame/src/main/java/visualiser/layout/View3D.java +++ b/racevisionGame/src/main/java/visualiser/layout/View3D.java @@ -268,8 +268,10 @@ public class View3D extends Pane { public void updateDistance(double delta) { double newDistance = -this.distance.getZ() + delta; if (target.get() == null){ - if (newDistance > MAX_ZOOM_LIMIT){ + if (newDistance > MAX_ZOOM_LIMIT) { setDistance(MAX_ZOOM_LIMIT); + } else if (newDistance <= ZOOM_IN_LIMIT) { + setDistance(ZOOM_IN_LIMIT); } else { setDistance(newDistance); } @@ -372,4 +374,4 @@ public class View3D extends Pane { public void addPointLight(PointLight pointLight) { this.world.getChildren().add(pointLight); } -} \ No newline at end of file +} From e434af07280cec70d638c9d554623f07899a4b3b Mon Sep 17 00:00:00 2001 From: Joseph Date: Thu, 28 Sep 2017 01:29:58 +1300 Subject: [PATCH 6/6] fixed boat collisions. Increased boat collision radius 15 -> 50 --- racevisionGame/src/main/java/mock/model/MockRace.java | 4 +--- racevisionGame/src/main/java/shared/model/Boat.java | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/racevisionGame/src/main/java/mock/model/MockRace.java b/racevisionGame/src/main/java/mock/model/MockRace.java index a0140189..969d9d94 100644 --- a/racevisionGame/src/main/java/mock/model/MockRace.java +++ b/racevisionGame/src/main/java/mock/model/MockRace.java @@ -109,8 +109,6 @@ public class MockRace extends RaceState { colliderRegistry.addCollider(mark.getMark1()); if(mark.getMark2() != null) colliderRegistry.addCollider(mark.getMark2()); } - - this.colliderRegistry.addAllColliders(boats); } @@ -133,9 +131,9 @@ public class MockRace extends RaceState { this.boats.add(mockBoat); this.activeObserverCommands.put(boat.getSourceID(), new ActiveObserverCommand()); + this.colliderRegistry.addCollider(mockBoat); getRaceDataSource().incrementSequenceNumber(); - } /** diff --git a/racevisionGame/src/main/java/shared/model/Boat.java b/racevisionGame/src/main/java/shared/model/Boat.java index 99871678..a094bcc9 100644 --- a/racevisionGame/src/main/java/shared/model/Boat.java +++ b/racevisionGame/src/main/java/shared/model/Boat.java @@ -418,7 +418,7 @@ public class Boat extends Collider { @Override public boolean rayCast(Boat boat) { if(boat != this) { - return rayCast(boat, 15); + return rayCast(boat, 50); } else return false; }