From 9bc36ba544113c0731414108d5bdc92ee2c5343c Mon Sep 17 00:00:00 2001 From: Jessica Syder Date: Mon, 11 Sep 2017 23:09:48 +1200 Subject: [PATCH] Merge branch 'master' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into controllerSplit # Conflicts: # racevisionGame/src/main/java/visualiser/Controllers/HostController.java # racevisionGame/src/main/java/visualiser/Controllers/MainController.java # racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java # racevisionGame/src/main/java/visualiser/Controllers/StartController.java # racevisionGame/src/main/java/visualiser/Controllers/TitleController.java # racevisionGame/src/main/resources/visualiser/scenes/raceView.fxml # racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml --- .../Controllers/LobbyController.java | 2 +- .../Controllers/RaceViewController.java | 94 +++++++------------ .../Controllers/TitleController.java | 23 +---- .../src/main/java/visualiser/app/App.java | 3 +- .../java/visualiser/enums/TutorialState.java | 6 -- .../resources/visualiser/scenes/title.fxml | 4 +- settings/keyBindings.xml | 2 +- 7 files changed, 44 insertions(+), 90 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java index 3f416536..8df0e4ed 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java @@ -57,7 +57,7 @@ public class LobbyController extends Controller { } else { joinGameBtn.setDisable(true); } - } catch (Exception e){} + } catch (Exception ignored){} } /** diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index b0403cac..5ff07193 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -12,7 +12,6 @@ import javafx.scene.chart.LineChart; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; -import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.StackPane; import javafx.scene.shape.MeshView; @@ -27,6 +26,7 @@ import visualiser.app.App; import visualiser.enums.TutorialState; import visualiser.gameController.ControllerClient; import visualiser.gameController.Keys.ControlKey; +import visualiser.gameController.Keys.KeyFactory; import visualiser.layout.Subject3D; import visualiser.layout.View3D; import visualiser.model.Sparkline; @@ -34,9 +34,12 @@ import visualiser.model.VisualiserBoat; import visualiser.model.VisualiserRaceEvent; import visualiser.model.VisualiserRaceState; import visualiser.utils.GPSConverter; + import java.io.IOException; import java.net.URL; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Map; import java.util.Optional; import java.util.logging.Level; import java.util.logging.Logger; @@ -73,7 +76,6 @@ public class RaceViewController extends Controller { private @FXML TableColumn boatMarkColumn; private @FXML TableColumn boatSpeedColumn; private @FXML LineChart sparklineChart; - private @FXML Label tutorialText; @@ -91,10 +93,35 @@ public class RaceViewController extends Controller { this.isHost = isHost; keyFactory.load(); + tutorialCheck(); initKeypressHandler(); initialiseRaceVisuals(); } + /** + * Checks if the current game is a tutorial race and sets up initial + * tutorial displays if it is. + */ + private void tutorialCheck(){ + if (App.gameType == 4) { + isTutorial = true; + tutorialText.setVisible(true); + tutorialStates = new ArrayList<>(Arrays.asList(TutorialState.values())); + + currentState = tutorialStates.get(0); + tutorialStates.remove(0); + searchMapForKey("Upwind"); + + tutorialText.setText( + "Welcome to the tutorial! Exit at anytime with ESC. \nWe will first learn how to turn upwind. Press " + + keyToPress + " to turn upwind."); + + } else { + isTutorial = false; + tutorialText.setVisible(false); + } + } + /** * Sets up the listener and actions that occur when a key is pressed. */ @@ -167,7 +194,6 @@ public class RaceViewController extends Controller { initialiseFps(); initialiseInfoTable(); initialiseView3D(); - initialiseArrow(); initialiseRaceClock(); raceTimer(); // start the timer new Sparkline(this.raceState, this.sparklineChart); @@ -374,45 +400,6 @@ public class RaceViewController extends Controller { }); } - - - /** - * Displays a specified race. - * @param visualiserRace Object modelling the race. - * @param controllerClient Socket Client that manipulates the controller. - * @param isHost is user a host - */ - public void startRace(VisualiserRaceEvent visualiserRace, ControllerClient controllerClient, Boolean isHost) { - - this.visualiserRace = visualiserRace; - this.controllerClient = controllerClient; - this.isHost = isHost; - - - //Check if the game is a tutorial - if (parent.getGameType()==4){ - isTutorial = true; - tutorialText.setVisible(true); - tutorialStates = new ArrayList<>(Arrays.asList(TutorialState.values())); - - currentState = tutorialStates.get(0); - tutorialStates.remove(0); - - searchMapForKey("Upwind"); - - tutorialText.setText("Welcome to the tutorial! Exit at anytime with ESC. \nWe will first learn how to turn upwind. Press " + keyToPress + " to turn upwind."); - - } else { - isTutorial = false; - tutorialText.setVisible(false); - } - - initialiseRace(); - - //Display this controller. - racePane.setVisible(true); - } - /** * Transition from the race view to the finish view. */ @@ -422,16 +409,6 @@ public class RaceViewController extends Controller { fc.loadFinish(raceState.getBoats()); } - - /** - * Initialises the arrow controller with data from the race to observe. - * @param race The race to observe. - */ - private void initialiseArrow(VisualiserRaceEvent race) { - arrowController.setWindProperty(race.getVisualiserRaceState().windProperty()); - } - - /** * Timer which monitors the race. */ @@ -581,19 +558,16 @@ public class RaceViewController extends Controller { alert.setContentText("Now you know the controls you are ready to race!"); Optional result = alert.showAndWait(); if (result.get() == ButtonType.OK) { - parent.endEvent(); - racePane.setVisible(false); - App.app.showMainStage(App.getStage()); + App.game.endEvent(); + loadTitleScreen(); } break; default: //State not found. Exit tutorial to title menu - parent.endEvent(); - racePane.setVisible(false); - App.app.showMainStage(App.getStage()); + App.game.endEvent(); + loadTitleScreen(); break; } - } } \ No newline at end of file diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index 721833f4..aaf17739 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -1,28 +1,15 @@ package visualiser.Controllers; import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.RadioButton; import javafx.scene.image.Image; import javafx.scene.image.ImageView; -import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import javafx.stage.Modality; -import javafx.stage.Stage; -import mock.app.Event; -import mock.exceptions.EventConstructionException; -import javafx.stage.WindowEvent; import visualiser.app.App; import java.io.IOException; -import java.net.URL; -import java.util.ResourceBundle; -import java.util.logging.Level; -import java.util.logging.Logger; /** * Controller for the opening title window. @@ -93,12 +80,10 @@ public class TitleController extends Controller { } } - - public void tutorialStartPressed() throws IOException { - titleWrapper.setVisible(false); - parent.setGameType(4); - parent.beginGame(); - + public void tutorialStartPressed() { + App.gameType = 4; + HostGameController hgc = new HostGameController(); + hgc.hostGamePressed(); } } \ No newline at end of file diff --git a/racevisionGame/src/main/java/visualiser/app/App.java b/racevisionGame/src/main/java/visualiser/app/App.java index 316387c9..2e3287ae 100644 --- a/racevisionGame/src/main/java/visualiser/app/App.java +++ b/racevisionGame/src/main/java/visualiser/app/App.java @@ -3,7 +3,6 @@ package visualiser.app; import javafx.animation.FadeTransition; import javafx.application.Application; import javafx.application.Platform; -import javafx.beans.property.ReadOnlyObjectProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.concurrent.Task; @@ -14,7 +13,6 @@ import javafx.geometry.Rectangle2D; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Label; -import javafx.scene.control.ListView; import javafx.scene.control.ProgressBar; import javafx.scene.effect.DropShadow; import javafx.scene.image.Image; @@ -32,6 +30,7 @@ public class App extends Application { private static Stage stage; public static Event game; public static Boolean dayMode = true; + public static Integer gameType = 0; private Pane splashLayout; private ProgressBar loadProgress; private Label progressText; diff --git a/racevisionGame/src/main/java/visualiser/enums/TutorialState.java b/racevisionGame/src/main/java/visualiser/enums/TutorialState.java index ab811a43..9764f130 100644 --- a/racevisionGame/src/main/java/visualiser/enums/TutorialState.java +++ b/racevisionGame/src/main/java/visualiser/enums/TutorialState.java @@ -1,12 +1,6 @@ package visualiser.enums; -import javafx.scene.input.KeyCode; -import network.Messages.BoatAction; import network.Messages.Enums.BoatActionEnum; -import visualiser.gameController.Keys.ControlKey; -import static visualiser.app.App.keyFactory; - -import java.util.ArrayList; /** * State of which stage the tutorial is currently in diff --git a/racevisionGame/src/main/resources/visualiser/scenes/title.fxml b/racevisionGame/src/main/resources/visualiser/scenes/title.fxml index da0b495b..eae21544 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/title.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/title.fxml @@ -40,7 +40,9 @@ -