aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net')
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/Driver.java27
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/devmenu/DiffEditor.java61
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/devmenu/DiffList.java33
-rw-r--r--src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java56
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/devmenu/LevelEditor.java30
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/devmenu/LevelList.java26
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/devmenu/NotesEditor.java27
-rw-r--r--src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java42
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/gameplay/SongPlayer.java9
-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
17 files changed, 269 insertions, 278 deletions
diff --git a/src/main/java/net/sowgro/npehero/Driver.java b/src/main/java/net/sowgro/npehero/Driver.java
index fa36ee5..6544ebe 100755
--- a/src/main/java/net/sowgro/npehero/Driver.java
+++ b/src/main/java/net/sowgro/npehero/Driver.java
@@ -23,7 +23,7 @@ public class Driver extends Application
public static final Image MENU_BACKGROUND = new Image(Driver.class.getResource("mountains.png").toExternalForm());;
public static Stage primaryStage;
- static ScrollPane primaryPane = new ScrollPane();
+ public static ScrollPane primaryPane = new ScrollPane();
static ImageView backgroundImage = new ImageView();
static ImageView backgroundImage2 = new ImageView();
@@ -50,6 +50,8 @@ public class Driver extends Application
primaryStage = newPrimaryStage;
+ primaryPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
+
StackPane root = new StackPane(backgroundImage2, backgroundImage, primaryPane);
Scene primaryScene = new Scene(root, 800,600);
@@ -85,7 +87,7 @@ public class Driver extends Application
* Replaces/adds a new pane to the primaryPane
* @param pane the new pane
*/
- public static void setMenu(Pane pane)
+ private static void setMenu(Pane pane)
{
primaryPane.setContent(pane);
pane.prefWidthProperty().bind(primaryPane.widthProperty()); //makes pane fill the window
@@ -96,8 +98,8 @@ public class Driver extends Application
/**
* @return the current pane in primaryPane
*/
- public static Pane getMenu(){
- return (Pane) primaryPane.getContent();
+ public static Page getMenu(){
+ return currentPage;
}
public static void setMenu(Page p) {
@@ -120,23 +122,30 @@ public class Driver extends Application
return;
}
backgroundImage2.setImage(image);
+
FadeTransition ft = new FadeTransition(Duration.seconds(0.2), backgroundImage);
ft.setInterpolator(Interpolator.EASE_BOTH);
ft.setFromValue(1.0);
ft.setToValue(0.0);
- ft.setOnFinished(_ -> {
- backgroundImage.setImage(image);
- });
+
+ ScaleTransition st2 = new ScaleTransition(Duration.seconds(0.2), backgroundImage);
+ st2.setInterpolator(Interpolator.LINEAR);
+ st2.setFromX(1);
+ st2.setFromY(1);
+ st2.setToX(1.05);
+ st2.setToY(1.05);
ScaleTransition st = new ScaleTransition(Duration.seconds(0.2), backgroundImage2);
- st.setInterpolator(Interpolator.EASE_BOTH);
+ st.setInterpolator(Interpolator.LINEAR);
st.setFromX(1.05);
st.setFromY(1.05);
st.setToX(1.0);
st.setToY(1.0);
- ParallelTransition pt = new ParallelTransition(ft, st);
+ ParallelTransition pt = new ParallelTransition(ft, st, st2);
+ pt.setDelay(Duration.seconds(0.1));
pt.play();
+ st.setOnFinished(_ -> backgroundImage.setImage(image));
}
public static void setMenuBackground()
diff --git a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java
index f5c29bd..11ee274 100755
--- a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java
+++ b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java
@@ -14,20 +14,18 @@ import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
-import net.sowgro.npehero.main.Difficulty;
-import net.sowgro.npehero.main.Note;
-import net.sowgro.npehero.main.Sound;
-import net.sowgro.npehero.main.ValidIndicator;
+import net.sowgro.npehero.main.*;
-public class DiffEditor extends Pane
+public class DiffEditor extends Page
{
Difficulty diff;
ScrollPane scroll;
- public Pane prev;
+ HBox content = new HBox();
- public DiffEditor(Difficulty diff, Pane prev)
- {
+ public Page prev;
+
+ public DiffEditor(Difficulty diff, Page prev) {
this.diff = diff;
this.prev = prev;
@@ -42,7 +40,7 @@ public class DiffEditor extends Pane
TextField priority = new TextField(diff.priority+"");
Button editNotes = new Button("Edit notes");
- editNotes.setOnAction(e -> {
+ editNotes.setOnAction(_ -> {
if (diff.level.song == null) {
Driver.setMenu(new ErrorDisplay("You must import a song file before editing the notes!", this));
}
@@ -52,19 +50,17 @@ public class DiffEditor extends Pane
});
Button oldEditNotes = new Button("Edit notes (legacy)");
- oldEditNotes.setOnAction(_ -> {
- Driver.setMenu(new ErrorDisplay(
- "Warning: \nThe legacy editor will overwrite all existing notes!",
- this,
- new NotesEditor(diff, this))
- );
- });
+ oldEditNotes.setOnAction(_ -> Driver.setMenu(new ErrorDisplay(
+ "Warning: \nThe legacy editor will overwrite all existing notes!",
+ this,
+ new NotesEditor(diff, this))
+ ));
Button editScores = new Button("Clear leaderboard");
- editScores.setOnAction(e -> diff.leaderboard.entries.clear());
+ editScores.setOnAction(_ -> diff.leaderboard.entries.clear());
Button playLevel = new Button("Play level");
- playLevel.setOnAction(e -> {
+ playLevel.setOnAction(_ -> {
if (diff.isValid && diff.level.isValid) {
Driver.setMenu(new LevelSurround(diff.level, diff, this));
}
@@ -74,7 +70,7 @@ public class DiffEditor extends Pane
});
Button save = new Button("Save");
- save.setOnAction(e -> { //assigns text fields to values
+ save.setOnAction(_ -> { //assigns text fields to values
diff.title = title.getText();
// diff.bpm = Double.parseDouble(bpm.getText());
// diff.numBeats = Integer.parseInt(numBeats.getText());
@@ -82,8 +78,8 @@ public class DiffEditor extends Pane
diff.write();
});
- HBox content = new HBox();
- ScrollPane scroll = new ScrollPane(content);
+ HBox scrollContent = new HBox();
+ ScrollPane scroll = new ScrollPane(scrollContent);
scroll.setFitToWidth(true);
this.scroll = scroll;
scroll.getStyleClass().remove("scroll-pane");
@@ -96,9 +92,9 @@ public class DiffEditor extends Pane
lanes[i] = new Pane();
}
- content.getChildren().addAll(lanes);
- content.setSpacing(5);
- content.setAlignment(Pos.CENTER);
+ scrollContent.getChildren().addAll(lanes);
+ scrollContent.setSpacing(5);
+ scrollContent.setAlignment(Pos.CENTER);
diff.notes.list.forEach(n -> lanes[n.lane].getChildren().add(drawNote(n)));
@@ -131,18 +127,17 @@ public class DiffEditor extends Pane
});
VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
+ centerBox.getChildren().addAll(main, exit);
centerBox.setSpacing(10);
- centerBox.getChildren().addAll(main,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;
}
// Duplicates of NotesEditor2 methods, should be made generic and combined
diff --git a/src/main/java/net/sowgro/npehero/devmenu/DiffList.java b/src/main/java/net/sowgro/npehero/devmenu/DiffList.java
index e27e90d..63c09bb 100755
--- a/src/main/java/net/sowgro/npehero/devmenu/DiffList.java
+++ b/src/main/java/net/sowgro/npehero/devmenu/DiffList.java
@@ -1,6 +1,5 @@
package net.sowgro.npehero.devmenu;
-import javafx.beans.property.ReadOnlyBooleanWrapper;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
@@ -11,12 +10,14 @@ import javafx.scene.layout.VBox;
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 DiffList extends Pane
+public class DiffList extends Page
{
+ private HBox content = new HBox();
- public DiffList(Level level, Pane prev)
+ public DiffList(Level level, Page prev)
{
//sets up table view: requires special getters, setters and constructors to work
TableView<Difficulty> diffs = new TableView<>();
@@ -50,9 +51,8 @@ public class DiffList extends Pane
return row ;
});
-// diffs.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.35));
diffs.setPrefWidth(400);
- diffs.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.67));
+ diffs.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.67));
Button edit = new Button("Edit");
edit.setOnAction(e -> Driver.setMenu(new DiffEditor(diffs.getSelectionModel().getSelectedItem(), this)));
@@ -99,17 +99,6 @@ public class DiffList extends Pane
Driver.setMenu(prev);
});
- VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
- centerBox.setSpacing(10);
- centerBox.getChildren().addAll(main,exit);
-
- HBox rootBox = new HBox();
- rootBox.prefWidthProperty().bind(super.prefWidthProperty());
- rootBox.prefHeightProperty().bind(super.prefHeightProperty());
- rootBox.getChildren().add(centerBox);
- rootBox.setAlignment(Pos.CENTER);
-
create.setOnAction(_ -> {
if (create.isSelected()) {
sidebar.getChildren().add(newLevelBox);
@@ -127,7 +116,17 @@ public class DiffList extends Pane
create.setSelected(false);
});
- super.getChildren().add(rootBox);
+ VBox centerBox = new VBox();
+ centerBox.getChildren().addAll(main, exit);
+ centerBox.setSpacing(10);
+ centerBox.setAlignment(Pos.CENTER);
+
+ content.getChildren().add(centerBox);
+ content.setAlignment(Pos.CENTER);
}
+ @Override
+ public Pane getContent() {
+ return content;
+ }
} \ No newline at end of file
diff --git a/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java b/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java
index e5cd857..dc4b40c 100644
--- a/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java
+++ b/src/main/java/net/sowgro/npehero/devmenu/ErrorDisplay.java
@@ -8,10 +8,19 @@ 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.Page;
import net.sowgro.npehero.main.Sound;
-public class ErrorDisplay extends Pane {
- public ErrorDisplay(String message, Pane prev) {
+public class ErrorDisplay extends Page {
+
+ private HBox content = new HBox();
+
+ /**
+ * Error display with a message and Back button
+ * @param message The message to display
+ * @param prev The destination of the close button
+ */
+ public ErrorDisplay(String message, Page prev) {
Label main = new Label(message);
main.getStyleClass().add("box");
@@ -23,35 +32,35 @@ public class ErrorDisplay extends Pane {
});
VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
+ centerBox.getChildren().addAll(main, exit);
centerBox.setSpacing(10);
- centerBox.getChildren().addAll(main,exit);
- centerBox.setMinWidth(400);
-
- HBox rootBox = new HBox();
- rootBox.prefWidthProperty().bind(super.prefWidthProperty());
- rootBox.prefHeightProperty().bind(super.prefHeightProperty());
- rootBox.getChildren().add(centerBox);
- rootBox.setAlignment(Pos.CENTER);
+ centerBox.setAlignment(Pos.CENTER);
- super.getChildren().add(rootBox);
+ content.getChildren().add(centerBox);
+ content.setAlignment(Pos.CENTER);
}
- public ErrorDisplay(String message, Pane prev, Pane next) {
+ /**
+ * Error display with a message and Cancel and Proceed buttons
+ * @param message The message to display
+ * @param prev The destination of the Cancel button
+ * @param next The destination of the Proceed button
+ */
+ public ErrorDisplay(String message, Page prev, Page next) {
Label main = new Label(message);
main.getStyleClass().add("box");
main.setPadding(new Insets(10));
Button exit = new Button();
exit.setText("Cancel");
- exit.setOnAction(e -> {
+ exit.setOnAction(_ -> {
Sound.playSfx(Sound.BACKWARD);
Driver.setMenu(prev);
});
Button nextButton = new Button();
nextButton.setText("Proceed");
- nextButton.setOnAction(e -> {
+ nextButton.setOnAction(_ -> {
Sound.playSfx(Sound.FORWARD);
Driver.setMenu(next);
});
@@ -61,17 +70,16 @@ public class ErrorDisplay extends Pane {
bottom.setSpacing(10);
VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
+ centerBox.getChildren().addAll(main, bottom);
centerBox.setSpacing(10);
- centerBox.getChildren().addAll(main,bottom);
- 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/devmenu/LevelEditor.java b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java
index 7efcd05..003f929 100755
--- a/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java
+++ b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java
@@ -10,18 +10,17 @@ import javafx.scene.text.Text;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
import net.sowgro.npehero.Driver;
-import net.sowgro.npehero.main.Difficulty;
-import net.sowgro.npehero.main.Level;
-import net.sowgro.npehero.main.Sound;
-import net.sowgro.npehero.main.ValidIndicator;
+import net.sowgro.npehero.main.*;
+
+public class LevelEditor extends Page
+{
+ private HBox content = new HBox();
-public class LevelEditor extends Pane
-{
private File selectedSong = null;
private File selectedPreview = null;
private File selectedBackground = null;
- public LevelEditor(Level level, Pane prev)
+ public LevelEditor(Level level, Page prev)
{
Text folderNameLabel = new Text("Folder name");
TextField folderName = new TextField();
@@ -175,17 +174,16 @@ public class LevelEditor extends Pane
bottom.setSpacing(10);
VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
+ centerBox.getChildren().addAll(mainBox, bottom);
centerBox.setSpacing(10);
- centerBox.getChildren().addAll(mainBox,bottom);
- 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;
}
} \ No newline at end of file
diff --git a/src/main/java/net/sowgro/npehero/devmenu/LevelList.java b/src/main/java/net/sowgro/npehero/devmenu/LevelList.java
index 6bdb893..7d899bd 100755
--- a/src/main/java/net/sowgro/npehero/devmenu/LevelList.java
+++ b/src/main/java/net/sowgro/npehero/devmenu/LevelList.java
@@ -1,6 +1,5 @@
package net.sowgro.npehero.devmenu;
-import javafx.beans.property.ReadOnlyBooleanWrapper;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
@@ -12,12 +11,12 @@ import javafx.scene.layout.VBox;
import net.sowgro.npehero.gui.MainMenu;
import net.sowgro.npehero.main.Level;
import net.sowgro.npehero.main.Levels;
+import net.sowgro.npehero.main.Page;
import net.sowgro.npehero.main.Sound;
-import java.time.Year;
-
-public class LevelList extends Pane
+public class LevelList extends Page
{
+ private HBox content = new HBox();
public LevelList()
{
@@ -56,7 +55,7 @@ public class LevelList extends Pane
return row ;
});
levels.setPrefWidth(600);
- levels.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75));
+ levels.prefHeightProperty().bind(content.prefHeightProperty().multiply(0.75));
Button edit = new Button("Edit");
edit.setOnAction(e -> Driver.setMenu(new LevelEditor(levels.getSelectionModel().getSelectedItem(), this)));
@@ -104,16 +103,12 @@ public class LevelList extends Pane
});
VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
+ centerBox.getChildren().addAll(main, exit);
centerBox.setSpacing(10);
- centerBox.getChildren().addAll(main,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);
create.setOnAction(_ -> {
if (create.isSelected()) {
@@ -131,7 +126,10 @@ public class LevelList extends Pane
sidebar.getChildren().clear();
create.setSelected(false);
});
+ }
- super.getChildren().add(rootBox);
+ @Override
+ public Pane getContent() {
+ return content;
}
} \ No newline at end of file
diff --git a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java
index e024ca4..3754847 100755
--- a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java
+++ b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java
@@ -17,9 +17,10 @@ import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import net.sowgro.npehero.main.Control;
import net.sowgro.npehero.main.Difficulty;
+import net.sowgro.npehero.main.Page;
import net.sowgro.npehero.main.Sound;
-public class NotesEditor extends Pane
+public class NotesEditor extends Page
{
Text help;
String t1 = "Press Start to begin recording. Use the same keys. Note: existing notes will be overwritten.";
@@ -27,7 +28,10 @@ public class NotesEditor extends Pane
Difficulty diff;
Timer timer;
PrintWriter writer;
- public NotesEditor(Difficulty diff, Pane prev)
+
+ private HBox content = new HBox();
+
+ public NotesEditor(Difficulty diff, Page prev)
{
this.diff = diff;
@@ -53,18 +57,12 @@ public class NotesEditor extends Pane
});
VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
+ centerBox.getChildren().addAll(main, exit);
centerBox.setSpacing(10);
- centerBox.getChildren().addAll(main,exit);
- centerBox.setMinWidth(400);
-
- HBox rootBox = new HBox();
- rootBox.prefWidthProperty().bind(super.prefWidthProperty());
- rootBox.prefHeightProperty().bind(super.prefHeightProperty());
- rootBox.getChildren().add(centerBox);
- rootBox.setAlignment(Pos.CENTER);
+ centerBox.setAlignment(Pos.CENTER);
- super.getChildren().add(rootBox);
+ content.getChildren().add(centerBox);
+ content.setAlignment(Pos.CENTER);
try {
writer = new PrintWriter(diff.notes.getFile(), "UTF-8");
@@ -104,6 +102,11 @@ public class NotesEditor extends Pane
Driver.primaryStage.setOnCloseRequest(e -> stop());
}
+ @Override
+ public Pane getContent() {
+ return content;
+ }
+
private void start()
{
Sound.playSong(new Media(diff.level.song.toString()));
diff --git a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java
index 46d0235..22c3f5e 100644
--- a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java
+++ b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java
@@ -38,15 +38,14 @@ public class NotesEditor2 extends Page {
ListProperty<Note> noteList;
DiffEditor prev;
+ private HBox content = new HBox();
+
public NotesEditor2(Difficulty diff, DiffEditor prev) {
this.diff = diff;
noteList = diff.notes.deepCopyList();
m = new MediaPlayer(new Media(diff.level.song.toURI().toString()));
this.prev = prev;
- }
- @Override
- public Pane getContent() {
// Buttons
VBox actionBox = new VBox();
actionBox.setSpacing(10);
@@ -103,11 +102,11 @@ public class NotesEditor2 extends Page {
playhead.setFill(Color.WHITE);
playheadLane.getChildren().add(playhead);
- HBox content = new HBox();
- content.setAlignment(Pos.CENTER);
- content.setSpacing(10);
- content.getChildren().addAll(playheadLane, rulerLane);
- content.getChildren().addAll(lanes);
+ HBox scrollContent = new HBox();
+ scrollContent.setAlignment(Pos.CENTER);
+ scrollContent.setSpacing(10);
+ scrollContent.getChildren().addAll(playheadLane, rulerLane);
+ scrollContent.getChildren().addAll(lanes);
Line playheadLine = new Line();
playheadLine.setStartX(0);
@@ -121,7 +120,7 @@ public class NotesEditor2 extends Page {
contentOverlay.setPickOnBounds(false);
StackPane stackPane = new StackPane();
- stackPane.getChildren().addAll(content, contentOverlay);
+ stackPane.getChildren().addAll(scrollContent, contentOverlay);
scroll.setContent(stackPane);
// scroll.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.35));
@@ -169,8 +168,8 @@ public class NotesEditor2 extends Page {
// Draw and update ruler
AtomicInteger lastRuler = new AtomicInteger(-1);
- content.heightProperty().addListener(_ -> {
- int ruler1 = (int) screenPosToSecond(content.getHeight());
+ scrollContent.heightProperty().addListener(_ -> {
+ int ruler1 = (int) screenPosToSecond(scrollContent.getHeight());
for (int i = lastRuler.get() + 1; i <= ruler1; i++) {
Label l = new Label(toMinAndSec(i)+" -");
l.layoutYProperty().bind(secondToScreenPos(i));
@@ -181,19 +180,15 @@ public class NotesEditor2 extends Page {
});
VBox centerBox = new VBox();
- centerBox.setAlignment(Pos.CENTER);
+ centerBox.getChildren().addAll(main, exit);
centerBox.setSpacing(10);
- centerBox.getChildren().addAll(main, buttons);
- 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);
// write notes on key press
- rootBox.addEventFilter(KeyEvent.KEY_PRESSED, e -> {
+ content.addEventFilter(KeyEvent.KEY_PRESSED, e -> {
KeyCode k = e.getCode();
if (k == Control.LANE0.getKey()) { WriteNote(0); }
if (k == Control.LANE1.getKey()) { WriteNote(1); }
@@ -228,7 +223,7 @@ public class NotesEditor2 extends Page {
scrollLock.setOnAction(_ -> {
if (scrollLock.isSelected()) {
// vvalue takes in a value between 0 and 1 NOT a pixel value
- scroll.vvalueProperty().bind(playhead.layoutYProperty().subtract(scroll.heightProperty().divide(2)).divide(content.heightProperty().subtract(scroll.heightProperty())));
+ scroll.vvalueProperty().bind(playhead.layoutYProperty().subtract(scroll.heightProperty().divide(2)).divide(scrollContent.heightProperty().subtract(scroll.heightProperty())));
}
else {
scroll.vvalueProperty().unbind();
@@ -289,8 +284,11 @@ public class NotesEditor2 extends Page {
helpBox.getChildren().clear();
}
});
+ }
- return rootBox;
+ @Override
+ public Pane getContent() {
+ return content;
}
@Override
diff --git a/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java b/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java
index b025c06..b61d11c 100755
--- a/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java
+++ b/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java
@@ -14,7 +14,7 @@ import javafx.event.EventHandler;
import javafx.scene.input.KeyEvent;
import javafx.scene.media.Media;
import net.sowgro.npehero.Driver;
-import net.sowgro.npehero.main.Control;
+import net.sowgro.npehero.main.*;
import net.sowgro.npehero.gui.GameOver;
import javafx.geometry.Pos;
import javafx.scene.CacheHint;
@@ -25,9 +25,6 @@ import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.animation.*;
import javafx.util.*;
-import net.sowgro.npehero.main.Difficulty;
-import net.sowgro.npehero.main.Level;
-import net.sowgro.npehero.main.Sound;
//hi aidan here are some objects you can use
@@ -55,7 +52,7 @@ public class SongPlayer extends Pane {
private Level level;
private Difficulty difficulty;
- private Pane pane;
+ private Page pane;
Timer timer; //the timer that determines when notes will fall, counted in terms of the song's bpm
final int TIME = 1000; //delay for notes falling down the screen
@@ -101,7 +98,7 @@ public class SongPlayer extends Pane {
});
}
- public SongPlayer(Level lvl, Difficulty d, Pane p, ScoreController cntrl) {
+ public SongPlayer(Level lvl, Difficulty d, Page p, ScoreController cntrl) {
Sound.stopSong();
song = lvl.song;
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;
}
}