Commit Graph
100 Commits
Author SHA1 Message Date
Connor Taylor-Brown 315bb64bb3 Boat on start screen now follows infinite loop
- Removed non-resizable property on TitleController

#story[1301]
2017-09-27 22:37:15 +13:00
Connor Taylor-Brown 4f229ad01c Implemented basic 3D start screen with no background race
#story[1301]
2017-09-25 00:56:21 +13:00
Connor Taylor-Brown 51413257b2 Modified title screen to use View3D with skybox and ambient lighting
#story[1301]
2017-09-25 00:23:46 +13:00
Connor Taylor Brown 49c08f5687 Merge branch 'story1298_boat_highlight' into 'master'
Story1298 - Boat highlighting

ACs:
- Current players boat is highlighted

See merge request !56
2017-09-22 20:22:18 +12:00
Connor Taylor-Brown 8d9624db96 Recovered sails smoothing
- Boat default position is now overridden only by collision command
- Sails command overrides boat velocity

#story[1195]
2017-09-14 23:01:29 +12:00
Connor Taylor-Brown 90c258e9e9 Reset collision tag on visualiser boat after displaying collision
- Modified View3D to index subjects rather than shapes by source ID
- Enforced one collision per boat on server to reduce rendering load
- Changed collision radius to less than bounce radius
- Fixed game-breaking null command bug

#story[1195]
2017-09-14 22:36:18 +12:00
cbt24 02b4146fa3 Amended collision effect radius
#story[1195]
2017-09-14 16:24:14 +12:00
cbt24 7d58b05e38 Fixed collision not fading to zero
#story[1195]
2017-09-14 16:23:21 +12:00
cbt24 cdc7b642db Boat now shows a fading collision effect
#story[1195]
2017-09-14 16:22:04 +12:00
Connor Taylor-Brown f2370485a0 RaceController can now set up collision listeners on each boat.
#story[1195]
2017-09-14 12:48:02 +12:00
Connor Taylor-Brown e354320d74 Replaced camera tracking listeners with animation timer
- Documented animation timers and mark arrow

#story[1195]
2017-09-14 12:20:55 +12:00
Connor Taylor-Brown b8c4582d2a Replaced mark arrow listener with animation timer.
#story[1195]
2017-09-14 12:06:47 +12:00
cbt24 de9f4e22eb Direction to mark arrow is now displayed relative to camera
#story[1195]
2017-09-13 16:10:41 +12:00
Connor Taylor-Brown 5f96526fcc Added "arrow" pointing to next mark on third person view
#story[1195]
2017-09-13 15:34:02 +12:00
Connor Taylor-Brown e657a0cc99 Added tracking for angle between third person boat and next mark
#story[1195]
2017-09-13 14:44:18 +12:00
Connor Taylor-Brown 83e696b79e Committed merge-related bug fixes 2017-09-13 13:18:25 +12:00
Connor Taylor-Brown 70bbc89239 Fixed merge-related bugs 2017-09-13 13:12:26 +12:00
Connor Taylor-Brown 0f846f31c3 Merge remote-tracking branch 'origin/storyD-3D' into storyD-3D
# Conflicts:
#	racevisionGame/src/main/java/visualiser/layout/SkyBox.java
2017-09-13 12:28:29 +12:00
Connor Taylor-Brown 963c8a43ad Boats and marks are sized realistically in 3rd person
- Changed SeaSurface to Subject3D to suppress scaling
- Cameras can now be selected through View3D interface

#story[1190]
2017-09-13 12:25:52 +12:00
Connor Taylor-Brown bae428fb3f Recovered a private method used in a test 2017-09-12 17:44:05 +12:00
Connor Taylor-Brown c94e0af69c Removed remaining println statements 2017-09-12 17:35:51 +12:00
Connor Taylor-Brown 01a304efb9 Merge remote-tracking branch 'remotes/origin/master' into storyB-) 2017-09-12 17:23:47 +12:00
Connor Taylor-Brown fbd124e602 Merge branch 'master' into storyB-)
# Conflicts:
#	racevisionGame/src/main/java/shared/model/Constants.java
2017-09-12 15:40:49 +12:00
Connor Taylor-Brown 59bd22c2aa Fixed mark rounding
- Returning mark 2 as mark 1 breaks rounding calculations

#story[1195]
2017-09-12 13:52:29 +12:00
Connor Taylor-Brown 0f316afb3c Added colour indication to next mark
- Colour is swapped with end mark in leg when mark is passed

#story[1195]
2017-09-12 13:36:31 +12:00
Connor Taylor-Brown b902b05e5e Wrote possible fix for issue #50 (Composite command tries to remove non-existent element) 2017-09-12 11:46:57 +12:00
Connor Taylor-Brown d90b161d01 Merge branch 'master' into storyA_sounds
# Conflicts:
#	racevisionGame/src/main/java/mock/model/RaceServer.java
#	racevisionGame/src/main/java/visualiser/Controllers/HostController.java
#	racevisionGame/src/main/java/visualiser/Controllers/MainController.java
#	racevisionGame/src/main/java/visualiser/Controllers/TitleController.java
2017-09-12 11:11:39 +12:00
Connor Taylor Brown 0ea647b9fd Merge branch 'story70' into 'master'
Story70  Merge Request

Acceptance criteria:

Only the player's boat is present (there are no other boats) and no other course elements are present.
Each key function is introduced, and the player given the opportunity to use that (and only) that key, and observe the result.
The practice ends when the final key has been taught.
At least the up/down, tack/gybe, sails in/out keys must be taught.

[manual tests](https://eng-git.canterbury.ac.nz/seng302-2017/team-7/wikis/manual-test:-tutorial-mode)

See merge request !40
2017-09-11 21:42:06 +12:00
Connor Taylor-Brown 5e35cd4195 Removed empty java files 2017-09-11 20:31:20 +12:00
cbt24 70f4a00d12 Scaled down marks and boats to make 3rd person view more realistic
- Added boat and mark annotations to support selection at large camera distance
- Reduced collision radius to 15 m
- Fixed event startup and XML files as race was crashing on start

#story[1296]
2017-09-09 17:09:14 +12:00
cbt24 2508b847b8 Merge branch 'master' into storyD-3D
# Conflicts:
#	racevisionGame/src/main/java/visualiser/Controllers/RaceController.java
#	racevisionGame/src/main/java/visualiser/layout/Subject3D.java
2017-09-09 15:26:33 +12:00
cbt24 643f145407 Added mark radius 3D annotation to improve bird's eye visibility
#story[1261]
2017-09-09 14:44:58 +12:00
Connor Taylor-Brown 93883ee8b7 Added more descriptive documentation to new classes and functionality
#story[1190]
2017-09-08 23:48:47 +12:00
Connor Taylor-Brown 0c9e55093c Set lobby anchor pane to invisible to allow races to start 2017-09-08 17:11:21 +12:00
Connor Taylor-Brown b034a452b6 Fixed problem with race pane registering non-control keys
#story[1190]
2017-09-08 16:30:03 +12:00
Connor Taylor-Brown 68f434b6b6 Bound zooming action to zoom keys
- View3D subject selection is no longer enabled by default
- Added documentation

#story[1190]
2017-09-08 15:49:53 +12:00
Connor Taylor-Brown 1efec06bdc View3D can untrack objects and zoom in different modes
- updateDistance zooms between 0 and infinity
- Camera switches from third person to bird's eye when reaching a set distance
- Only one subject can be tracked at a time

#story[1190]
2017-09-08 14:21:03 +12:00
Connor Taylor-Brown 23eabed3ff View3D tracks selected boat at fixed distance, pitch, and relative yaw
#story[1190]
2017-09-08 12:58:06 +12:00
Connor Taylor-Brown b59eca1a8b Added Subject3D selection to View3D
- Changed how View3D is added to canvasBase to allow events to get through

#story[1190]
2017-09-08 12:43:36 +12:00
Connor Taylor-Brown 54baf4f884 Added scroll-wheel zooming
- Race pane listens to scroll delta and sets View3D distance accordingly
- GPSConverter has more applicable property names for infinite 3D

#story[1190]
2017-09-07 23:22:27 +12:00
cbt24 8c7345a30d Documented command classes
#story[1196]
2017-09-07 17:01:47 +12:00
cbt24 a6db06a82c Boats now reverse smoothly when colliding
- Collision objects specify which boat is colliding
- RaceLogic sets up an observable CollisionCommand when collision bubbles up
- Boats now selectively identify observers of collision

#story[1196]
2017-09-07 16:57:07 +12:00
cbt24 9cba3934ea Sails command now applies acceleration to boat
- Race only has control over speed while Sails command is not in action
- This is governed by a default velocity property on the boat
- Sails command returns control when sails are out and boat is up to speed
- Speed never falls below 0
- Speed never goes above VMG velocity to prevent exploitation

#story[1196]
2017-09-07 14:50:53 +12:00
cbt24 eba70ab2d4 Sails command now listens to race to check if goal velocity is met
#story[1196]
2017-09-07 14:27:20 +12:00
cbt24 b62344261a Merge remote-tracking branch 'remotes/origin/master' into storyB-) 2017-09-07 13:29:23 +12:00
cbt24 844b48a81a Resolved issue #42 - "putting sails out changes boat bearing to face target gate"
#story[1196]
2017-09-07 13:23:56 +12:00
Connor Taylor-Brown e3e61e5b28 Merge remote-tracking branch 'remotes/origin/master' into storyD-3D 2017-09-06 23:51:46 +12:00
Connor Taylor-Brown d89186d8bf Finished playable 3D race with first person camera
- Camera pivot must be manually updated
- GPS coordinates are scaled by an arbitrary amount to make movement visible
- Model has to be flipped 180 degrees to move forward

#story[1261]
2017-09-06 14:36:24 +12:00
cbt24 19f4d0fc06 Added marks back to the race view
#story[1261]
2017-09-05 16:50:26 +12:00
cbt24 05a0614246 Boats now rotate correctly in position rather than about the origin
#story[1261]
2017-09-05 16:02:20 +12:00
cbt24 3ecf203cba Recovered stable rotation of the player's boat
- Uses AnimationTimer rather than listeners
- Reduced pre-start time to speed up testing

#story[1261]
2017-09-05 15:19:04 +12:00
Connor Taylor-Brown c74cc26bf1 Merged with master and changed View3D default background
- Removed sparkline from RaceController

#story[1261]
2017-09-05 12:17:55 +12:00
Connor Taylor-Brown b8c99be201 Merge branch 'master' into storyD-3D
# Conflicts:
#	racevisionGame/src/main/java/visualiser/Controllers/RaceController.java
2017-09-05 00:17:22 +12:00
cbt24 971a061499 View3D within RaceController now tracks boat heading
- Race leaves lobby on Warning status for development
- Latest subject added is used as camera pivot

#story[1261]
2017-09-04 18:51:37 +12:00
Connor Taylor-Brown 0ee448e17d Created wrapper for controlling the position and heading of rendered 3D models.
- Updated View3D to use Subject3D wrappers instead of Shape3D
- Fixed HostController for the new architecture
- Made position and heading observable in VisualiserBoat
- Attached listeners to each VisualiserBoat in RaceController

#story[1261]
2017-09-04 01:27:29 +12:00
Connor Taylor-Brown 368bb8ddb3 Changed reporting plugin settings and specified central repository 2017-09-03 23:35:18 +12:00
Connor Taylor-Brown 42ac733d72 Flush match table on a scheduled rate.
#story[1196]
2017-09-01 11:57:24 +12:00
cbt24 2f8daf757a Added scheduled match list broadcast to MatchBrowser
- Changed MatchTable to map ClientAddress to HostGame
- Send match list as HostedGamesRequest to multicast address (239.0.0.1:4941)

#story[1188]
2017-08-31 17:34:02 +12:00
Connor Taylor-Brown 3cc806dc45 Returned rotation to boat in lobby
#story[1196]
2017-08-31 01:06:33 +12:00
Connor Taylor-Brown fb7bf572d8 Changed View3D add-remove interface to an ObservableList
#story[1196]
2017-08-31 00:59:36 +12:00
Connor Taylor-Brown b6e56d815c ResizableRaceCanvas no longer depends on VisualiserRaceEvent
#story[1196]
2017-08-30 18:52:29 +12:00
Connor Taylor-Brown c2fd5c9bae Changed box to boat mesh
- Mesh needs to be rotated -90 degrees on X
- STL file has been added to assets

#story[1196]
2017-08-30 15:49:20 +12:00
Connor Taylor-Brown cc66d63096 Removed unused shapes list from View3D
#story[1196]
2017-08-30 15:18:08 +12:00
Connor Taylor-Brown bb7eb7cb44 Added adapter interface for PerspectiveCamera frustum and transformations in View3D.
- Tested interface while initialising HostController

#story[1196]
2017-08-30 15:05:08 +12:00
Connor Taylor-Brown e04f199fc7 Merge branch 'story86-3D' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into story86-3D 2017-08-30 13:57:35 +12:00
Connor Taylor-Brown e7164d8a78 View3D perspective camera is now operational
#story[1196]
2017-08-30 13:57:15 +12:00
Connor Taylor-Brown cf838f2072 Added View3D control for rendering 3D shapes under a PerspectiveCamera, which is not currently working.
#story[1196]
2017-08-30 01:30:05 +12:00
Connor Taylor-Brown d630788a14 Merge remote-tracking branch 'remotes/origin/story77_lobby' into story86-3D 2017-08-29 22:55:07 +12:00
cbt24 1b1b0a4591 Added floating test cube in title screen initialiser
#story[1191]
2017-08-29 14:38:27 +12:00
Connor Taylor-Brown 4b3cc8e126 Created ack number generator for use by multiple services
#story[1100]
2017-08-17 11:47:54 +12:00
Connor Taylor-Brown f8150ef449 Added YachtEvent message with encoder and decoder
- Updated Encoder and Decoder factories for the new message type
- Added an enum for handling yacht event types

#story[1100]
2017-08-17 01:10:55 +12:00
cbt24 f7d0e9d466 Boats bounce during collision if pointing into collision
#story[1100]
2017-08-16 17:55:33 +12:00
cbt24 eaa0d2e82b Boats bounce away from marks.
- Changed onCollisionEnter signature to pass boat info

#story[1100]
2017-08-16 17:22:08 +12:00
cbt24 8113867576 Bubbles collision events to RaceLogic
- ColliderRegistry collects and forwards all Collision events
- RaceLogic observes the ColliderRegistry of its single Race instance

#story[1100]
2017-08-16 16:56:20 +12:00
cbt24 79f3c41d45 Moved generic ray casting to Collider abstract class
- Boat is now collider
- Collider subclasses specify their own collision ray and collision handler

#story[1100]
2017-08-16 16:21:55 +12:00
cbt24 8498701091 Removed commented-out file from master 2017-08-16 16:08:38 +12:00
cbt24 f44929f376 Spun off Locatable interface to make collision code more reusable
#story[1100]
2017-08-16 16:05:25 +12:00
cbt24 ce14e93404 Removed CI-breaking docstring 2017-08-16 15:17:15 +12:00
cbt24 f0d750cae1 Merge remote-tracking branch 'remotes/origin/master' into story66-collision
# Conflicts:
#	racevisionGame/src/main/java/mock/model/MockBoat.java
#	racevisionGame/src/main/java/mock/model/RaceLogic.java
#	racevisionGame/src/main/java/shared/model/CompoundMark.java
#	racevisionGame/src/main/java/shared/model/Race.java
#	racevisionGame/src/test/java/mock/model/MockBoatTest.java
2017-08-16 15:09:18 +12:00
cbt24 d63641c1e2 Cherry-picked multiple changes from master 2017-08-16 14:54:55 +12:00
cbt24 9ca50aa66c Ray casting now only supports distance specification.
#story[1100]
2017-08-15 14:26:43 +12:00
cbt24 7d64a43350 Allow collision checking to provide collision parameters to ray casting method
- Added tests for MockBoat collision direction and distance

#story[1100]
2017-08-15 13:47:59 +12:00
cbt24 2fbb96afd7 Created ray casting methods for MockBoat and CompoundMark
- Added ColliderRegistry to Race
- Added collision triggering to RaceLogic
- Created basic collision handlers for MockBoat and CompoundMark
2017-08-15 12:57:26 +12:00
Connor Taylor Brown ab9aeeb58f Merge branch 'CommandFactory' into 'master'
Tacking and gybing merge request

Note: this allows the player to perform a common maneuver, changing tack, quickly. The goal is to change the boat's heading from one tack to another with a single keypress.
If the boat is heading upwind, the keypress will cause the boat to tack through head-to-wind, so that the wind shifts from one side of the boat to the other. The TWA (true wind angle) after tacking should be 360-TWA(before_tacking).
Similarly for gybing if the boat is initially heading downwind, except that the boat's heading always remains away from the wind.

Acceptance criteria:

- The wind shifts from one side of the boat to the other on keypress
- When heading upwind the boat should tack on keypress
- When heading downwind the boat should gybe on keypress

[Manual test](https://eng-git.canterbury.ac.nz/seng302-2017/team-7/wikis/manual-test:-tacking-and-gybing)

See merge request !24
2017-08-15 12:06:20 +12:00
cbt24 da52082d70 Deleted duplicate method (again -.-) 2017-08-15 11:40:22 +12:00
Connor Taylor-Brown 847cd1251e Merge remote-tracking branch 'remotes/origin/master' into CommandFactory
# Conflicts:
#	racevisionGame/src/main/java/mock/model/commandFactory/TackGybeCommand.java
#	racevisionGame/src/main/java/mock/model/commandFactory/VMGCommand.java
2017-08-15 01:01:06 +12:00
Connor Taylor-Brown b97bfe62a6 Fixed documentation bugs not relevant to story. 2017-08-15 00:52:50 +12:00
Connor Taylor-Brown 7474de9816 Created foundation classes and interfaces for collision architecture.
- Added Collider interface
- Added Collision class
- Added ColliderRegistry class

#story[1100]
2017-08-11 14:05:36 +12:00
Connor Taylor-Brown da9915174c Merge branch 'master' into Development 2017-08-09 23:05:07 +12:00
Connor Taylor-Brown 3cf0cf2ee0 Merge branch 'master' into story63 2017-08-09 22:56:55 +12:00
Connor Taylor-Brown 638413da1a Merge remote-tracking branch 'remotes/origin/story63' into Development 2017-08-09 22:46:26 +12:00
Connor Taylor-Brown e021dd328d Changed CompositeCommand stack to queue
#story[1096]
2017-08-08 23:56:59 +12:00
cbt24 2920b6cf23 Removed build-breaking code from MockRace
#story[1096]
2017-08-07 16:47:25 +12:00
Connor Taylor-Brown 8ee4e84236 Merge remote-tracking branch 'remotes/origin/story63' into Development
# Conflicts:
#	racevisionGame/src/main/java/mock/model/MockBoat.java
#	racevisionGame/src/main/java/mock/model/MockRace.java
2017-08-07 15:02:13 +12:00
Connor Taylor-Brown dad4fa57c6 Fixed WindCommand not updating downwind command when moving upwind.
#story[1096]
2017-08-07 14:51:32 +12:00
Connor Taylor-Brown 55798447ab Cherry-picked CommandFactory connection between ControllerServer and RaceLogic.
#story[1096]
2017-08-07 14:25:30 +12:00
Connor Taylor-Brown e76de1cbf9 Added test for WindCommand
#story[1096]
2017-08-07 14:13:14 +12:00
Connor Taylor-Brown 554f8a2a0f Added WindCommand and multiple command execution to RaceLogic
- Dispatch commands with CompositeCommand
- Single WindCommand handles upwind and downwind logic
- Changed key bindings as Mac lacks PgUp PgDn
- ControllerServer is observable, RaceLogic updates CompositeCommand as observer
2017-08-04 23:08:07 +12:00
Connor Taylor-Brown 425cc7f91f Changed ControlKey to use BoatActionEnum instead of magic numbers. 2017-08-04 21:27:53 +12:00
Connor Taylor-Brown 851bbb4fde Merged branch "RaceFactory" with master 2017-08-03 23:03:15 +12:00