diff options
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui')
-rw-r--r-- | src/main/java/net/sowgro/npehero/gui/ControlEditor.java | 38 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/GameOver.java | 14 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/LeaderboardView.java (renamed from src/main/java/net/sowgro/npehero/gui/Leaderboard.java) | 10 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/LevelDetails.java | 16 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/LevelSelector.java | 12 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/LevelSurround.java | 31 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/MainMenu.java | 14 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/SettingsEditor.java (renamed from src/main/java/net/sowgro/npehero/gui/Settings.java) | 26 |
8 files changed, 76 insertions, 85 deletions
diff --git a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java index ecd2fab..b620b17 100644 --- a/src/main/java/net/sowgro/npehero/gui/ControlEditor.java +++ b/src/main/java/net/sowgro/npehero/gui/ControlEditor.java @@ -1,24 +1,15 @@ package net.sowgro.npehero.gui; -import javafx.beans.InvalidationListener; -import javafx.beans.binding.DoubleBinding; -import javafx.beans.property.Property; -import javafx.beans.property.ReadOnlyObjectWrapper; -import javafx.beans.property.ReadOnlyStringWrapper; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; -import javafx.scene.Node; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; -import javafx.scene.input.MouseEvent; import javafx.scene.layout.*; -import javafx.scene.paint.Color; import net.sowgro.npehero.Driver; import net.sowgro.npehero.main.Control; -import net.sowgro.npehero.main.SoundController; -import org.w3c.dom.events.Event; +import net.sowgro.npehero.main.Sound; import java.util.List; import java.util.Map; @@ -36,15 +27,34 @@ public class ControlEditor extends Pane { controls.setHgap(40); - scrollPane.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.35)); - scrollPane.setMinWidth(400); +// 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)); Button exit = new Button(); exit.setText("Back"); exit.setOnAction(e -> { - SoundController.playSfx(SoundController.BACKWARD); - Driver.setMenu(new Settings()); + Sound.playSfx(Sound.BACKWARD); + Driver.setMenu(new SettingsEditor()); }); VBox centerBox = new VBox(); diff --git a/src/main/java/net/sowgro/npehero/gui/GameOver.java b/src/main/java/net/sowgro/npehero/gui/GameOver.java index b75ec43..da524dc 100755 --- a/src/main/java/net/sowgro/npehero/gui/GameOver.java +++ b/src/main/java/net/sowgro/npehero/gui/GameOver.java @@ -14,7 +14,7 @@ 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.SoundController; +import net.sowgro.npehero.main.Sound; public class GameOver extends Pane { @@ -30,11 +30,11 @@ public class GameOver extends Pane topText.getStyleClass().add("t11"); Text levelName = new Text(); - levelName.setText(level.getTitle()); + levelName.setText(level.title); levelName.getStyleClass().add("t2"); Text levelArtist = new Text(); - levelArtist.setText(level.getArtist()+" - "+diff.title); + levelArtist.setText(level.artist+" - "+diff.title); levelArtist.getStyleClass().add("t3"); VBox levelDetailsBox = new VBox(); @@ -72,10 +72,10 @@ public class GameOver extends Pane 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) { - SoundController.playSfx(SoundController.FORWARD); + Sound.playSfx(Sound.FORWARD); save.setDisable(true); name.setDisable(true); - diff.addToLeaderboard(name.getText(), score2); + diff.leaderboard.add(name.getText(), score2); } }); @@ -93,14 +93,14 @@ public class GameOver extends Pane Button exit = new Button(); exit.setText("Back"); exit.setOnAction(e -> { - SoundController.playSfx(SoundController.BACKWARD); + Sound.playSfx(Sound.BACKWARD); Driver.setMenu(lastMenu); }); Button replay = new Button(); replay.setText("Replay"); replay.setOnAction(e -> { - SoundController.playSfx(SoundController.FORWARD); + Sound.playSfx(Sound.FORWARD); Driver.setMenu(new LevelSurround(level, diff, lastMenu)); }); diff --git a/src/main/java/net/sowgro/npehero/gui/Leaderboard.java b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java index 842e46d..4741823 100755 --- a/src/main/java/net/sowgro/npehero/gui/Leaderboard.java +++ b/src/main/java/net/sowgro/npehero/gui/LeaderboardView.java @@ -13,16 +13,16 @@ 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.SoundController; +import net.sowgro.npehero.main.Sound; -public class Leaderboard extends Pane +public class LeaderboardView extends Pane { /* * this class is a layout class, most of its purpose is to place UI elements like Buttons within Panes like VBoxes. * the creation of these UI elements are mostly not commented due to their repetitive and self explanatory nature. * style classes are defined in the style.css file. */ - public Leaderboard(Level level, Difficulty diff, Pane prev) + public LeaderboardView(Level level, Difficulty diff, Pane prev) { //sets up table view: requires java bean getters, setters and constructors to work TableView<LeaderboardEntry> scores = new TableView<LeaderboardEntry>(); @@ -39,7 +39,7 @@ public class Leaderboard extends Pane scoreCol.setCellValueFactory(data -> new ReadOnlyStringWrapper(data.getValue().getScore() + "")); dateCol.setCellValueFactory(data -> new ReadOnlyStringWrapper(data.getValue().getDate())); - scores.setItems(diff.getLeaderboard()); + scores.setItems(diff.leaderboard.entries); scores.getStyleClass().add("unselectable"); @@ -52,7 +52,7 @@ public class Leaderboard extends Pane Button exit = new Button(); exit.setText("Back"); exit.setOnAction(e -> { - SoundController.playSfx(SoundController.BACKWARD); + Sound.playSfx(Sound.BACKWARD); Driver.setMenu(prev); }); diff --git a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java index e5b6bdc..df5529e 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java @@ -17,7 +17,7 @@ import javafx.scene.text.TextFlow; import net.sowgro.npehero.Driver; import net.sowgro.npehero.main.Difficulty; import net.sowgro.npehero.main.Level; -import net.sowgro.npehero.main.SoundController; +import net.sowgro.npehero.main.Sound; public class LevelDetails extends VBox { @@ -66,11 +66,11 @@ public class LevelDetails extends VBox detailsScroll.getStyleClass().remove("scroll-pane"); Text title = new Text(); - title.setText(level.getTitle()); + title.setText(level.title); title.getStyleClass().add("t1"); Text artist = new Text(); - artist.setText(level.getArtist()); + artist.setText(level.artist); artist.getStyleClass().add("t2"); Text desc = new Text(); @@ -86,26 +86,26 @@ public class LevelDetails extends VBox FlowPane diffSelector = new FlowPane(); diffSelector.setAlignment(Pos.CENTER); ToggleGroup diffToggleGroup = new ToggleGroup(); //allows only one to be selected at a time - for (Difficulty diff : level.getValidDiffList()) //adds a button for each diff + for (Difficulty diff : level.difficulties.validList) //adds a button for each diff { RadioButton temp = new RadioButton(); temp.getStyleClass().remove("radio-button"); //makes the buttons not look like a radio button and instead a normal button temp.getStyleClass().add("button"); temp.setText(diff.title); - temp.setUserData(diff); //allows the data and text to be seperate + temp.setUserData(diff); //allows the data and text to be separate diffToggleGroup.getToggles().add(temp); diffSelector.getChildren().add(temp); } play.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull()); //disables play button when no difficulty is selected play.setOnAction(e -> { - SoundController.playSfx(SoundController.FORWARD); + Sound.playSfx(Sound.FORWARD); Driver.setMenu(new LevelSurround(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); }); leaderboard.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull()); leaderboard.setOnAction(e -> { - SoundController.playSfx(SoundController.FORWARD); - Driver.setMenu(new Leaderboard(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu())); + Sound.playSfx(Sound.FORWARD); + Driver.setMenu(new LeaderboardView(level, (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 eb31754..3553267 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java @@ -10,8 +10,8 @@ import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import net.sowgro.npehero.Driver; import net.sowgro.npehero.main.Level; -import net.sowgro.npehero.main.LevelController; -import net.sowgro.npehero.main.SoundController; +import net.sowgro.npehero.main.Levels; +import net.sowgro.npehero.main.Sound; public class LevelSelector extends Pane { @@ -31,10 +31,10 @@ public class LevelSelector extends Pane levels.getColumns().add(titleCol); levels.getColumns().add(artistCol); - titleCol.setCellValueFactory(data -> new ReadOnlyStringWrapper(data.getValue().getTitle())); - artistCol.setCellValueFactory(data -> new ReadOnlyStringWrapper(data.getValue().getArtist())); + titleCol.setCellValueFactory(data -> new ReadOnlyStringWrapper(data.getValue().title)); + artistCol.setCellValueFactory(data -> new ReadOnlyStringWrapper(data.getValue().artist)); - levels.setItems(LevelController.getValidLevelList()); + levels.setItems(Levels.validList); levels.prefWidthProperty().bind(super.prefWidthProperty().multiply(0.25)); levels.prefHeightProperty().bind(super.prefHeightProperty().multiply(0.75)); @@ -45,7 +45,7 @@ public class LevelSelector extends Pane exit.setText("Back"); exit.setOnAction(e -> { Driver.setMenu(new MainMenu()); - SoundController.playSfx(SoundController.BACKWARD); + Sound.playSfx(Sound.BACKWARD); }); VBox leftBox = new VBox(); diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java index aca93bc..b864c08 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java @@ -13,8 +13,8 @@ import javafx.scene.layout.VBox; import javafx.scene.text.Text; import net.sowgro.npehero.main.Difficulty; import net.sowgro.npehero.main.Level; -import net.sowgro.npehero.main.ScoreController; -import net.sowgro.npehero.main.SoundController; +import net.sowgro.npehero.gameplay.ScoreController; +import net.sowgro.npehero.main.Sound; public class LevelSurround extends Pane { @@ -32,7 +32,7 @@ public class LevelSurround extends Pane exit.setText("Back"); exit.setOnAction(e -> { Driver.setMenu(prev); - SoundController.playSfx(SoundController.BACKWARD); + Sound.playSfx(Sound.BACKWARD); game.cancel(); }); @@ -42,11 +42,11 @@ public class LevelSurround extends Pane buttonBox.setSpacing(10); Text title = new Text(); - title.setText(level.getTitle()); + title.setText(level.title); title.getStyleClass().add("t2"); Text artist = new Text(); - artist.setText(level.getArtist()+" - "+difficulty.title); + artist.setText(level.artist+" - "+difficulty.title); artist.getStyleClass().add("t3"); VBox titleTextBox = new VBox(); @@ -125,27 +125,6 @@ public class LevelSurround extends Pane root.prefWidthProperty().bind(super.prefWidthProperty()); root.prefHeightProperty().bind(super.prefHeightProperty()); - //for debug menu - Button addScore = new Button(); - addScore.setText(level.getTitle() + " addscore"); - addScore.setOnAction(e -> sc.setScore(sc.getScore()+1)); -// Driver.debug.addButton(addScore); - - Button addCombo = new Button(); - addCombo.setText(level.getTitle() + " addcombo"); - addCombo.setOnAction(e -> sc.setCombo(sc.getCombo()+1)); -// Driver.debug.addButton(addCombo); - - Button printD = new Button(); - printD.setText(level.getTitle() + " print debug"); - printD.setOnAction(e -> sc.print()); -// Driver.debug.addButton(printD); - - Button testfinish = new Button(); - testfinish.setText(level.getTitle() + "launch game end"); - testfinish.setOnAction(e -> Driver.setMenu(new GameOver(level, difficulty, prev, sc.getScore()))); -// Driver.debug.addButton(testfinish); - game.start(); } }
\ 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 2b1d2ac..2587f41 100755 --- a/src/main/java/net/sowgro/npehero/gui/MainMenu.java +++ b/src/main/java/net/sowgro/npehero/gui/MainMenu.java @@ -1,7 +1,5 @@ package net.sowgro.npehero.gui; -import javafx.application.Application; -import javafx.application.Platform; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.effect.BlurType; @@ -12,7 +10,7 @@ import javafx.scene.paint.Color; import javafx.scene.text.Text; import net.sowgro.npehero.Driver; import net.sowgro.npehero.devmenu.LevelList; -import net.sowgro.npehero.main.SoundController; +import net.sowgro.npehero.main.Sound; public class MainMenu extends Pane @@ -38,26 +36,26 @@ public class MainMenu extends Pane play.setText("Play"); play.setOnAction(e -> { Driver.setMenu(new LevelSelector()); - SoundController.playSfx(SoundController.FORWARD); + Sound.playSfx(Sound.FORWARD); }); Button settings = new Button(); settings.setText("Settings"); settings.setOnAction(_ -> { - Driver.setMenu(new Settings()); - SoundController.playSfx(SoundController.FORWARD); + Driver.setMenu(new SettingsEditor()); + Sound.playSfx(Sound.FORWARD); }); Button levelEdit = new Button("Level Editor"); levelEdit.setOnAction(e -> { - SoundController.playSfx(SoundController.FORWARD); + Sound.playSfx(Sound.FORWARD); Driver.setMenu(new LevelList()); }); Button exit = new Button(); exit.setText("Quit"); exit.setOnAction(e -> { - SoundController.playSfx(SoundController.BACKWARD); + Sound.playSfx(Sound.BACKWARD); // Driver.quit(); // Platform.exit(); System.exit(0); diff --git a/src/main/java/net/sowgro/npehero/gui/Settings.java b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java index cc6815c..4dcd3dc 100755 --- a/src/main/java/net/sowgro/npehero/gui/Settings.java +++ b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java @@ -3,6 +3,7 @@ package net.sowgro.npehero.gui; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; import javafx.scene.control.Slider; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; @@ -10,29 +11,32 @@ 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.SettingsController; -import net.sowgro.npehero.main.SoundController; +import net.sowgro.npehero.main.Settings; +import net.sowgro.npehero.main.Sound; -public class Settings extends Pane +public class SettingsEditor extends Pane { /* * this class is a layout class, most of its purpose is to place UI elements like Buttons within Panes like VBoxes. * the creation of these UI elements are mostly not commented due to their repetitive and self explanatory nature. * style classes are defined in the style.css file. */ - public Settings() + public SettingsEditor() { Text musicText = new Text(); musicText.setText("Music Volume"); musicText.getStyleClass().add("t3"); Slider musicSlider = new Slider(); - musicSlider.valueProperty().bindBidirectional(SettingsController.musicVol); + musicSlider.valueProperty().bindBidirectional(Settings.musicVol); musicSlider.setMin(0.0); musicSlider.setMax(1.0); + CheckBox enableMenuMusic = new CheckBox("Enable Menu Music"); + enableMenuMusic.selectedProperty().bindBidirectional(Settings.enableMenuMusic); + VBox musicBox = new VBox(); - musicBox.getChildren().addAll(musicText, musicSlider); + musicBox.getChildren().addAll(musicText, musicSlider, enableMenuMusic); musicBox.getStyleClass().add("box"); musicBox.setPadding(new Insets(10)); @@ -42,7 +46,7 @@ public class Settings extends Pane SFXText.getStyleClass().add("t3"); Slider SFXSlider = new Slider(); - SFXSlider.valueProperty().bindBidirectional(SettingsController.effectsVol); + SFXSlider.valueProperty().bindBidirectional(Settings.effectsVol); SFXSlider.setMin(0.0); SFXSlider.setMax(1.0); @@ -59,7 +63,7 @@ public class Settings extends Pane Button fullscreen = new Button(); fullscreen.setText("Toggle (F11)"); fullscreen.setOnAction(e -> { - SoundController.playSfx(SoundController.FORWARD); + Sound.playSfx(Sound.FORWARD); Driver.primaryStage.setFullScreen(!Driver.primaryStage.isFullScreen()); }); @@ -75,7 +79,7 @@ public class Settings extends Pane Button controlsButton = new Button(); controlsButton.setText("Edit"); controlsButton.setOnAction(_ -> { - SoundController.playSfx(SoundController.FORWARD); + Sound.playSfx(Sound.FORWARD); Driver.setMenu(new ControlEditor()); }); @@ -87,8 +91,8 @@ public class Settings extends Pane Button exit = new Button(); exit.setText("Back"); exit.setOnAction(e -> { - SettingsController.write(); - SoundController.playSfx(SoundController.BACKWARD); + Settings.save(); + Sound.playSfx(Sound.BACKWARD); Driver.setMenu(new MainMenu()); }); |