diff --git a/racevisionGame/src/main/java/visualiser/Controllers/HostController.java b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java new file mode 100644 index 00000000..1e7191e5 --- /dev/null +++ b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java @@ -0,0 +1,46 @@ +package visualiser.Controllers; + +import javafx.application.Application; +import javafx.fxml.FXML; +import javafx.scene.control.*; +import javafx.scene.layout.AnchorPane; +import javafx.stage.Stage; +import mock.app.App; + +import java.io.IOException; +import java.net.URL; +import java.util.ResourceBundle; + +/** + * Created by zwu18 on 25/07/17. + */ +public class HostController extends Controller { + + + @FXML + TextField gameNameField; + + @FXML + TextField hostNameField; + + @FXML + AnchorPane hostWrapper; + + @Override + public void initialize(URL location, ResourceBundle resources) { + } + + public void hostGamePressed() throws IOException{ + System.out.println("TODO: Run mock"); + } + + public AnchorPane startWrapper(){ + return hostWrapper; + } + + public void hostGame(){ + hostWrapper.setVisible(true); + System.out.println("Reacted hostGame"); + } + +} diff --git a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java new file mode 100644 index 00000000..c32d7efc --- /dev/null +++ b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java @@ -0,0 +1,29 @@ +package visualiser.Controllers; + +import javafx.fxml.FXML; +import javafx.scene.layout.AnchorPane; + +import java.net.URL; +import java.util.ResourceBundle; + +/** + * Created by zwu18 on 25/07/17. + */ +public class LobbyController extends Controller { + + @FXML + AnchorPane lobbyWrapper; + + @Override + public void initialize(URL location, ResourceBundle resources) { + + } + + public AnchorPane startWrapper(){ + return lobbyWrapper; + } + + public void enterLobby(){ + lobbyWrapper.setVisible(true); + } +} diff --git a/racevisionGame/src/main/java/visualiser/Controllers/MainController.java b/racevisionGame/src/main/java/visualiser/Controllers/MainController.java index 262c3c8a..90469871 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/MainController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/MainController.java @@ -20,7 +20,9 @@ public class MainController extends Controller { @FXML private RaceController raceController; @FXML private ConnectionController connectionController; @FXML private FinishController finishController; - + @FXML private TitleController titleController; + @FXML private HostController hostController; + @FXML private LobbyController lobbyController; /** @@ -56,6 +58,21 @@ public class MainController extends Controller { finishController.enterFinish(boats); } + /** + * Transitions into the title screen + */ + public void enterTitle(){ titleController.enterTitle(); } + + /** + * Transitions into lobby screen + */ + public void enterLobby(){ lobbyController.enterLobby(); } + + /** + * Transitions into host game screen + */ + public void hostGame(){ hostController.hostGame(); } + /** * Main Controller for the applications will house the menu and the displayed pane. * @@ -69,6 +86,10 @@ public class MainController extends Controller { raceController.setParent(this); connectionController.setParent(this); finishController.setParent(this); + titleController.setParent(this); + hostController.setParent(this); + lobbyController.setParent(this); + AnchorPane.setTopAnchor(startController.startWrapper(), 0.0); AnchorPane.setBottomAnchor(startController.startWrapper(), 0.0); diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index 0fd1b545..0e4842fe 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -6,9 +6,12 @@ import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.image.Image; +import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; import java.io.IOException; +import java.net.URL; +import java.util.ResourceBundle; /** * Controller for the opening title window. @@ -16,8 +19,11 @@ import java.io.IOException; * burger-boat and comic sans styling to allure and entice users into playing * the game. */ -public class TitleController { - @FXML Button btnJoin; +public class TitleController extends Controller { + @FXML + Button btnJoin; + @FXML + AnchorPane titleWrapper; /** * Method called when the 'host a game' button is pressed. @@ -27,7 +33,7 @@ public class TitleController { */ public void hostAGame() throws IOException { // load up the main window - Stage stage = new Stage(); + /*Stage stage = new Stage(); FXMLLoader loader = new FXMLLoader(getClass().getResource("/visualiser/scenes/main.fxml")); Parent root = loader.load(); Scene scene = new Scene(root, 1200, 800); @@ -40,7 +46,14 @@ public class TitleController { // close title screen Stage stageOld = (Stage)btnJoin.getScene().getWindow(); - stageOld.close(); + stageOld.close();*/ + titleWrapper.setVisible(false); + parent.hostGame(); + + } + + public void enterTitle(){ + titleWrapper.setVisible(true); } /** @@ -48,6 +61,12 @@ public class TitleController { * games a player can join. Place holder method for now! */ public void joinAGame() { - System.out.println("You can't join a game yet ;)"); + titleWrapper.setVisible(false); + parent.enterLobby(); + } + + @Override + public void initialize(URL location, ResourceBundle resources) { + } } diff --git a/racevisionGame/src/main/java/visualiser/app/App.java b/racevisionGame/src/main/java/visualiser/app/App.java index 1bc0a222..21f7cd3b 100644 --- a/racevisionGame/src/main/java/visualiser/app/App.java +++ b/racevisionGame/src/main/java/visualiser/app/App.java @@ -9,6 +9,7 @@ import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; import javafx.stage.WindowEvent; +import visualiser.Controllers.MainController; public class App extends Application { @@ -35,9 +36,11 @@ public class App extends Application { } }); FXMLLoader loader = new FXMLLoader(getClass().getResource - ("/visualiser/scenes/titleScreen.fxml")); + ("/visualiser/scenes/main.fxml")); Parent root = loader.load(); stage.setResizable(false); + MainController mc = (MainController) loader.getController(); + mc.enterTitle(); Scene scene = new Scene(root); stage.setScene(scene); diff --git a/racevisionGame/src/main/resources/visualiser/scenes/connect.fxml b/racevisionGame/src/main/resources/visualiser/scenes/connect.fxml index 32384999..f620bfeb 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/connect.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/connect.fxml @@ -1,10 +1,13 @@ + + - + + diff --git a/racevisionGame/src/main/resources/visualiser/scenes/hostgame.fxml b/racevisionGame/src/main/resources/visualiser/scenes/hostgame.fxml index dc991518..c998f657 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/hostgame.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/hostgame.fxml @@ -7,7 +7,7 @@ - + @@ -23,7 +23,7 @@ - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - +