Wind (story53)
AC:
Note: "Back" means that the wind shifts counterclockwise while "veer" means clockwise. Shifts should follow the following patterns:
1. The wind should usually oscillate regularly around a mean (several minutes per oscillation and no more than 5 degrees either way.)
2. Occasionally it will either "back" or "veer" (a few degrees a minute, up to 180 degrees shift), and then return to oscillations.
Acceptance criteria:
- The wind direction follows the above patterns during a race.
* Test wind works at 0 to small degree amounts.
See merge request !36
C keybindings
AC:
* All keybindings can be easily changed in the start screen
* Buttons are replacable on clicking on the current button assigned.
* When the current button assigned is clicked the text should turn "blank" and return to with text after a new button has been pressed or escape has been pressed.
* There cannot be more than one active replace button at a time.
* Reset to default should reset to the keys defined by the P.O (but with UP, DOWN instead of PG_UP, PG_DWN)
* Buttons should not save until the user exits with "save"
See merge request !35
Story 77 task 7 - update xml files at runtime
Task: [S] Adjust race XML so that you can modify the number of boats in a race.
When clients connect they are added to the participant list, and an updated race.xml is sent out.
When they disconnect/timeout, they are unassigned a boat and updated race.xml is sent out.
Also contains code for sending updated boats.xml and regatta.xml.
See merge request !34
- trying to solve jar file reading issue
- learnt a lot about jars including their lack of file structure
- changed location of keybindings settings to outside of jar
- added new folder/file that is generated on first run
#story[1197]
- Works on windows computers
- KeyFactory processes its own XML saving/loading
- Does not work with Jar yet
- Changed keyFactory to static temporarily to work with existing FXML loading architecture
#story[1197]
Story86 3D
Provide a 3D view for the lobby to view boats.
Acceptance Criteria:
- Mesh is loaded from file and is displayed rotating at a reasonable turn rate.
- 3D view can be used as a JavaFX node with no coupling to model.
See merge request !33
- Created a notification popups for errors
- Added functionality to save, cancel and reset buttons
- Key bindings are only saved if they're valid
- Added window close event
- Can not exit without saving correctly
- CSS to cancel, save and reset buttons to differentiate between key buttons
- Javadocd
#story[1197]
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]
RaceLogic now calls MockRace.initialiseBoats() after the prestart period has finished.
MockRace create a VisualiserBoat when a source ID is allocated.
MockOutput now sends updated XML messages during the race, instead of only at the start.
#story[1188]
- On binding new key existing keys are searched
- If key is in use the old one is removed
- ControlKey is updated with a placeholder key value
#story[1197]
- Changed KeyFactory to not be a singleton
- Simplified keyBindings initializer
- Modified and simplified keyListener
- Added method to copy existing keyState
- Changed button events
- Changed to newer lambda functions
- Modified updateKey method
- Left option for multiple keys bound to one command
- Updated and wrote new JavaDoc
#story[1197]
Now uses RaceState as its base class, rather than Race. This aligns it with VisualiserRace. RaceState contains the shared race state between the client and server, and stores most of its data in RaceDataSource etc..., instead of maintaining its own copy.
Moved collider registry member to MockRace.
XMLUtilities:
Added documentation to two important functions, and updated them to use generics instead of Objects.
#story[1188]
- 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]
- 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]