diff options
Diffstat (limited to 'src/main/java/net/sowgro/npehero/devmenu')
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 |