aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/sowgro/npehero/devmenu
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/sowgro/npehero/devmenu')
-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
7 files changed, 137 insertions, 138 deletions
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