From e670ded66d574b5fa882f5fc9b3331e30fb16457 Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Wed, 26 Jul 2017 23:40:39 +1200 Subject: [PATCH] ControllerClient can retrieve valid protocol code from each key press - ControlKey now includes protocolCode property - RaceController now fires action with each key press - Shift toggles sail state appropriately #story[1089] --- .../visualiser/Controllers/RaceController.java | 1 + .../gameController/ControllerClient.java | 2 +- .../gameController/Keys/ControlKey.java | 18 +++++++++++++++++- .../gameController/Keys/DownWindKey.java | 2 +- .../gameController/Keys/SailsToggleKey.java | 7 +++++-- .../gameController/Keys/TackGybeKey.java | 2 +- .../gameController/Keys/UpWindKey.java | 2 +- .../visualiser/gameController/Keys/VMGKey.java | 2 +- 8 files changed, 28 insertions(+), 8 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java index 97f1896d..2a4a4163 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java @@ -101,6 +101,7 @@ public class RaceController extends Controller { if(controlKey != null) { try { controllerClient.sendKey(controlKey); + controlKey.onAction(); // Change key state if applicable } catch (IOException e) { e.printStackTrace(); } diff --git a/racevisionGame/src/main/java/visualiser/gameController/ControllerClient.java b/racevisionGame/src/main/java/visualiser/gameController/ControllerClient.java index 8a74e394..d3e9fea8 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/ControllerClient.java +++ b/racevisionGame/src/main/java/visualiser/gameController/ControllerClient.java @@ -41,6 +41,6 @@ public class ControllerClient { */ public void sendKey(ControlKey key) throws IOException { // TODO - get and send action number currently corresponding to key (context dependent) - System.out.println(key.toString()); + System.out.println(key.toString() + ": " + key.getProtocolCode()); } } diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/ControlKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/ControlKey.java index 1af6b4d8..ad8a559a 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/ControlKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/ControlKey.java @@ -8,13 +8,29 @@ import javafx.scene.input.KeyCode; public abstract class ControlKey { private String name; + protected int protocolCode; /** - * Constructor for Control + * Constructor for key state with specified protocol code + * @param name of action + * @param protocolCode -1 if not sent + */ + public ControlKey(String name, int protocolCode) { + this.name = name; + this.protocolCode = protocolCode; + } + + /** + * Constructor for key state not sent over network * @param name name of the key */ public ControlKey(String name){ this.name = name; + this.protocolCode = -1; + } + + public int getProtocolCode() { + return protocolCode; } /** diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/DownWindKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/DownWindKey.java index 03be1c3f..6d929ca1 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/DownWindKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/DownWindKey.java @@ -11,7 +11,7 @@ public class DownWindKey extends ControlKey { * */ public DownWindKey(String name) { - super(name); + super(name, 6); } @Override diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java index 0a0c43d1..d29d3a8f 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java @@ -11,12 +11,15 @@ public class SailsToggleKey extends ControlKey { * */ public SailsToggleKey(String name) { - super(name); + super(name, 2); } + /** + * Toggle command associated with sails key + */ @Override public void onAction() { - + protocolCode = protocolCode == 2? 1 : 2; } @Override diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/TackGybeKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/TackGybeKey.java index 6bd91b47..cf9a0699 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/TackGybeKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/TackGybeKey.java @@ -11,7 +11,7 @@ public class TackGybeKey extends ControlKey { * */ public TackGybeKey(String name) { - super(name); + super(name, 4); } @Override diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/UpWindKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/UpWindKey.java index b7465683..85f7fc4b 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/UpWindKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/UpWindKey.java @@ -11,7 +11,7 @@ public class UpWindKey extends ControlKey { * */ public UpWindKey(String name) { - super(name); + super(name, 5); } @Override diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java index bd2cd16f..e6d82ba7 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java @@ -13,7 +13,7 @@ public class VMGKey extends ControlKey{ * @param name name of the key */ public VMGKey(String name) { - super(name); + super(name, 1); } @Override