Commit Graph
19 Commits
Author SHA1 Message Date
Joseph Gardner 7bea2fee73 Merge branch 'storyA_sounds' into storyD-3D 2017-09-14 16:36:05 +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
Jessica Syder a5050b8ea8 Adding back lost changes and finishing splitting last controllers.
- renamed fxml and their controllers to match
- removed old controllers
- finished lobby and lobbyhost controllers

#story[1261]
2017-09-08 18:08:58 +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
fjc40 0f58270c10 Merge branch 'master' into issue_18_track_alpha
# Conflicts:
#	racevisionGame/src/main/java/visualiser/model/VisualiserRaceState.java
2017-08-17 13:00:13 +12:00
fjc40 62f400b924 Trackpoint line color fades out. 2017-08-17 12:56:11 +12:00
fjc40 114c18763b Reduced track point period to 1000ms.
issue #18
2017-08-16 19:44:42 +12:00
fjc40 20055b1883 Removed redunant calls in VisualiserRaceState.initialiseBoats().
Slightly refactored ResizableRaceCanvas - removed a redundant drawPoint() function, functions which alter the gc stroke call save/restore.
Text is drawn black, at 20pts.
The drawBoats() function: instead of drawing everything for each boat, one boat at a time, it draws the track points for all boats, then wake for all boats, etc..., to have better layering.
issue #18
2017-08-16 18:10:30 +12:00
fjc40 f1e41d5d8f Merge branch 'master' into issue_18_trackpoint 2017-08-16 16:52:32 +12:00
cbt24 f44929f376 Spun off Locatable interface to make collision code more reusable
#story[1100]
2017-08-16 16:05:25 +12:00
fjc40 c9875f3987 RaceLogic no longer uses AnimationTimer for its main loop (since that ran in javafx thread). 2017-08-15 14:37:36 +12:00
fjc40 b07c30704a The trackpoint line is now a line (poly-line) instead of a sequence of circles. A point along the poly-line is added every 250ms.
issue #18
2017-08-14 12:58:05 +12:00
fjc40 7366aba5ec Added empty data sources, to be used by VisualiserRace.
Created FrameRateTracker which can be used to track framerate.
Updated RequestToJoinEnum and JoinAcceptanceEnum to match the agreed connection API.
Added AssignPlayerBoat message, which is used internally on the client to assign the player a source ID once they have connected.
Fixed some race conditions in the MessageRouter.
Updated ConnectionAcceptor.CheckClientConnection to wait slightly longer before removing connection (there was a slight race condition before).
Race no longer has a reference to LatestMessages. LatestMessages no longer has specific messages types in it.
Created RaceState class, which contains the state that is shared between VisualiserRaceState and MockRaceState (currently only used on visualiser).
Split VisualiserRace into VisualiserRaceState and VisualiserRaceService.
Added the VisualiserRace commands (BoatLocatonCommand, RaceStatusCommand, etc...).
Slightly increased the preferred width of race.fxml table columns.
issues #27 #37 #35
#story[1095]
2017-08-14 00:53:05 +12:00
fjc40 19984772c0 Merge branch 'master' into story_61
Also got client-server handshake working. Multiple clients can connect and control their own boat.
The client's boat has a larger black triangle drawn around it. Probably needs tidying up.
Added isClientBoat boolean to VisualiserBoat.

WindGenerator is now an interface, implemented by ConstantWindGenerator (useful for testing) and RandomWindGenerator. Added ConstantWindGeneratorTest.
RandomWindGenerator was formerly WindGenerator.
The WindGenerator is passed in to MockRace.

CommandFactory throws a CommandConstructionException if it cannot create a command.

MessageSerialiser and MessageDeserialiser correctly terminate on error.

Readded VisualiserInput's switch statement in the main loop, pending a refactor.

Removed the sleep statement from LobbyController - it was blocking javaFX thread.

Lobby.fxml: moved buttons and text input into grid panes, so they don't break when you resize screen.

Added some test object creation functions in several test classes (MockRaceTest.createMockRace(), BoatXMLReaderTest.createBoatDataSource(), etc...).

#story[1095]
2017-08-10 23:49:21 +12:00
fjc40 3a85fad211 Currently, mock/pom.xml and visualiser/pom.xml build racevisionGame mock and visualiser.
Now using jetbrains nullable/notnull instead of sun (was causing maven issues).
2017-07-11 03:10:29 +12:00
fjc40 cab9bf9574 RaceClock no has run(), or is runnable, as it wasn't needed.
Refactored Sparkline a bit. Now listens to our data model instead of being manually updated. Boat position labels don't work currently, though.
VisualiserRace now also tracks the order in which boats pass each leg.
2017-07-11 02:04:53 +12:00
fjc40 7d3cf6ee80 I had accidentally broken the raceXML construction - fixed it.
Fixed a few issues where boat didn't have nextMark/previousMark times under certain circumstances.
LatestMessages wasn't actually notifying properly - fixed.
The various XML readers now treat a string constructor as containing file contents, not file name - this was how it was mostly already used.
Fixed some issues in RaceXMLReader, including where element.getChildNodes() was used instead of element.getElementsByName(...).
Boat: changes speed to a doubleProperty. Changed leg to a Property<Leg>.
Race.lastFps is now an IntegerProperty.
Added breaks to the case statements in VisualiserInput. Whoops.
ResizableRaceCanvas now handles drawing the race boundary. Tidied up code a bit.
Removed ResizableRaceMap.

Started refactoring Sparkline. Currently doesn't work.
2017-07-10 08:35:43 +12:00
fjc40 8d36d89570 Refactored and moved RaceXMLReader to shared/dataInput.
RaceStatus can provide windspeed in knots in addition to mm/sec.
RaceDataSource now provides a list of participating boat sourceIDs instead of boats.
Added a RegattaDataSource interface.
Angle, Azimuth, Bearing and mutable - careful.
Boat has positionInRace.
CompoundMarks have an ID and name.
Marks can be moved (setPosition(...)).

Refactored Mock.Race, Visualiser.StreamedCourse, Visualiser.StreamedRace, into (shared) Race, MockRace, VisualiserRace.

VisualiserBoat has color.
Added xml and polar files into resources folder.
2017-07-06 01:30:55 +12:00
fjc40 bbbb1f2eb0 Renamed sharedModel module to racevisionGame - this is intended to be our single module program.
Moved Boat/MockBoat/VisualiserBoat into it.
Moved Polars, polarParser, VMG, and polar exception.
Moved the networking stuff into it.
Moved angle, azimuth, bearing into it.
Moved gpscoordinate into it.
Moved mark/compoundMark into it.
Moved leg into it.
Moved trackpoint into it.
2017-07-04 15:53:17 +12:00