diff options
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui')
8 files changed, 111 insertions, 125 deletions
diff --git a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java index b620b17..1d1a73d 100644 --- a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java +++ b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java @@ -9,12 +9,16 @@ import javafx.scene.input.KeyEvent; import javafx.scene.layout.*; import net.sowgro.npehero.Driver; import net.sowgro.npehero.main.Control; +import net.sowgro.npehero.main.Page; import net.sowgro.npehero.main.Sound; import java.util.List; import java.util.Map; -public class ControlEditor extends Pane { +public class ControlEditor extends Page { + + private final HBox content = new HBox(); + public ControlEditor() { GridPane controls = new GridPane(); @@ -26,29 +30,8 @@ public class ControlEditor extends Pane { controls.setVgap(20); controls.setHgap(40); - -// Pane dummy1 = new Pane(); -// Pane dummy2 = new Pane(); -// Pane dummy3 = new Pane(); -// controls.add(dummy1, 0, 0); -// controls.add(dummy2, 1, 0); -// controls.add(dummy3, 2, 0); -// -// Runnable r = () -> { -// var vpw = scrollPane.getViewportBounds().getWidth(); -// var itemswidth = dummy1.getWidth() + dummy2.getWidth() + dummy3.getWidth(); -// var out = ((vpw - itemswidth) / 2) -10; -// if (out < 10) { -// controls.setHgap(10); -// } -// else { -// controls.setHgap(out); -// } -// }; -// scrollPane.viewportBoundsProperty().addListener((_, _, _) -> r.run()); - scrollPane.setPrefWidth(700); - scrollPane.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); + scrollPane.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75)); Button exit = new Button(); exit.setText("Back"); @@ -58,16 +41,12 @@ public class ControlEditor extends Pane { }); VBox centerBox = new VBox(); - centerBox.setAlignment(Pos.CENTER); + centerBox.getChildren().addAll(scrollPane, exit); centerBox.setSpacing(10); - centerBox.getChildren().addAll(scrollPane,exit); - centerBox.setMinWidth(400); + centerBox.setAlignment(Pos.CENTER); - HBox rootBox = new HBox(); - rootBox.prefWidthProperty().bind(super.prefWidthProperty()); - rootBox.prefHeightProperty().bind(super.prefHeightProperty()); - rootBox.getChildren().add(centerBox); - rootBox.setAlignment(Pos.CENTER); + content.getChildren().add(centerBox); + content.setAlignment(Pos.CENTER); ToggleGroup tg = new ToggleGroup(); int i = 0; @@ -98,15 +77,15 @@ public class ControlEditor extends Pane { @Override public void handle(KeyEvent k) { control.keyProperty.set(k.getCode()); - rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, this); + content.removeEventFilter(KeyEvent.KEY_PRESSED, this); controlButton.setSelected(false); k.consume(); } }; if (controlButton.isSelected()) { - rootBox.addEventFilter(KeyEvent.KEY_PRESSED, keyListener); + content.addEventFilter(KeyEvent.KEY_PRESSED, keyListener); } else { - rootBox.removeEventFilter(KeyEvent.KEY_PRESSED, keyListener); + content.removeEventFilter(KeyEvent.KEY_PRESSED, keyListener); } }); tg.getToggles().add(controlButton); @@ -122,8 +101,11 @@ public class ControlEditor extends Pane { } } + } - super.getChildren().add(rootBox); + @Override + public Pane getContent() { + return content; } public String keyToString(KeyCode key) { diff --git a/src/main/java/net/sowgro/npehero/gui/GameOver.java b/src/main/java/net/sowgro/npehero/gui/GameOver.java index cd277e6..dd23f5f 100755 --- a/src/main/java/net/sowgro/npehero/gui/GameOver.java +++ b/src/main/java/net/sowgro/npehero/gui/GameOver.java @@ -1,7 +1,5 @@ package net.sowgro.npehero.gui; -import javafx.event.ActionEvent; -import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; @@ -14,12 +12,14 @@ import javafx.scene.text.Text; import net.sowgro.npehero.Driver; import net.sowgro.npehero.main.Difficulty; import net.sowgro.npehero.main.Level; +import net.sowgro.npehero.main.Page; import net.sowgro.npehero.main.Sound; -public class GameOver extends Pane +public class GameOver extends Page { + HBox content = new HBox(); - public GameOver(Level level, Difficulty diff, Pane lastMenu, int score2) + public GameOver(Level level, Difficulty diff, Page prev, int score2) { Text topText = new Text(); topText.setText("Level Complete"); @@ -59,20 +59,15 @@ public class GameOver extends Pane nameLabel.getStyleClass().add("t3"); TextField name = new TextField(); -// name.getStyleClass().remove("text-filed"); -// name.getStyleClass().add("button"); name.setText("name"); Button save = new Button(); save.setText("Add"); - save.setOnAction(new EventHandler<ActionEvent>() { //this is the same as the "e ->" thing but it allows more than one line to be added - @Override - public void handle(ActionEvent event) { - Sound.playSfx(Sound.FORWARD); - save.setDisable(true); - name.setDisable(true); - diff.leaderboard.add(name.getText(), score2); - } + save.setOnAction(_ -> { + Sound.playSfx(Sound.FORWARD); + save.setDisable(true); + name.setDisable(true); + diff.leaderboard.add(name.getText(), score2); }); BorderPane b = new BorderPane(); @@ -90,32 +85,31 @@ public class GameOver extends Pane exit.setText("Back"); exit.setOnAction(e -> { Sound.playSfx(Sound.BACKWARD); - Driver.setMenu(lastMenu); + Driver.setMenu(prev); }); Button replay = new Button(); replay.setText("Replay"); replay.setOnAction(e -> { Sound.playSfx(Sound.FORWARD); - Driver.setMenu(new LevelSurround(level, diff, lastMenu)); + Driver.setMenu(new LevelSurround(level, diff, prev)); }); BorderPane buttonBox = new BorderPane(); buttonBox.setLeft(exit); buttonBox.setRight(replay); - VBox centerBox = new VBox(); centerBox.getChildren().addAll(topText,levelDetailsBox,scoreBox,nameBox,buttonBox); centerBox.setSpacing(10); centerBox.setAlignment(Pos.CENTER); - HBox rootBox = new HBox(); - rootBox.getChildren().add(centerBox); - rootBox.setAlignment(Pos.CENTER); - rootBox.prefWidthProperty().bind(super.prefWidthProperty()); - rootBox.prefHeightProperty().bind(super.prefHeightProperty()); + content.getChildren().add(centerBox); + content.setAlignment(Pos.CENTER); + } - super.getChildren().add(rootBox); + @Override + public Pane getContent() { + return content; } } diff --git a/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java index c769264..46ce22f 100755 --- a/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java +++ b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java @@ -10,22 +10,20 @@ import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import net.sowgro.npehero.Driver; -import net.sowgro.npehero.main.Difficulty; -import net.sowgro.npehero.main.LeaderboardEntry; -import net.sowgro.npehero.main.Level; -import net.sowgro.npehero.main.Sound; +import net.sowgro.npehero.main.*; -public class LeaderboardView extends Pane +public class LeaderboardView extends Page { + private HBox content = new HBox(); - public LeaderboardView(Level level, Difficulty diff, Pane prev) + public LeaderboardView(Difficulty diff, Page prev) { //sets up table view: requires java bean getters, setters and constructors to work - TableView<LeaderboardEntry> scores = new TableView<LeaderboardEntry>(); + TableView<LeaderboardEntry> scores = new TableView<>(); - TableColumn<LeaderboardEntry, String> nameCol = new TableColumn<LeaderboardEntry, String>("Name"); - TableColumn<LeaderboardEntry, String> scoreCol = new TableColumn<LeaderboardEntry, String>("Score"); - TableColumn<LeaderboardEntry, String> dateCol = new TableColumn<LeaderboardEntry, String>("Date"); + TableColumn<LeaderboardEntry, String> nameCol = new TableColumn<>("Name"); + TableColumn<LeaderboardEntry, String> scoreCol = new TableColumn<>("Score"); + TableColumn<LeaderboardEntry, String> dateCol = new TableColumn<>("Date"); scores.getColumns().add(nameCol); scores.getColumns().add(scoreCol); @@ -39,8 +37,8 @@ public class LeaderboardView extends Pane scores.getStyleClass().add("unselectable"); - scores.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.25)); - scores.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); + scores.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); + scores.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75)); scoreCol.setSortType(SortType.DESCENDING); scores.getSortOrder().add(scoreCol); @@ -53,17 +51,16 @@ public class LeaderboardView extends Pane }); VBox centerBox = new VBox(); - centerBox.setAlignment(Pos.CENTER); + centerBox.getChildren().addAll(scores, exit); centerBox.setSpacing(10); - centerBox.getChildren().addAll(scores,exit); - centerBox.setMinWidth(400); + centerBox.setAlignment(Pos.CENTER); - HBox rootBox = new HBox(); - rootBox.prefWidthProperty().bind(super.prefWidthProperty()); - rootBox.prefHeightProperty().bind(super.prefHeightProperty()); - rootBox.getChildren().add(centerBox); - rootBox.setAlignment(Pos.CENTER); + content.getChildren().add(centerBox); + content.setAlignment(Pos.CENTER); + } - super.getChildren().add(rootBox); + @Override + public Pane getContent() { + return content; } } diff --git a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java index df5529e..afbdce4 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java @@ -28,7 +28,7 @@ public class LevelDetails extends VBox * * @param level: the selected level on the right side */ - public LevelDetails(Level level) + public LevelDetails(Level level, LevelSelector ls) { VBox rightBox = new VBox(); rightBox.prefWidthProperty().bind(super.prefWidthProperty()); @@ -99,13 +99,13 @@ public class LevelDetails extends VBox play.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull()); //disables play button when no difficulty is selected play.setOnAction(e -> { Sound.playSfx(Sound.FORWARD); - Driver.setMenu(new LevelSurround(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); + Driver.setMenu(new LevelSurround(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), ls)); }); leaderboard.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull()); leaderboard.setOnAction(e -> { Sound.playSfx(Sound.FORWARD); - Driver.setMenu(new LeaderboardView(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); + Driver.setMenu(new LeaderboardView((Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); }); diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java index eb08a99..1c840b4 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java @@ -11,10 +11,12 @@ import javafx.scene.layout.VBox; import net.sowgro.npehero.Driver; import net.sowgro.npehero.main.Level; import net.sowgro.npehero.main.Levels; +import net.sowgro.npehero.main.Page; import net.sowgro.npehero.main.Sound; -public class LevelSelector extends Pane -{ +public class LevelSelector extends Page +{ + private final HBox content = new HBox(); public LevelSelector() { @@ -32,8 +34,8 @@ public class LevelSelector extends Pane levels.setItems(Levels.validList); - levels.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.25)); - levels.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); + levels.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); + levels.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75)); levels.setMinWidth(300); @@ -52,18 +54,18 @@ public class LevelSelector extends Pane Pane rightBox = new Pane(); addDetails(rightBox, levels); - - HBox rootBox = new HBox(); - rootBox.prefWidthProperty().bind(super.prefWidthProperty()); - rootBox.prefHeightProperty().bind(super.prefHeightProperty()); - rootBox.getChildren().addAll(leftBox, rightBox); - rootBox.setAlignment(Pos.CENTER); - rootBox.setSpacing(10); + content.getChildren().addAll(leftBox, rightBox); + content.setSpacing(10); + content.setAlignment(Pos.CENTER); levels.getStyleClass().remove("list-view"); //listens for change in selected item of the list levels.getSelectionModel().selectedItemProperty().addListener(_ -> addDetails(rightBox, levels)); - super.getChildren().add(rootBox); + } + + @Override + public Pane getContent() { + return content; } /** @@ -73,16 +75,16 @@ public class LevelSelector extends Pane */ private void addDetails(Pane rightBox, TableView<Level> levels) { - VBox details = new LevelDetails(levels.getSelectionModel().getSelectedItem()); + VBox details = new LevelDetails(levels.getSelectionModel().getSelectedItem(), this); if (! rightBox.getChildren().isEmpty()) { rightBox.getChildren().remove(0); } rightBox.getChildren().add(details); - details.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.37)); - details.prefHeightProperty().bind(super.prefHeightProperty()); - details.maxWidthProperty().bind(super.prefWidthProperty().multiply(0.37)); - details.maxHeightProperty().bind(super.prefHeightProperty()); + details.prefWidthProperty().bind(content.prefWidthProperty().multiply(0.37)); + details.prefHeightProperty().bind(content.prefHeightProperty()); + details.maxWidthProperty().bind(content.prefWidthProperty().multiply(0.37)); + details.maxHeightProperty().bind(content.prefHeightProperty()); } } diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java index 2a0a51a..05614ff 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java @@ -14,12 +14,14 @@ import javafx.scene.text.Text; import net.sowgro.npehero.main.Difficulty; import net.sowgro.npehero.main.Level; import net.sowgro.npehero.gameplay.ScoreController; +import net.sowgro.npehero.main.Page; import net.sowgro.npehero.main.Sound; -public class LevelSurround extends Pane -{ +public class LevelSurround extends Page +{ + private final HBox content = new HBox(); - public LevelSurround(Level level, Difficulty difficulty, Pane prev) + public LevelSurround(Level level, Difficulty difficulty, Page prev) { ScoreController sc = new ScoreController(); SongPlayer game = new SongPlayer(level, difficulty, prev, sc); @@ -102,13 +104,13 @@ public class LevelSurround extends Pane comboBox.setBottomAnchor(comboTextBox, 0.0); comboBox.setPadding(new Insets(10)); - game.minWidthProperty().bind(super.prefHeightProperty().multiply(0.66)); - game.minHeightProperty().bind(super.prefHeightProperty()); + game.minWidthProperty().bind(content.heightProperty().multiply(0.66)); + game.minHeightProperty().bind(content.heightProperty()); game.getStyleClass().add("box"); - comboBox.minWidthProperty().bind(super.prefWidthProperty().subtract(game.minWidthProperty()).divide(2)); - scoreBox.minWidthProperty().bind(super.prefWidthProperty().subtract(game.minWidthProperty()).divide(2)); + comboBox.minWidthProperty().bind(Driver.primaryPane.widthProperty().subtract(game.minWidthProperty()).divide(2)); + scoreBox.minWidthProperty().bind(Driver.primaryPane.widthProperty().subtract(game.minWidthProperty()).divide(2)); HBox centerBox = new HBox(); centerBox.getChildren().addAll(comboBox, game, scoreBox); @@ -117,10 +119,13 @@ public class LevelSurround extends Pane StackPane root = new StackPane(); root.getChildren().addAll(centerBox, topBar); - super.getChildren().add(root); - root.prefWidthProperty().bind(super.prefWidthProperty()); - root.prefHeightProperty().bind(super.prefHeightProperty()); + content.getChildren().add(root); game.start(); } + + @Override + public Pane getContent() { + return content; + } }
\ No newline at end of file diff --git a/src/main/java/net/sowgro/npehero/gui/MainMenu.java b/src/main/java/net/sowgro/npehero/gui/MainMenu.java index 6511f22..f13deac 100755 --- a/src/main/java/net/sowgro/npehero/gui/MainMenu.java +++ b/src/main/java/net/sowgro/npehero/gui/MainMenu.java @@ -4,6 +4,7 @@ import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.effect.BlurType; import javafx.scene.effect.DropShadow; +import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; @@ -16,9 +17,9 @@ import net.sowgro.npehero.main.Sound; public class MainMenu extends Page { - @Override - public Pane getContent() { + private final HBox content = new HBox(); + public MainMenu() { DropShadow dropShadow = new DropShadow(); dropShadow.setRadius(50.0); dropShadow.setColor(Color.WHITE); @@ -68,10 +69,12 @@ public class MainMenu extends Page { centerBox.getChildren().addAll(title, buttonBox); centerBox.setSpacing(10); - VBox rootBox = new VBox(); - rootBox.setAlignment(Pos.CENTER); - rootBox.getChildren().add(centerBox); + content.getChildren().add(centerBox); + content.setAlignment(Pos.CENTER); + } - return rootBox; + @Override + public Pane getContent() { + return content; } } diff --git a/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java index b00420a..d9bad03 100755 --- a/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java +++ b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java @@ -11,11 +11,13 @@ import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.scene.text.Text; import net.sowgro.npehero.Driver; +import net.sowgro.npehero.main.Page; import net.sowgro.npehero.main.Settings; import net.sowgro.npehero.main.Sound; -public class SettingsEditor extends Pane +public class SettingsEditor extends Page { + private final HBox content = new HBox(); public SettingsEditor() { @@ -99,16 +101,17 @@ public class SettingsEditor extends Pane options.setSpacing(10); options.setAlignment(Pos.CENTER); options.getChildren().addAll(musicBox,SFXBox,fullBox,controlsBox,buttonBox); - options.maxWidthProperty().bind(super.prefWidthProperty().multiply(0.25)); + options.maxWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); options.setMinWidth(400); - options.prefHeightProperty().bind(super.prefHeightProperty()); - - HBox rootBox = new HBox(); - rootBox.prefWidthProperty().bind(super.prefWidthProperty()); - rootBox.prefHeightProperty().bind(super.prefHeightProperty()); - rootBox.getChildren().add(options); - rootBox.setAlignment(Pos.CENTER); - super.getChildren().add(rootBox); + options.prefHeightProperty().bind(content.prefHeightProperty()); + + content.getChildren().add(options); + content.setAlignment(Pos.CENTER); + } + + @Override + public Pane getContent() { + return content; } } |