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,11 +19,13 @@ import javafx.util.Callback;
import network.Messages.Enums.RaceStatusEnum;
import shared.model.Leg;
import visualiser.app.VisualiserInput;
import visualiser.gameController.ControllerClient;
import visualiser.gameController.Keys.ControlKey;
import visualiser.gameController.Keys.KeyFactory;
import visualiser.model.*;
import java.awt.*;
import java.io.IOException;
import java.net.URL;
import java.text.DecimalFormat;
import java.util.ResourceBundle;
@@ -58,6 +60,11 @@ public class RaceController extends Controller {
*/
private Sparkline sparkline;
/**
* Service for sending keystrokes to server
*/
private ControllerClient controllerClient;
@FXML private GridPane canvasBase;
@FXML private Pane arrow;
@@ -90,7 +97,11 @@ public class RaceController extends Controller {
String codeString = event.getCode().toString();
ControlKey controlKey = KeyFactory.getKey(codeString);
if(controlKey != null) {
System.out.println(controlKey.toString() + " is Pressed.");
try {
controllerClient.sendKey(controlKey);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
@@ -324,10 +335,11 @@ public class RaceController extends Controller {
* @param visualiserInput Object used to read packets from server.
* @param visualiserRace Object modelling the race.
*/
public void startRace(VisualiserInput visualiserInput, VisualiserRace visualiserRace) {
public void startRace(VisualiserInput visualiserInput, VisualiserRace visualiserRace, ControllerClient controllerClient) {
this.visualiserInput = visualiserInput;
this.visualiserRace = visualiserRace;
this.controllerClient = controllerClient;
initialiseRace();