From 5ce34bed929ab09fce27fd23df94687f1ee56cda Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 13 Jul 2017 14:35:41 +1200 Subject: [PATCH] Key presses now assigned to enum and empty packet class is constructed. #pair[kre39,zyt10] #story[988] --- .../java/seng302/controllers/Controller.java | 33 +++++++++++-------- .../stream/packets/BoatActionPacket.java | 18 ++++++++++ .../models/stream/packets/BoatActionType.java | 32 ++++++++++++++++++ 3 files changed, 70 insertions(+), 13 deletions(-) create mode 100644 src/main/java/seng302/models/stream/packets/BoatActionPacket.java create mode 100644 src/main/java/seng302/models/stream/packets/BoatActionType.java diff --git a/src/main/java/seng302/controllers/Controller.java b/src/main/java/seng302/controllers/Controller.java index 481c6ad6..ba5280dc 100644 --- a/src/main/java/seng302/controllers/Controller.java +++ b/src/main/java/seng302/controllers/Controller.java @@ -1,18 +1,17 @@ package seng302.controllers; -import com.sun.org.apache.bcel.internal.generic.BREAKPOINT; -import javafx.event.EventHandler; +import java.io.IOException; +import java.net.URL; +import java.util.ResourceBundle; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; - -import java.io.IOException; -import java.net.URL; -import java.util.ResourceBundle; import seng302.models.stream.StreamParser; +import seng302.models.stream.packets.BoatActionPacket; +import seng302.models.stream.packets.BoatActionType; public class Controller implements Initializable { @@ -44,32 +43,40 @@ public class Controller implements Initializable { /** Handle the key-pressed event from the text field. */ public void keyPressed(KeyEvent e) { + BoatActionPacket boatActionPacket; switch (e.getCode()){ case SPACE: // align with vmg - System.out.println("Key pressed = space"); + boatActionPacket = new BoatActionPacket(BoatActionType.VMG); + boatActionPacket.sendPacket(); break; case PAGE_UP: // upwind - System.out.println("Key pressed = page up"); + boatActionPacket = new BoatActionPacket(BoatActionType.UPWIND); + boatActionPacket.sendPacket(); break; case PAGE_DOWN: // downwind - System.out.println("Key pressed = page down"); + boatActionPacket = new BoatActionPacket(BoatActionType.DOWNWIND); + boatActionPacket.sendPacket(); break; case ENTER: // tack/gybe - System.out.println("Key pressed = enter"); + boatActionPacket = new BoatActionPacket(BoatActionType.TACK_GYBE); + boatActionPacket.sendPacket(); break; + //TODO Allow a zoom in and zoom out methods case Z: // zoom in - System.out.println("Key pressed = z"); + System.out.println("Zoom in"); break; case X: // zoom out - System.out.println("Key pressed = x"); + System.out.println("Zoom out"); break; } } public void keyReleased(KeyEvent e) { switch (e.getCode()) { + //TODO 12/07/17 Determine the sail state and send the appropriate packet (eg. if sails are in, send a sail out packet) case SHIFT: // sails in/sails out - System.out.println("Key pressed = shift"); + BoatActionPacket boatActionPacket = new BoatActionPacket(BoatActionType.SAILS_IN); + boatActionPacket.sendPacket(); break; } } diff --git a/src/main/java/seng302/models/stream/packets/BoatActionPacket.java b/src/main/java/seng302/models/stream/packets/BoatActionPacket.java new file mode 100644 index 00000000..cc2f6943 --- /dev/null +++ b/src/main/java/seng302/models/stream/packets/BoatActionPacket.java @@ -0,0 +1,18 @@ +package seng302.models.stream.packets; + +/** + * Created by kre39 on 12/07/17. + */ +public class BoatActionPacket { + + BoatActionType actionType; + + public BoatActionPacket(BoatActionType actionType) { + this.actionType = actionType; + } + + // Sends the packet to the server + public void sendPacket(){ + System.out.println(BoatActionType.getBoatPacketType(actionType)); + } +} diff --git a/src/main/java/seng302/models/stream/packets/BoatActionType.java b/src/main/java/seng302/models/stream/packets/BoatActionType.java new file mode 100644 index 00000000..654e1aa4 --- /dev/null +++ b/src/main/java/seng302/models/stream/packets/BoatActionType.java @@ -0,0 +1,32 @@ +package seng302.models.stream.packets; + +/** + * Created by kre39 on 12/07/17. + */ +public enum BoatActionType { + + VMG, + SAILS_IN, + SAILS_OUT, + TACK_GYBE, + UPWIND, + DOWNWIND; + + public static Short getBoatPacketType(BoatActionType type){ + switch (type){ + case VMG: + return 1; + case SAILS_IN: + return 2; + case SAILS_OUT: + return 3; + case TACK_GYBE: + return 4; + case UPWIND: + return 5; + case DOWNWIND: + return 6; + } + return 0; + } +}