Commit Graph
100 Commits
Author SHA1 Message Date
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 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
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 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
Connor Taylor-Brown c83442761c Implemented Factory for Command objects and fixed Command Pattern implementation.
- Commands now have standard 0-parameter execute method
- Commands are created by CommandFactory

#story[1094]
2017-08-03 17:54:03 +12:00
Connor Taylor-Brown c8621a7be5 Merge branch 'RaceFactory' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into RaceFactory 2017-08-03 09:01:27 +12:00
Connor Taylor-Brown 2672c2b13b Separated RaceLogic from MockRace
- MockRace satisfies refactor requirement for RaceState
- VisualiserRace directly implements Runnable to remove method from MockRace

#story[1094]
2017-08-03 00:32:17 +12:00
Connor Taylor-Brown 0466292bd0 Partially removed VMG optimisation, separated server-specific functionality
from MockRace into RaceServer.

#story[1094]
2017-08-02 23:39:13 +12:00
cbt24 9249e74e3a Merge remote-tracking branch 'origin/RaceFactory' into RaceFactory
# Conflicts:
#	racevisionGame/src/main/java/mock/model/MockRace.java
#	racevisionGame/src/main/java/mock/model/RaceState.java
2017-08-02 13:58:26 +12:00
cbt24 a4592a10e6 Removed boundary checking logic to clean up MockRace before split
story[1094]
2017-08-02 13:51:07 +12:00
Connor Taylor-Brown 0352e3310d Set up Boat Action Message encoding
- Fixed command number for sails out

#story[1089]
2017-07-27 00:48:19 +12:00
Connor Taylor-Brown e670ded66d ControllerClient can retrieve valid protocol code from each key press
- ControlKey now includes protocolCode property
- RaceController now fires action with each key press
- Shift toggles sail state appropriately

#story[1089]
2017-07-26 23:40:39 +12:00
Connor Taylor-Brown 86e8cb7560 Refactored KeyFactory to ensure single instance of each key state handler.
#story[1089]
2017-07-26 23:22:05 +12:00
Connor Taylor-Brown cc264f318e Added ControllerClient and ControllerServer
- StartController sets up client-wide ControllerClient on socket to game server.
- RaceController now calls ControllerClient.sendKey with each keypress
- ConnectionAcceptor runs ControllerServer for each successfully connected client

#story[1089]
2017-07-26 22:57:01 +12:00
Connor Taylor-Brown 9a76fa592c Added keyboard handling to RaceController
- Capture each KeyEvent with EventFilter over SplitPane race container

#story[1010]
2017-07-26 17:22:54 +12:00
Connor Taylor-Brown 7e3e865563 Host starts with button in ConnectionController
- Converted Event to Singleton for configuring and hosting no more than one game instance.
- Retrieve address and port from ConnectionAcceptor
- Automatically add local host to host list

#story[1010]
2017-07-25 15:52:53 +12:00
Connor Taylor-Brown a27c16d413 Merge remote-tracking branch 'remotes/origin/Game_Controller' into cbt-multi-controller 2017-07-25 14:54:09 +12:00
Connor Taylor Brown ea02752dc0 Merge branch 'bindWind' into 'sprint4_master'
Bind wind



See merge request !14
2017-05-25 16:09:02 +12:00
Connor Taylor Brown dc8403ec00 Merge branch '33CherryPick' into 'sprint4_master'
33 cherry pick



See merge request !11
2017-05-25 13:47:02 +12:00
cbt24 495547161d Merge branch '33CherryPick' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into 33CherryPick 2017-05-25 13:36:34 +12:00
cbt24 2126c44db9 Last minute changes to get ready for DoD
#story[875]
2017-05-25 13:35:40 +12:00
cbt24 b58c3b98ed Integrated changes from story33-estimateTime branch
- Used refactored bearing methods
- Sent accurate current time to visualiser

#story[875]
2017-05-25 12:53:40 +12:00
Connor Taylor Brown 37828ef0fe Merge branch 'Story877' into 'sprint4_master'
Added Important and Partial Annotations and other refactors and documentation.

- Important, Partial, Hidden, Visible are all radiobuttons
- Fixed bug where the Visualiser would end the race before the last boat had finished
- Refactored the visualiser and the mock to use the race finished status message
- Added and Changed many Javadocs
#story[877]

See merge request !5
2017-05-24 23:45:50 +12:00
cbt24 27d4040a54 Cleaned up updatePosition in Mock.Race to simplify time estimation.
#story[875]
2017-05-18 14:42:27 +12:00
cbt24 91b1773703 Commented out obsolete tests, may be useful if refactored.
#story[881]
2017-05-10 17:02:25 +12:00