aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/sowgro/npehero/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui')
-rw-r--r--src/main/java/net/sowgro/npehero/gui/ControlEditor.java52
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gui/GameOver.java40
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gui/LeaderboardView.java39
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gui/LevelDetails.java6
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gui/LevelSelector.java36
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gui/LevelSurround.java25
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gui/MainMenu.java15
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gui/SettingsEditor.java23
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;
}
}