You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.0 KiB
93 lines
3.0 KiB
package visualiser.Controllers;
|
|
|
|
import javafx.fxml.FXML;
|
|
import javafx.scene.control.Label;
|
|
import javafx.scene.control.RadioButton;
|
|
import javafx.scene.image.Image;
|
|
import javafx.scene.image.ImageView;
|
|
import javafx.scene.layout.Pane;
|
|
import javafx.stage.Modality;
|
|
import mock.exceptions.EventConstructionException;
|
|
import visualiser.app.App;
|
|
|
|
import java.io.IOException;
|
|
|
|
/**
|
|
* Controller for the opening title window.
|
|
* Has two initial buttons for a user to decide how to play their game. Has a
|
|
* burger-boat and comic sans styling to allure and entice users into playing
|
|
* the game.
|
|
*/
|
|
public class TitleController extends Controller {
|
|
private @FXML RadioButton dayModeRD;
|
|
private @FXML RadioButton nightModeRD;
|
|
private @FXML Label tutorialLabel;
|
|
private @FXML Pane menuPane;
|
|
private @FXML ImageView imgSun;
|
|
|
|
/**
|
|
* Method called when the 'host a game' button is pressed.
|
|
* Opens the next window allowing a user to host their own game.
|
|
* Currently used to run the RaceVision mock.
|
|
* @throws IOException if main has problems
|
|
*/
|
|
public void hostAGame() throws IOException {
|
|
loadScene("hostGame.fxml");
|
|
}
|
|
|
|
/**
|
|
* To be implemented at a later date- will open the next scene displaying
|
|
* games a player can join. Place holder method for now!
|
|
* @throws IOException socket error
|
|
*/
|
|
public void joinAGame() throws IOException {
|
|
loadScene("lobby.fxml");
|
|
}
|
|
|
|
/**
|
|
* Switches the css of the program to day mode theme
|
|
*/
|
|
public void setDayMode(){
|
|
dayModeRD.getScene().getStylesheets().clear();
|
|
menuPane.getStylesheets().clear();
|
|
imgSun.setImage(new Image(getClass().getResource("/visualiser/images/sun.png").toExternalForm()));
|
|
dayModeRD.getScene().getStylesheets().add("/css/dayMode.css");
|
|
menuPane.setStyle("-fx-background-color: #6be6ff;");
|
|
nightModeRD.setSelected(false);
|
|
App.dayMode = true;
|
|
}
|
|
|
|
/**
|
|
* Switches the css of the program to night mode theme
|
|
*/
|
|
public void setNightMode(){
|
|
nightModeRD.getScene().getStylesheets().clear();
|
|
menuPane.getStylesheets().clear();
|
|
imgSun.setImage(new Image(getClass().getResource("/visualiser/images/sunsleep.png").toExternalForm()));
|
|
nightModeRD.getScene().getStylesheets().add("/css/nightMode.css");
|
|
menuPane.setStyle("-fx-background-color: #1f2c60;");
|
|
dayModeRD.setSelected(false);
|
|
App.dayMode = false;
|
|
}
|
|
|
|
/**
|
|
* Called when control button is pressed. New pop up window displaying controls
|
|
*/
|
|
public void showControls(){
|
|
try {
|
|
loadPopupScene("keyBindings.fxml",
|
|
"Game Controls", Modality.WINDOW_MODAL);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void tutorialStartPressed() throws IOException,
|
|
EventConstructionException {
|
|
App.gameType = 4;
|
|
HostGameController hgc = new HostGameController();
|
|
hgc.setCurrentMapIndex(4);
|
|
hgc.hostGamePressed();
|
|
}
|
|
|
|
} |