Commit Graph
177 Commits
Author SHA1 Message Date
David Wu 65b960f725 Background of title now changes colour depending on day mode and night mode. Sun image also changes. This is so that the tutorial label is more visible during night mode. #story[1189] 2017-09-01 13:28:05 +12:00
David Wu ea029baf22 Tutorial option in title screen will now created a game with tutorial xmls. Host game will now created a game with the race xml instead of tutorial xml as well. Made changes to tutorial label in title. #story[1189] 2017-09-01 12:28:09 +12:00
fjc40 9156bde8af Moved XML message creation to RaceServer instead of ConnectionAcceptor.
RaceServer does not currently generate new XMLMessages - NYI.
Added a sequence number to RaceDataSource - this is used to indicate that the data source has been modified.
#story[1188]
2017-09-01 01:19:17 +12:00
zwu18 c7af4f2eb7 Made changes to tutorial xmls. Linked button in title menu to start up a race on mouse click. Will need to make it so it starts the tutorial on click. #story[1189] 2017-08-31 19:54:22 +12:00
Jessica Syder 8250226bde Key bindings can be updated with any key.
- Changed key press from FXML key event to a listener
- UP, DOWN, ENTER keys now work
- Keys no longer change cells or press buttons
- Added placeholder buttons Cancel, Reset and Save
- Added some JavaDoc

#story[1197]
2017-08-31 15:00:37 +12:00
Jessica Syder ad0e26e882 Created scene to view/update current key bindings.
- Current key bindings are shown on buttons
- Added button action events to store the clicked button
- Added key press event to entire pane
- Button text is updated to display its key
- Added functionality to keyFactory to update key bindings
- CSS styling for some components

#story[1197]
2017-08-30 17:16:15 +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
David Wu 86f1a608e4 Created xml for tutorial that contains start and finish line. TODO: Add gate/mark. #story[1189] 2017-08-30 14:51:56 +12:00
David Wu 23d58dc809 Created UI option in the start menu to play a practice game. #story[1189] 2017-08-30 13:26:18 +12:00
David Wu 028428da2c Fixed fxml issues due to merge. Added pane centering for panes. #story[1188] 2017-08-30 12:04:17 +12:00
David Wu d2f0c1105a Merged 3d branch. Added 3d item to one of the player pane. #story[1188] 2017-08-30 11:52:45 +12:00
David Wu b724a814b1 Merge branch 'story86-3D' into story77_lobby
# Conflicts:
#	racevisionGame/src/main/resources/visualiser/scenes/hostlobby.fxml
2017-08-30 11:46:00 +12:00
David Wu 88782182d7 Player panes and spectator list now call method on click. Will later be used for players to choose whether they want to play or spectate. #story[1188] 2017-08-30 11:39:41 +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
David Wu 7df181c759 Minor changes to new lobby fxml. #story[1188] 2017-08-29 19:08:22 +12:00
David Wu 892320db5f Added javadoc and extra files to push 2017-08-29 19:03:34 +12:00
David Wu c63403d1de Created new lobby menu. Working on animated background for menu. 2017-08-29 15:11:09 +12:00
fjc40 666c7b029f Disabled map rotation - temp fix for the demo.
Set race to use 3 boat race.xml file.
2017-08-17 22:26:56 +12:00
David Wu 5234cdea66 Merge branch 'master' into new_issue#19
# Conflicts:
#	racevisionGame/src/main/java/visualiser/Controllers/TitleController.java
2017-08-17 17:00:39 +12:00
David Wu f1ef75fb81 Merge branch 'master' into new_issue#19 2017-08-17 16:34:19 +12:00
David Wu 03dd937713 Change fxml stuff. Added back to menu buttons. 2017-08-17 16:33:52 +12:00
Joseph Gardner d41e52766b Merge branch 'master' into story_64_sails
# Conflicts:
#	racevisionGame/src/main/java/mock/model/MockRace.java
#	racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java
#	racevisionGame/src/main/java/visualiser/model/VisualiserBoat.java
2017-08-17 16:04:53 +12:00
Hamish Ball d2f9bfedcb Merge branch 'issue_18_track_alpha' into 'master'
Issue 18 track alpha

This should resolve #18.

Track point system is now a line, and updated more frequently.
Line fades over time.

The boat wake is also longer, and has a black dot at the end.

See merge request !28
2017-08-17 13:50:44 +12:00
Joseph Gardner 610aa96241 Merge branch 'MapWindRotation' into 'master'
Map wind rotation

Note: we'd like to generate a realistic course layout, that can vary from race to race (but not within a race, for now.) The generated layout must be sent through the API in the format given by the race.xml section of the AC35 Streaming Data Interface Specification. The AC35 Protocol (sections 31.4 and 31.5) specifies the requirements for a course:

*    First leg of the course (from start line to first mark) must be a reaching leg
*    Next legs are windward/leeward, and boats complete either two or three laps of this section
*    Final leg to finish line may be a reaching leg
*    A boat should take around 25 minutes to complete the course in the wind conditions at the start of the race (AC35 protocol, section 31.5)

You should assume that the windward/leeward marks and start/finish lines are always compounds of two marks.

Acceptance criteria:

 *   The layout must be sent over the API in a race.xml message, plus boat location messages for the marks as required, before any other boat location messages are sent.
 *   Each mark must be defined using boat "SourceID"s (see definition of race.xml) so their positions can be adjusted later.
 *   The course must meet the requirements given in the AC35 Protocol.
 *   The course limits should be set to clear all marks by at least several boat-lengths.
 *   The entire race area within the limits must be on the water.

See merge request !22
2017-08-17 13:50:21 +12:00
Joseph Gardner 4cf8846cda Map wind rotation works with multiplayer xml. #story[1092] 2017-08-17 12:17:45 +12:00
Joseph Gardner 1e7ba8cd51 Merge branch 'master' into MapWindRotation
# Conflicts:
#	racevisionGame/src/main/java/mock/app/Event.java
#	racevisionGame/src/main/java/mock/model/MockRace.java
#	racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java
#	racevisionGame/src/main/java/shared/dataInput/RaceXMLReader.java
#	racevisionGame/src/main/java/shared/model/CompoundMark.java
#	racevisionGame/src/main/java/shared/model/Mark.java
#	racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java
#	racevisionGame/src/main/java/visualiser/Controllers/HostController.java
#	racevisionGame/src/main/java/visualiser/app/VisualiserInput.java
#	racevisionGame/src/main/java/visualiser/gameController/ControllerServer.java
#	racevisionGame/src/main/java/visualiser/model/VisualiserRace.java
2017-08-17 11:46:09 +12:00
Joseph f60809bdd4 Merge branch 'master' into story_64_sails
# Conflicts:
#	racevisionGame/src/main/java/mock/app/MockOutput.java
#	racevisionGame/src/main/java/mock/model/MockRace.java
#	racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java
#	racevisionGame/src/main/java/network/MessageDecoders/BoatActionDecoder.java
#	racevisionGame/src/main/java/network/MessageDecoders/BoatLocationDecoder.java
#	racevisionGame/src/main/java/visualiser/app/VisualiserInput.java
#	racevisionGame/src/main/java/visualiser/gameController/ControllerServer.java
#	racevisionGame/src/main/java/visualiser/model/ResizableRaceCanvas.java
#	racevisionGame/src/main/java/visualiser/model/VisualiserRace.java
#	racevisionGame/src/main/resources/visualiser/scenes/connect.fxml
#	racevisionGame/src/main/resources/visualiser/scenes/lobby.fxml
#	racevisionGame/src/test/java/mock/model/MockRaceTest.java
#	racevisionGame/src/test/java/network/Utils/AC35UnitConverterTest.java
#	racevisionGame/src/test/java/network/XMLMessageEncoderTest.java
2017-08-17 09:13:49 +12:00
zwu18 317582aae8 Merge branch 'issue#20fix' into Development 2017-08-17 01:35:33 +12:00
zwu18 4e8b7d3b5a Merge remote-tracking branch 'origin/master' into issue#20fix 2017-08-17 01:30:43 +12:00
zwu18 8759ac070e Merge remote-tracking branch 'origin/splashScreen' into issue#20fix 2017-08-17 01:30:38 +12:00
fjc40 114c18763b Reduced track point period to 1000ms.
issue #18
2017-08-16 19:44:42 +12:00
hba56 fdd0b30a51 Added the ability to hide and show info table with a key press
-the wind arrow also scales with the new size of the screen
2017-08-16 02:04:07 +12:00
zwu18 5e0bcd2af5 Added control menu to title screen. Pressing control button will open a pop-up window showing game controls. 2017-08-15 21:26:23 +12:00
fjc40 5ae8393126 Fixed null pointer exception when a boat finishes the race.
Boats now default to have position (0, 0).
Added mark rounding data to single player race.xml
2017-08-15 17:13:12 +12:00
fjc40 3a0bd10a57 Merge remote-tracking branch 'origin/master' into story_61
# Conflicts:
#	racevisionGame/src/main/java/mock/model/MockRace.java
#	racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java
#	racevisionGame/src/main/java/visualiser/gameController/ControllerClient.java
#	racevisionGame/src/main/java/visualiser/gameController/ControllerServer.java
#	racevisionGame/src/main/resources/visualiser/scenes/race.fxml
2017-08-15 14:49:58 +12:00
Jessica Syder 0558629dc6 Added luffing sails image.
- Created transparent gif of luffing sail
- Displayed image when sail is luffing
- Repositioned luffing sail

#story[1098]
2017-08-14 10:42:28 +12:00
Fan-Wu Yang ac42c07c69 Merge branch 'master' into MapWindRotation
# Conflicts:
#	racevisionGame/src/main/java/mock/app/Event.java
#	racevisionGame/src/main/java/mock/model/MockRace.java
#	racevisionGame/src/main/java/visualiser/app/VisualiserInput.java
#	racevisionGame/src/main/java/visualiser/model/VisualiserRace.java
2017-08-14 03:54:02 +12:00
Fan-Wu Yang b5e414f97a Made all the model classes extend off the schema xml classes for race, and made xml builder, validator and reader utility class.
#story[1092]
2017-08-14 03:47:42 +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
Fan-Wu Yang 70d5447e88 Moving stuff from school pc to home 2017-08-13 23:03:16 +12:00
Fan-Wu Yang 8999cddf8b Pre merge commit 2017-08-13 22:16:16 +12:00
zwu18 a31eb078a6 Created a splash screen for application. 2017-08-12 16:27:12 +12:00
hba56 62e37489ee starboard rounding update
#story[1101]
2017-08-12 03:41:50 +12:00
hba56 499a409d4f Merge branch 'master' into story68
-updated port and starboard boat checks
-added gps method to check if on correct side of a line
-updated pos check method to make boats round marks with the new tech

# Conflicts:
#	racevisionGame/src/main/java/mock/app/ConnectionAcceptor.java
#	racevisionGame/src/main/java/mock/app/Event.java
#	racevisionGame/src/main/java/mock/model/commandFactory/TackGybeCommand.java
#	racevisionGame/src/main/java/mock/model/commandFactory/VMGCommand.java
2017-08-12 03:24:20 +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
hba56 4da3734804 added the ability to toggle the race guide line on and off
#story[1087]
2017-08-10 12:17:19 +12:00
Joseph Gardner 1302769a50 Merge branch 'Development' into story_64_sails
# Conflicts:
#	racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java
#	racevisionGame/src/main/java/visualiser/model/ResizableRaceCanvas.java
#	racevisionGame/src/test/java/mock/model/MockBoatTest.java
2017-08-10 11:56:09 +12:00
Joseph 41d09f587e Merge branch 'master' into story_64_sails
# Conflicts:
#	racevisionGame/src/main/java/visualiser/gameController/Keys/ControlKey.java
#	racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java
#	racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java
#	racevisionGame/src/main/java/visualiser/model/ResizableRaceCanvas.java
2017-08-10 08:58:43 +12:00
hba56 747c31b948 Merge remote-tracking branch 'remotes/origin/story68' into Development 2017-08-07 12:29:56 +12:00
Jessica Syder 7c5670f8c2 Sails are displayed on first boat in a race. Optimised imports.
- Implemented drawSails method
- Sail position is displayed and updated using a boat's heading
- Sails conform to 'Points of sail'
- Javadoc'd new method and tidied up existing
- Sped up track point frequency (visualiserBoat class)
- Optimised imports (any other classes changed)
- A lot of canvas drawing and sail rotating issues were discovered and eventually overcome along the way. Using a sail image to draw and rotate on the existing canvas rather than a JavaFX shape on a new canvas was the final decision.

#story[1098]
2017-08-07 12:20:52 +12:00