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]
This commit is contained in:
Connor Taylor-Brown
2017-07-26 22:57:01 +12:00
parent 9a76fa592c
commit cc264f318e
9 changed files with 125 additions and 8 deletions
@@ -19,6 +19,7 @@ import shared.exceptions.InvalidRaceDataException;
import shared.exceptions.InvalidRegattaDataException;
import shared.exceptions.XMLReaderException;
import visualiser.app.VisualiserInput;
import visualiser.gameController.ControllerClient;
import visualiser.model.VisualiserBoat;
import visualiser.model.VisualiserRace;
@@ -76,6 +77,8 @@ public class StartController extends Controller implements Observer {
*/
private VisualiserRace visualiserRace;
private ControllerClient controllerClient;
/**
* An array of colors used to assign colors to each boat - passed in to the VisualiserRace constructor.
*/
@@ -258,7 +261,7 @@ public class StartController extends Controller implements Observer {
startWrapper.setVisible(false);
start.setVisible(false);
parent.beginRace(visualiserInput, visualiserRace);
parent.beginRace(visualiserInput, visualiserRace, controllerClient);
}
}
}.start();
@@ -308,6 +311,8 @@ public class StartController extends Controller implements Observer {
try {
//Begin reading packets from the socket/server.
this.visualiserInput = new VisualiserInput(socket);
//Send controller input to server
this.controllerClient = new ControllerClient(socket);
//Store a reference to latestMessages so that we can observe it.
LatestMessages latestMessages = this.visualiserInput.getLatestMessages();
latestMessages.addObserver(this);