Commit Graph
59 Commits
Author SHA1 Message Date
David Wu b22c5c5cd6 Created xml for new course layout. Marks and such are all added. Need to set up boundary when I have time. #story[1193] 2017-09-05 20:09:56 +12:00
fjc40 a9fde95b39 Updated maven version to 2.0.
Added a dedicatedServer module.
Removed Visualiser module.
Removed mock module.
Removed network module.
Fixed weird exception non-handling that appeared for some reason.
2017-08-18 22:55:50 +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
Joseph Gardner dcd1df2999 Merged master. 2017-08-17 16:26:00 +12:00
Fan-Wu Yang 83b0c0a6b4 Fixed issue using File from java.io.File which did not like maven 2017-08-17 16:24:54 +12:00
David Wu 09eaf6d968 Merged master. 2017-08-17 13:55:49 +12:00
David Wu 5a188f0582 Merge branch 'master' into new_issue#19 2017-08-17 13:52:04 +12:00
David Wu c08bafa566 Fixed most of issue #19 with new master? 2017-08-17 13:49:43 +12:00
Fan-Wu Yang 7546c65893 Merge branch 'master' into MapWindRotation
# Conflicts:
#	racevisionGame/src/main/java/shared/model/CompoundMark.java
#	racevisionGame/src/main/java/shared/model/Mark.java
2017-08-17 12:59:54 +12:00
David Wu 6bc81f566e Issue 19 changes. 2017-08-17 12:50:41 +12:00
Joseph Gardner 4cf8846cda Map wind rotation works with multiplayer xml. #story[1092] 2017-08-17 12:17:45 +12:00
Connor Taylor-Brown 4b3cc8e126 Created ack number generator for use by multiple services
#story[1100]
2017-08-17 11:47:54 +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
Fan-Wu Yang 8d87da6206 fixed java doc issues on my side #story[1092] 2017-08-15 22:44:56 +12:00
fjc40 bcb6b79f8d Fixed player boat not being highlighted.
#story[1095]
2017-08-15 22:41:43 +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
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 7c6f0931ba Transferring files from my laptop to desktop to work on, may be broken. 2017-08-12 23:18:54 +12:00
fjc40 6e5fb62880 Added REQUEST_RECEIVED and DECLINED to ConnnectionStateEnum.
#story[1095]
2017-08-12 01:05:45 +12:00
fjc40 b625b6ab05 XMLReader.readXMLFileToString no longer throws a Transformer exception. 2017-08-11 22:38:39 +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 130ffcbf07 Fixed some merge issues. 2017-08-10 13:16:53 +12:00
fjc40 805c12bf41 Merge remote-tracking branch 'origin/master' into issue_28_36_decoders
# Conflicts:
#	racevisionGame/src/main/java/mock/app/ConnectionAcceptor.java
#	racevisionGame/src/main/java/mock/app/Event.java
#	racevisionGame/src/main/java/visualiser/gameController/ControllerServer.java
2017-08-10 13:12:26 +12:00
fjc40 7cc39abe57 WIP. Probably need to cherry pick stuff out of here.
Added ClientConnection and server-side handshake.
Added MessageSerialiser and Deserialiser.
#story[1095]
2017-08-10 12:13:40 +12:00
Connor Taylor-Brown 55798447ab Cherry-picked CommandFactory connection between ControllerServer and RaceLogic.
#story[1096]
2017-08-07 14:25:30 +12:00
fjc40 634d78ab70 Added names to threads created.
MockOutput had a nested while loop, but it wasn't needed. Also tidied some of the error handling in MockOutput.

#story[1095]
2017-08-07 13:42:50 +12:00
fjc40 b1922fc3fc Added RaceStatusEncoder.
Refactored RaceStatusDecoder to be more consistent with other decoders - it now has a getMessage() function.
Added BoatStatus encoder and decoder - the RaceStatus encoder and decoder uses this for BoatStatuses. The BoatStatus encoder doesn't implement the MessageEncoder interface as BoatStatus is not a proper message type (doesn't inherit from AC35Data).
Added remaining cases to EncoderFactory, but commented them out.
BoatStatus now uses BoatStatusEnum instead of a byte.
Added some comments to RaceStatus, and it uses enums instead of bytes.
MockOutput logs a warning if a RaceStatus cannot be encoded.
Added a BoatStatusDecoderTest.
Updated RaceStatusDecoder to use new encoders/decoders.
issue #35 #36
#story[1095]
2017-08-06 13:38:27 +12:00
fjc40 b486f99dbe Added XMLMessageEncoder.
Refactored XMLMessageDecoder to be consistent with other decoders - only needs to expose the XMLMessage.
Refactored BoatLocationDecoder to be consistent with other decoders - only needs to expose the BoatLocation.
Updated XMLMessageDecoderTest to use new encoder/decoder. Also tests all three message types.
Removed XMLMessageEncoderTest as it was redundant.
Updated BinaryMessageDecoderTest.xmlMessageTest() to use updated XMLMessage encoder/decoder.
issue #35 #36
#story[1095]
2017-08-06 01:01:05 +12:00
fjc40 8ef906472b Renamed Heartbeat to HeartBeat.
Added HeartBeatDecoder.
Added HeartBeatEncoder.
BinaryMessageDecoder now uses HeartBeatDecoder.
MockOutput now logs a warning if a heartBeat cannot be encoded.
Added HeartBeatDecoderTest.
issue #35 #36
#story[1095]
2017-08-05 23:27:28 +12:00
fjc40 c3ed30019c Added BoatLocationEncoder.
Updated BoatLocationDecoder test to use new encoder.
Updated MockOutput to use new encoder. It logs a warning if encoding fails.

#story[1095]
2017-08-05 22:11:54 +12:00
Fan-Wu Yang f23c3f854d Seperated race xml creation into a class of its own
- Created RaceXMLCreator class
- made a function to convert limit to GPS Coordinate (limitToGPSCoordinate)
- can rotate a GPS Coordinate around a point (rotate)
- can get center of a race with (getCenter)
#story[1092]
2017-08-03 23:13:28 +12:00
Fan-Wu Yang 4e8d4f2433 Created Schema for Race xml's and generated classes for reading xml with xjc, made the RaceXMLReader read Corner classes in as well as making a corner class #story[1092] 2017-08-03 02:42:33 +12:00
Connor Taylor-Brown 2672c2b13b Separated RaceLogic from MockRace
- MockRace satisfies refactor requirement for RaceState
- VisualiserRace directly implements Runnable to remove method from MockRace

#story[1094]
2017-08-03 00:32:17 +12:00
Fan-Wu Yang 442920f9f6 DOD, and added javadocs/fixed javadocs #story[1087] 2017-07-27 16:24:19 +12:00
Jessica Syder 402df18b71 Merge remote-tracking branch 'remotes/origin/master' into css 2017-07-27 14:31:33 +12:00
Joseph Gardner 6492ba89ab Merging main features into story 6. App now sends and receives key strokes. #story[1007, 1089] 2017-07-27 12:36:34 +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
zwu18 88604df66d Merge branch 'cbt-multi-controller' into css
# Conflicts:
#	racevisionGame/src/main/java/mock/app/App.java
#	racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java
#	racevisionGame/src/main/java/visualiser/app/App.java
#	racevisionGame/src/main/java/visualiser/model/RaceConnection.java
#	racevisionGame/src/main/resources/visualiser/scenes/connect.fxml
2017-07-26 20:54:07 +12:00
zwu18 9c9b98f882 Added functionality to host game and join a game in lobby. Host name and game name are not implemented yet.
#story[1087]
2017-07-26 20:42:36 +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
Fan-Wu Yang eec0cb3493 Added fairness to mockOuput list so the index will correspond to the player in order that they entered the hosted game, #story[1010] 2017-07-24 17:40:46 +12:00
Fan-Wu Yang cfd858194e Removed Unecessary Print Messages
- Removed xml's printing at the start as well as the amount of visualisers connected from spamming the log.
- Issue of visualisers connecting when not actually connecting was actually an visual issue as the log spits out the number of visualisers right now before the loop has gotten rid of the useless sockets.
#story[1010]
2017-07-24 17:36:47 +12:00
Fan-Wu Yang 9f99e21232 Added functionality for more than one visualiser to connect to the mock.
- more than one visualiser can now connect to the mock.
- Created class ConnectionAcceptor that will accept and allocate to each socket
- Issue of sockets connecting after the race starts then disconnecting will use a socket slot.
#story[1010]
2017-07-24 17:27:49 +12:00
hba56 0d5bede349 java doc fixes to fix the ci build problems
#story[1003]
2017-07-21 10:25:36 +12:00
fjc40 5cddaaed8e mock.app.App now tells mock.app.Event that the xml file strings are XMLFileType.Contents.
Made network.MessageEncoders.RaceVisionByteEncoder methods static (they were effectively static already).

shared.dataInput.XMLReader#readXMLFileToString(..) now throws an XMLReaderException if the file cannot be found.

visualiser.Controllers.StartController assumed XML messages were resource paths instead of file contents - fixed.

Testing:
networking tests now work again.
2017-07-20 01:01:29 +12:00