Commit Graph
92 Commits
Author SHA1 Message Date
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
cbt24 f31a987787 Reads BoatDataSource into StreamedCourseXMLReader so the latter can function as a single source of static information for the race.
- Mock.StreamedCourseXMLReader populates participant and mark list from BoatDataSource
- Added CompoundMarker class to accommodate Mark data from Boat XML
- Had to check for Yacht type in Visualiser.BoatXMLReader
- Added a missing coordinate value to raceTest.xml
- Marker class still exists due to large number of tests, which should be transitioned to CompoundMark
- IMPORTANT: race is no longer functional

#story[881]
2017-05-10 16:56:21 +12:00
cbt24 9902cec688 Added tests for BoatXMLReader
- Verifies correct operation on boat and mark reading from boatTest.xml

#story[782]
2017-05-10 14:23:33 +12:00
cbt24 9aa4183a7c Merge remote-tracking branch 'origin/49Mock' into 49Mock 2017-05-10 13:57:36 +12:00
cbt24 69cd44bda8 Reads data from boat XML file
- Creates marks for building CompoundMarks (formerly Markers)
- Rearranged Boat constructor and removed velocity

#story[782]
2017-05-10 13:57:20 +12:00
cbt24 6e9386f4fb Switched mock to send out official xmls.
- Not reading official xmls yet

#story[881], #pair[cbt24, esa46]
2017-05-10 13:08:34 +12:00
cbt24 c038010bd2 Draws track for racing boats only to reduce information clutter.
- Add track point only when boat status is "Racing"

#story[782]
2017-05-06 19:22:20 +12:00
cbt24 f27dbc29b0 Added self-documenting RaceStatus boolean getters
- Deprecated RaceStatus.getRaceStatus

#story[782]
2017-05-06 19:06:37 +12:00
cbt24 cc824aa89a Removed unnecessary countdownTimer from Race in visualiser module
- Run method now calls simulateRace directly

#story[782]
2017-05-06 18:20:41 +12:00
cbt24 a6adfb4960 Refactored RaceClock to act as central source of time and duration information throughout visualiser.
- StartController and RaceController use same RaceClock instance
- RaceClock updates automatically as Runnable for consistent operation
- Duration between starting and current time is now an observable property of RaceClock

#story[782]
2017-05-06 18:02:48 +12:00
cbt24 349bd50094 Everything works, don't ask questions
#story[782]
2017-05-04 16:52:33 +12:00
cbt24 89ba0f278d Fixed StartController countdown
- Removed obsolete timer related code
- Consistently use RaceClock throughout StartController

#story[782]
2017-05-04 14:16:14 +12:00
cbt24 17afd9f775 Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules
# Conflicts:
#	visualiser/src/main/java/seng302/Controllers/StartController.java
2017-05-04 14:15:21 +12:00
cbt24 336a15d1a2 Fixed StartController countdown
- Removed obsolete timer related code
- Consistently use RaceClock throughout StartController

#story[782]
2017-05-04 14:11:00 +12:00
cbt24 e345f08ad8 Fixed AC35 stream crashing before status sent.
#story[782]
2017-05-04 13:19:39 +12:00
cbt24 099995c41b Fixed start controller visibility issues.
#story[782]
2017-05-04 13:13:44 +12:00
cbt24 cd55052654 Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules 2017-05-04 12:38:26 +12:00
cbt24 c1fa760dde Streamlined clock handling.
- Set starting time from network
- Update RaceClock instance to current time from network

#story[782]
2017-05-04 12:38:21 +12:00
cbt24 09483fff2c Added blocking loop to wait
- waits for the InputStream to be populated for at least 15 bytes of size before reading in case of header size error potentially crashing the program.
#story[782]
2017-05-04 11:49:16 +12:00
Connor Taylor-Brown 8886b5db05 Fixed RegattaXMLTest.
#story[782]
2017-05-04 01:40:12 +12:00
Connor Taylor-Brown 7d81fc810c Display name of race in lobby.
- Moved Regatta properties and accessors to RegattaXMLReader
- StartController update now tolerates any permutation of types of XML messages

#story[782]
2017-05-04 01:32:28 +12:00
Connor Taylor-Brown 1723d0c27f Fixed scaling of wakes (note issues with velocity data)
- Official stream provides speeds of 0 kn
- Mock provides speeds that do not correlate with motion

#story[782]
2017-05-04 00:32:06 +12:00
Connor Taylor-Brown 0e1bf64177 Fixed boat track rendering (points were added before boat position set)
#story[782]
2017-05-03 22:31:34 +12:00
Connor Taylor-Brown 9bab3d3359 Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules 2017-05-03 22:04:19 +12:00
Connor Taylor-Brown e7008ab6db Fixed race playback issue, removed obsolete detail from UI.
- Removed race scaling options
- Refactored start screen timer formatting for clarity
- Removed incomplete countdownTimer override in Streamed Race

#story[782]
2017-05-03 22:04:08 +12:00
Connor Taylor-Brown 5a92dd68f5 Fixed build and interface problems.
- Ignore online host test (fails on CI)
- Disable connect button on startup to prevent bad socket

#story[782]
2017-05-03 19:31:00 +12:00
Connor Taylor-Brown ac4fbda848 Added connection screen to allow users to select available hosts from a preconfigured list.
- Added ConnectionController for initial client setup
- Added RaceConnection class for socket data and checking
- Configures StartController with a socket drawn from a host table

#story[782]
2017-05-03 03:40:36 +12:00
cbt24 ad58407021 Began work on ConnectionController for selecting active hosts on startup via GUI.
#story[782]
2017-05-03 00:35:46 +12:00
cbt24 577dea2a56 Fixed time zone label on RaceController.
#story[782]
2017-05-02 22:41:51 +12:00
cbt24 e40bb6c4cb Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules
# Conflicts:
#	visualiser/src/main/java/seng302/VisualiserInput.java
2017-05-01 18:55:08 +12:00
cbt24 2e7527b325 Update boat position according to boat location messages in StreamedRace
- Added StreamedRace constructor accepting VisualiserInput
- Modified VisualiserInput constructor to accept Socket
- Refactored controller setup of Race

#story[782]
2017-05-01 18:52:52 +12:00
cbt24 3f42d56502 Merge remote-tracking branch 'remotes/origin/splitIntoTwoModules' into NetworkedVisualiser
# Conflicts:
#	visualiser/src/main/java/seng302/VisualiserInput.java
2017-05-01 16:00:11 +12:00
cbt24 b1db9ee5be Merge remote-tracking branch 'remotes/origin/splitIntoTwoModules' into NetworkedVisualiser
# Conflicts:
#	visualiser/src/main/java/seng302/VisualiserInput.java
2017-05-01 15:55:19 +12:00
cbt24 ccbe467090 Synchronised GUI with VisualiserInput thread.
- Made StreamedCourse extend Observable
- Initialised StartController after data pulled from network
- Moved VisualiserInput to visualiser module
- Deleted Networking subpackage from visualiser module

#story[782]
2017-05-01 15:21:12 +12:00
Connor Taylor-Brown 06e65c2cd2 Generate StreamedCourse from VisualiserInput
- Allow Race to get boat location messages (added last commit)
- Removed faulty import statement (this commit)

#story[782]
2017-04-28 20:33:58 +12:00
Connor Taylor-Brown 68a8f64fd3 Generate StreamedCourse from VisualiserInput
#story[782]
2017-04-28 20:29:03 +12:00
cbt24 7d35312644 Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules 2017-04-28 11:30:58 +12:00
cbt24 5f3f3770bb Temporarily ignore out-of-bound race markers in testing.
#story[758]
2017-04-28 11:30:50 +12:00
Connor Taylor-Brown 7f273f8ba0 Fixed time source for visualiser, replacing local time
- StreamedCourse now provides start time for clock from XML

#story[782]
2017-04-28 02:37:50 +12:00
Connor Taylor-Brown 02511db2b9 Implemented marker visualisation from XML in ResizableRaceCanvas
- Replaced and deprecated Constants
- Added getMarkers to RaceDataSource interface
- Added boundary testing for source data

#story[782]
2017-04-28 01:58:55 +12:00
cbt24 cb40302c13 Merge remote-tracking branch 'remotes/origin/story30_XMLs' into splitIntoTwoModules 2017-04-25 15:56:44 +12:00
cbt24 1653003cf0 Implemented Leg generation from Race.xml format
- StreamedCourse now utilises StreamedCourseXMLReader as data source

#story[758]
2017-04-25 15:51:44 +12:00
cbt24 858db3f45e Fixed interface implementation for StreamedCourse
#story[758]
2017-04-25 13:08:57 +12:00
cbt24 a59342a668 Modified RaceClock to support arbitrary start times
- Amended RaceDataSource interface to require time instead of mark for calculating time.
#story[758]
2017-04-25 13:00:45 +12:00
cbt24 d12f70c8f8 Merge remote-tracking branch 'origin/story_30' into story_30 2017-04-19 18:08:35 +12:00
cbt24 0f22cf81ef Moved implementational details of generated races to ConstantVelocityRace.
- Boat headings are now treated as a property, not a calculation
#story[758]
2017-04-19 18:08:27 +12:00
Connor Taylor-Brown 316c0dda76 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/main/java/seng302/Controllers/RaceController.java
2017-04-19 16:59:29 +12:00
Connor Taylor-Brown 764eb9089f Added race data source interface to abstract sources of race data.
- Refactored controllers to send data source to consumers (Race, ResizeableRaceCanvas)

#story[782]
2017-04-19 16:53:31 +12:00
cbt24 71535be143 Merge branch 'story_25' 2017-04-19 12:42:39 +12:00
cbt24 caf1e61391 Documented methods added for track handling.
#story[758]
2017-04-19 12:39:23 +12:00
cbt24 2d74cdc5dc Fixed DNF position handling
- DNF position is now "-"
- If boat DNFs during leg, other boats' rankings are updated to remain accurate
#story[15]
2017-04-07 16:26:24 +12:00
cbt24 680c6fb991 Increased minimum opacity so actual track from start is visible.
- No longer removes points from track
#story[25]
2017-04-07 15:18:57 +12:00
cbt24 375202e7a0 Fades boat opacity every frame during and after race.
- Added TrackPoint with time added and expiry to calculate opacity each frame
- Modified drawTrackPoint to compute colour from TrackPoint alpha
- Removed getTrackPoint from BoatInRace
#pait[jjg64, cbt24]
2017-04-07 14:20:20 +12:00
cbt24 4eef872a60 Decoupled drawing and adding track points, added combobox selector for visible boats. 2017-04-07 12:26:43 +12:00
Connor Taylor-Brown 8e70dfa2d5 Fixed boat position calculation
- Decoupled 'place' column data from position in table
- Set position in race after first mark passed

#story[15]
2017-04-06 13:19:31 +12:00
cbt24 1524ed5a0e Merged annotation toggle and DNF features with heading visualisation. 2017-03-29 13:27:41 +13:00
cbt24 98be99a975 Merge remote-tracking branch 'origin/master' 2017-03-29 12:13:20 +13:00
cbt24 99cb4bd526 Implemented DNF with random chance in Race
#story [17]
2017-03-29 11:18:04 +13:00
cbt24 6fe80ad52c Fixed speed displayed in table view
#story [17]
2017-03-29 10:46:18 +13:00
Connor Taylor-Brown cfbb27513d Fixed wake scale for realistic speeds.
#story[21]
2017-03-27 20:59:51 +13:00
Connor Taylor-Brown 3aaee1291d Implemented heading visualisation
- Boats are represented as isosceles triangles
- Boats are rotated toward heading while in race
- As heading is only available in race, RaceController draws boats on start line and in race separately
#story [24]
2017-03-27 20:51:20 +13:00
Connor Taylor-Brown e8cd9b2ee8 Implemented wake visualisation for each boat
- Added and tested wake calculation for BoatInRace
- Draws boat in canvas between start and entering Finish leg
- Allow boat velocity to be set after initialisation for testing
#story [21]
2017-03-25 20:41:16 +13:00
Connor Taylor-Brown 26f7b94e13 Fixed finish order
- Added test to check order is determined by velocity
- Modified Race class to allow for unit testing

#story[15]
2017-03-20 20:18:32 +13:00
cbt24 05fe402fd0 Merge remote-tracking branch 'origin/story9' into story9
# Conflicts:
#	src/main/java/seng302/Model/ResizableRaceCanvas.java
2017-03-20 17:28:22 +13:00
cbt24 c8fcada427 Fixed sort order for boats in race
- Sort boats by leg number (preserves order when boats enter shared leg)

#story [19]
2017-03-20 17:26:13 +13:00
cbt24 92c0011f80 Merge branch 'story9' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into story9 2017-03-17 13:29:53 +13:00
cbt24 b25389f212 Implemented list of boats in order of last feature passed.
- Update controller every time boats pass a mark
- Cleared info table to force update
#story [15]
2017-03-17 13:29:33 +13:00
cbt24 85f4117666 Merge branch 'story9' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into story13
# Conflicts:
#	src/main/java/seng302/Controllers/RaceController.java
2017-03-17 11:43:30 +13:00
cbt24 456925c4c6 Implemented table view for finishing list
- Added auto-numbered placing, team name, and last mark columns
- Added dummy 'Finish' mark to race
- Added callback for race to update controller

#story [13]
2017-03-17 11:15:15 +13:00
cbt24 d393766027 Partially completed story 13 2017-03-16 17:44:34 +13:00
cbt24 6c3b7ccee7 Implemented start line in RaceController
- Added coordinates as given in Story 10
- Displayed start line
- Marked line ends with circles
#story [10]
2017-03-15 12:33:55 +13:00
cbt24 6ca26d5bb1 Implemented race map usage by JavaFX controller
- Renamed Map to RaceMap
- Fixed RaceMap.convertGPS bug
- Defined canvas coordinates in terms of map GPS

#story [9] #pair [cbt24,fwy13,zwu18]
2017-03-15 12:19:41 +13:00
cbt24 fbb3094da8 Implemented GPS coordinate to screen coordinate conversion
- Created Coordinate class with getters
- Created Map class
- Created convertGPS method in Map
#story [9], #pair [cbt24,fwy13]
2017-03-15 11:11:38 +13:00
Connor Taylor-Brown 1a9cf5bdda Allow users to choose timescale of race playback. Playback is ~1 min by default, real-time selected with command line variable '-5'. Rescaled race marker positions to distances appropriate for a ~5 minute race. 2017-03-08 19:00:09 +13:00
Connor Taylor-Brown b1f588248b Display list of finishers after race ends. 2017-03-08 18:23:20 +13:00
cbt24 377683ef8c Displayed information for all boats. 2017-03-06 17:02:18 +13:00
cbt24 7c0d9203a5 Boats pass marks at times according to boat speed and distance of mark from start. 2017-03-06 16:20:20 +13:00
cbt24 2148c1e06d Added mark and gate events to race 2017-03-03 11:46:52 +13:00
Connor Benjamin Alexander Taylor Brown 987dcdac01 Display order of boats per event 2017-03-03 11:34:34 +13:00