From cf8f3d35716cd93d0d5d123d80b07f9ae704f939 Mon Sep 17 00:00:00 2001 From: sowgro Date: Mon, 8 Jul 2024 14:49:30 -0400 Subject: Embed level utility into main window --- settings.json | 2 +- src/main/java/module-info.java | 3 --- src/main/java/net/sowgro/npehero/Driver.java | 1 + .../java/net/sowgro/npehero/devmenu/DiffEditor.java | 10 ++++++---- .../java/net/sowgro/npehero/devmenu/LevelEditor.java | 20 +++++++++----------- .../java/net/sowgro/npehero/devmenu/LevelList.java | 10 ++++------ .../java/net/sowgro/npehero/devmenu/NotesEditor.java | 12 ++++++------ src/main/java/net/sowgro/npehero/gui/MainMenu.java | 12 ++++++++++-- src/main/java/net/sowgro/npehero/gui/Settings.java | 8 +------- src/main/resources/net/sowgro/npehero/style.css | 1 + 10 files changed, 39 insertions(+), 40 deletions(-) diff --git a/settings.json b/settings.json index b7be92b..8d4feca 100755 --- a/settings.json +++ b/settings.json @@ -1 +1 @@ -{"musicVol":1.0,"effectsVol":1.0} \ No newline at end of file +{"musicVol":0.0,"effectsVol":1.0} \ No newline at end of file diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 7fc3ef1..dd166f8 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -5,8 +5,5 @@ module net.sowgro.npehero { requires json.simple; requires java.desktop; - - opens net.sowgro.npehero to javafx.fxml; - exports net.sowgro.npehero.gui; exports net.sowgro.npehero; } \ No newline at end of file diff --git a/src/main/java/net/sowgro/npehero/Driver.java b/src/main/java/net/sowgro/npehero/Driver.java index b5e226e..262f441 100755 --- a/src/main/java/net/sowgro/npehero/Driver.java +++ b/src/main/java/net/sowgro/npehero/Driver.java @@ -15,6 +15,7 @@ import javafx.scene.layout.BackgroundRepeat; import javafx.scene.layout.BackgroundSize; import javafx.scene.layout.Pane; import javafx.stage.Stage; +import net.sowgro.npehero.devmenu.DebugMenu; import net.sowgro.npehero.gui.MainMenu; import net.sowgro.npehero.main.LevelController; import net.sowgro.npehero.main.SettingsController; diff --git a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java index d4ebb02..4bb55e4 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java @@ -3,6 +3,7 @@ package net.sowgro.npehero.devmenu; import java.io.FileNotFoundException; import java.io.UnsupportedEncodingException; +import javafx.scene.layout.Pane; import net.sowgro.npehero.Driver; import net.sowgro.npehero.gui.LevelSurround; import net.sowgro.npehero.gui.MainMenu; @@ -14,7 +15,7 @@ import javafx.scene.text.Text; import javafx.stage.Stage; import net.sowgro.npehero.main.Difficulty; -public class DiffEditor +public class DiffEditor extends Pane { /* * this class is a layout class, most of its purpose is to place UI elements like Buttons within Panes like VBoxes. @@ -72,8 +73,9 @@ public class DiffEditor VBox main = new VBox(); main.getChildren().addAll(folderNameLabel,folderName,titleLabel,title,bpmLabel,bpm,numBeatsLabel,numBeats,refresh,priorityLabel,priority,editNotes,editScores,playLevel,save); - Scene scene = new Scene(main); - primaryStage.setScene(scene); - primaryStage.show(); +// Scene scene = new Scene(main); +// primaryStage.setScene(scene); +// primaryStage.show(); + super.getChildren().add(main); } } \ No newline at end of file diff --git a/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java index 94fcc16..bd8bde6 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java @@ -11,15 +11,17 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.scene.text.Text; import javafx.stage.FileChooser; import javafx.stage.Stage; import javafx.stage.FileChooser.ExtensionFilter; +import net.sowgro.npehero.Driver; import net.sowgro.npehero.main.Difficulty; import net.sowgro.npehero.main.Level; -public class LevelEditor +public class LevelEditor extends Pane { private File selectedSong = null; private File selectedPreview = null; @@ -32,8 +34,6 @@ public class LevelEditor */ public LevelEditor(Level level) { - Stage primaryStage = new Stage(); - Text folderNameLabel = new Text("Folder name"); TextField folderName = new TextField(level.thisDir.getName()); folderName.setDisable(true); @@ -59,17 +59,17 @@ public class LevelEditor FileChooser backgroundChooser = new FileChooser(); backgroundChooser.getExtensionFilters().add(new ExtensionFilter("PNG", "*.png")); Button backgroundButton = new Button("Import background PNG"); - backgroundButton.setOnAction(e -> {selectedBackground = backgroundChooser.showOpenDialog(primaryStage);}); + backgroundButton.setOnAction(e -> {selectedBackground = backgroundChooser.showOpenDialog(Driver.primaryStage);}); FileChooser previewChooser = new FileChooser(); previewChooser.getExtensionFilters().add(new ExtensionFilter("PNG", "*.png")); Button previewButton = new Button("Import preview PNG"); - previewButton.setOnAction(e -> {selectedPreview = previewChooser.showOpenDialog(primaryStage);}); + previewButton.setOnAction(e -> {selectedPreview = previewChooser.showOpenDialog(Driver.primaryStage);}); FileChooser songChooser = new FileChooser(); songChooser.getExtensionFilters().add(new ExtensionFilter("WAV", "*.wav")); Button songButton = new Button("Import song WAV"); - songButton.setOnAction(e -> selectedSong = songChooser.showOpenDialog(primaryStage)); + songButton.setOnAction(e -> selectedSong = songChooser.showOpenDialog(Driver.primaryStage)); Text diffLabel = new Text("Difficulties"); @@ -88,7 +88,7 @@ public class LevelEditor Button edit = new Button("Edit"); - edit.setOnAction(e -> new DiffEditor(diffList.getSelectionModel().getSelectedItem())); + edit.setOnAction(e -> Driver.setMenu(new DiffEditor(diffList.getSelectionModel().getSelectedItem()))); Button remove = new Button("Delete"); remove.setOnAction(e -> level.removeDiff(diffList.getSelectionModel().getSelectedItem())); @@ -142,9 +142,7 @@ public class LevelEditor HBox mainBox = new HBox(); mainBox.getChildren().addAll(options,diffBox); - - Scene scene = new Scene(mainBox); - primaryStage.setScene(scene); - primaryStage.show(); + + super.getChildren().add(mainBox); } } \ 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 8d5e0cb..c1c38af 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/LevelList.java +++ b/src/main/java/net/sowgro/npehero/devmenu/LevelList.java @@ -2,6 +2,7 @@ package net.sowgro.npehero.devmenu; import javafx.beans.property.ReadOnlyBooleanWrapper; import javafx.beans.property.ReadOnlyStringWrapper; +import javafx.scene.layout.Pane; import net.sowgro.npehero.Driver; import javafx.scene.Scene; import javafx.scene.control.Button; @@ -14,7 +15,7 @@ import javafx.stage.Stage; import net.sowgro.npehero.main.Level; import net.sowgro.npehero.main.LevelController; -public class LevelList +public class LevelList extends Pane { /* * this class is a layout class, most of its purpose is to place UI elements like Buttons within Panes like VBoxes. @@ -42,7 +43,7 @@ public class LevelList Button edit = new Button("Edit"); - edit.setOnAction(e -> new LevelEditor(levels.getSelectionModel().getSelectedItem())); + edit.setOnAction(e -> Driver.setMenu(new LevelEditor(levels.getSelectionModel().getSelectedItem()))); Button remove = new Button("Delete"); remove.setOnAction(e -> Driver.levelController.removeLevel(levels.getSelectionModel().getSelectedItem())); @@ -64,9 +65,6 @@ public class LevelList VBox main = new VBox(); main.getChildren().addAll(levels,buttons,newLevelBox); - Scene scene = new Scene(main, 400, 400); - Stage primaryStage = new Stage(); - primaryStage.setScene(scene); - primaryStage.show(); + super.getChildren().add(main); } } \ 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 25b21f1..39a2b8e 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java @@ -3,6 +3,8 @@ package net.sowgro.npehero.devmenu; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; + +import javafx.scene.layout.Pane; import net.sowgro.npehero.gameplay.Timer; import net.sowgro.npehero.Driver; import javafx.scene.Scene; @@ -13,7 +15,7 @@ import javafx.scene.text.Text; import javafx.stage.Stage; import net.sowgro.npehero.main.Difficulty; -public class NotesEditor +public class NotesEditor extends Pane { Text help; String t1 = "Press Start to begin recording. Use the same keys. Note: existing notes will be overwitten."; @@ -39,13 +41,11 @@ public class NotesEditor VBox main = new VBox(); main.getChildren().addAll(help,cur,start,stop); - Scene scene = new Scene(main); - Stage primaryStage = new Stage(); - primaryStage.setScene(scene); - primaryStage.show(); + super.getChildren().add(main); writer = new PrintWriter(diff.notes, "UTF-8"); + Scene scene = Driver.primaryStage.getScene(); scene.setOnKeyPressed(e -> { if (e.getCode() == KeyCode.D) { writer.println("d"+timer); @@ -73,7 +73,7 @@ public class NotesEditor } }); - primaryStage.setOnCloseRequest(e -> stop()); + Driver.primaryStage.setOnCloseRequest(e -> stop()); } private void start() diff --git a/src/main/java/net/sowgro/npehero/gui/MainMenu.java b/src/main/java/net/sowgro/npehero/gui/MainMenu.java index bb1970f..2da6036 100755 --- a/src/main/java/net/sowgro/npehero/gui/MainMenu.java +++ b/src/main/java/net/sowgro/npehero/gui/MainMenu.java @@ -9,6 +9,7 @@ import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.text.Text; import net.sowgro.npehero.Driver; +import net.sowgro.npehero.devmenu.LevelList; public class MainMenu extends Pane @@ -39,10 +40,17 @@ public class MainMenu extends Pane Button settings = new Button(); settings.setText("Settings"); - settings.setOnAction(e -> {Driver.setMenu(new Settings()); + settings.setOnAction(_ -> { + Driver.setMenu(new Settings()); Driver.soundController.playSfx("forward"); }); + Button levelEdit = new Button("Level Editor"); + levelEdit.setOnAction(e -> { + Driver.soundController.playSfx("forward"); + Driver.setMenu(new LevelList()); + }); + Button exit = new Button(); exit.setText("Quit"); exit.setOnAction(e -> {Driver.quit(); @@ -50,7 +58,7 @@ public class MainMenu extends Pane }); VBox buttonBox = new VBox(); - buttonBox.getChildren().addAll(play, settings, exit); + buttonBox.getChildren().addAll(play, settings, levelEdit, exit); buttonBox.setAlignment(Pos.CENTER); buttonBox.setSpacing(10); diff --git a/src/main/java/net/sowgro/npehero/gui/Settings.java b/src/main/java/net/sowgro/npehero/gui/Settings.java index 882eb86..e6ae13b 100755 --- a/src/main/java/net/sowgro/npehero/gui/Settings.java +++ b/src/main/java/net/sowgro/npehero/gui/Settings.java @@ -73,12 +73,6 @@ public class Settings extends Pane Text devLabel = new Text("Advanced"); devLabel.getStyleClass().add("t3"); - - Button levelEdit = new Button("Level Utility"); - levelEdit.setOnAction(e -> { - Driver.soundController.playSfx("forward"); - new LevelList(); - }); Button devMenu = new Button(); devMenu.setText("Debug Menu"); @@ -89,7 +83,7 @@ public class Settings extends Pane VBox devBox = new VBox(); devBox.getStyleClass().add("box"); - devBox.getChildren().addAll(devLabel,levelEdit,devMenu); + devBox.getChildren().addAll(devLabel,devMenu); devBox.setVisible(false); devBox.setManaged(false); devBox.setPadding(new Insets(10)); diff --git a/src/main/resources/net/sowgro/npehero/style.css b/src/main/resources/net/sowgro/npehero/style.css index dd1de55..6e8a7a3 100755 --- a/src/main/resources/net/sowgro/npehero/style.css +++ b/src/main/resources/net/sowgro/npehero/style.css @@ -4,6 +4,7 @@ .root{ -fx-font-family: "space mono"; + -fx-font-size: 20; } /* button */ -- cgit v1.2.3