- removed a lot of unecessary parameters
- simplified set up functions
- racecontroller works on its own now
- made all the scenes visible by default
#story[1261]
- scenes do not load in at the same time
- scenes do not rely upon previous abstract controller class
- scenes are not a part of previous main controller class
- unecessary functions and code removed
#story[1261]
Vmg fix
Note: there should be a small deadzone between upwind and reaching/running where pressing the key has no effect so that issues in judging the exact TWA of the boat don't lead to a surprising direction change.
Turn off toggle
Remember to close Issue#43 when you have finished DoD'ing
See merge request !37
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
- Removed prints from tests
- Added Javadocs in necessary places
- Reenabled boat status message to send
- Added boat average angle
- pulled out modulateAngle function
- Commented harder to read loops
- Disabled toggled VMG
#story[1182]
- loadScene method to load into current stage
- loadPopupScene method to load into a new window
- icon added to popup windows
- load methods return Controller of the new scee
- KeyBindingsController extends new Controller class and works correctly
#story[1261]
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]
- 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]
- 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]