diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2024-07-14 22:43:01 -0400 | 
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2024-07-14 22:43:01 -0400 | 
| commit | 2d42d77c883453e4f03ca0a47068f9d1f6c61aa6 (patch) | |
| tree | 866de034466e60223371b2fee40c6f6b5ae04743 /src | |
| parent | 550701557c1e021e45bddff92ad1a2e8c808e8e0 (diff) | |
| download | NPEhero-2d42d77c883453e4f03ca0a47068f9d1f6c61aa6.tar.gz NPEhero-2d42d77c883453e4f03ca0a47068f9d1f6c61aa6.tar.bz2 NPEhero-2d42d77c883453e4f03ca0a47068f9d1f6c61aa6.zip | |
Refactoring and SoundController improvements
Diffstat (limited to 'src')
19 files changed, 102 insertions, 142 deletions
| diff --git a/src/main/java/net/sowgro/npehero/Driver.java b/src/main/java/net/sowgro/npehero/Driver.java index fded71c..6d23390 100755 --- a/src/main/java/net/sowgro/npehero/Driver.java +++ b/src/main/java/net/sowgro/npehero/Driver.java @@ -4,6 +4,7 @@ import javafx.application.Application;  import javafx.application.Platform;  import javafx.geometry.Side;  import javafx.scene.Scene; +import javafx.scene.control.ScrollPane;  import javafx.scene.image.Image;  import javafx.scene.input.KeyCode;  import javafx.scene.input.KeyCombination; @@ -25,14 +26,8 @@ import java.net.URL;  public class Driver extends Application  { -      public static Stage primaryStage; -    static Pane primaryPane = new Pane(); - -    public static SettingsController settingsController = new SettingsController(); -    public static SoundController soundController = new SoundController(); -    public static LevelController levelController = new LevelController(); -//    public static DebugMenu debug = new DebugMenu(); +    static ScrollPane primaryPane = new ScrollPane();      /*       * starts javafx @@ -49,6 +44,9 @@ public class Driver extends Application      @Override      public void start(Stage newPrimaryStage)      { +        SettingsController.read(); +        LevelController.readData(); +          primaryStage = newPrimaryStage;          Scene primaryScene = new Scene(primaryPane, 800,600); @@ -58,10 +56,13 @@ public class Driver extends Application          primaryStage.setScene(primaryScene);          primaryStage.setTitle("NPE Hero"); +        primaryPane.getStyleClass().remove("scroll-pane");          setMenu(new MainMenu());          setMenuBackground(); +        SoundController.playSong(SoundController.MENUSONG); +          primaryStage.addEventHandler(KeyEvent.KEY_PRESSED, event -> { //full screen stuff              if (KeyCode.F11.equals(event.getCode())) {                  primaryStage.setFullScreen(!primaryStage.isFullScreen()); @@ -78,11 +79,7 @@ public class Driver extends Application       */      public static void setMenu(Pane pane)      { -        if (! primaryPane.getChildren().isEmpty()) -        { -            primaryPane.getChildren().remove(0); -        } -        primaryPane.getChildren().add(pane); +        primaryPane.setContent(pane);          pane.prefWidthProperty().bind(primaryPane.widthProperty()); //makes pane fill the window          pane.prefHeightProperty().bind(primaryPane.heightProperty());          primaryPane.requestFocus(); //make the pane itself focused by the keyboard naviagtion so no button is highlighted by default @@ -92,7 +89,7 @@ public class Driver extends Application       * @return the current pane in primaryPane       */      public static Pane getMenu(){ -        return (Pane) primaryPane.getChildren().get(0); +        return (Pane) primaryPane.getContent();      }      /** @@ -115,14 +112,6 @@ public class Driver extends Application          setBackground(new Image(Driver.class.getResource("mountains.png").toExternalForm()));      } -    /** -     * quits the application -     */ -    public static void quit() -    { -        Platform.exit(); -    } -      public static URL getResource(String fileName) {          return Driver.class.getResource(fileName);      } diff --git a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java index 74cfab6..84abf6f 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/DiffEditor.java @@ -15,6 +15,7 @@ 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.SoundController;  public class DiffEditor extends Pane  { @@ -102,7 +103,7 @@ public class DiffEditor extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(prev);          }); diff --git a/src/main/java/net/sowgro/npehero/devmenu/DiffList.java b/src/main/java/net/sowgro/npehero/devmenu/DiffList.java index be4126d..6345c2b 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/DiffList.java +++ b/src/main/java/net/sowgro/npehero/devmenu/DiffList.java @@ -11,6 +11,7 @@ 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.SoundController;  public class DiffList extends Pane  { @@ -91,7 +92,7 @@ public class DiffList extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(prev);          }); diff --git a/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java index e5ecf1c..411c15d 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/LevelEditor.java @@ -15,6 +15,7 @@ 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.SoundController;  public class LevelEditor extends Pane  {  @@ -157,7 +158,7 @@ public class LevelEditor extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(prev);          }); diff --git a/src/main/java/net/sowgro/npehero/devmenu/LevelList.java b/src/main/java/net/sowgro/npehero/devmenu/LevelList.java index e37e2ea..61b9d47 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/LevelList.java +++ b/src/main/java/net/sowgro/npehero/devmenu/LevelList.java @@ -12,6 +12,7 @@ import javafx.scene.layout.VBox;  import net.sowgro.npehero.gui.MainMenu;  import net.sowgro.npehero.main.Level;  import net.sowgro.npehero.main.LevelController; +import net.sowgro.npehero.main.SoundController;  public class LevelList extends Pane  { @@ -60,13 +61,13 @@ public class LevelList extends Pane          edit.disableProperty().bind(levels.getSelectionModel().selectedItemProperty().isNull());          Button remove = new Button("Delete"); -        remove.setOnAction(e -> Driver.levelController.removeLevel(levels.getSelectionModel().getSelectedItem())); +        remove.setOnAction(e -> LevelController.removeLevel(levels.getSelectionModel().getSelectedItem()));          remove.setDisable(true);          remove.disableProperty().bind(levels.getSelectionModel().selectedItemProperty().isNull());          Button refresh = new Button("Refresh");          refresh.setOnAction(e -> { -            Driver.levelController.readData(); +            LevelController.readData();              levels.setItems(LevelController.getLevelList());          }); @@ -95,7 +96,7 @@ public class LevelList extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(new MainMenu());          }); @@ -121,7 +122,7 @@ public class LevelList extends Pane          });          newLevelButton.setOnAction(_ -> { -            Driver.levelController.addLevel(newLevelEntry.getText()); +            LevelController.addLevel(newLevelEntry.getText());              newLevelEntry.clear();              refresh.fire();              sidebar.getChildren().clear(); diff --git a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java index 6f2721e..7e78701 100755 --- a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java +++ b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor.java @@ -7,6 +7,7 @@ import java.io.UnsupportedEncodingException;  import javafx.geometry.Pos;  import javafx.scene.layout.HBox;  import javafx.scene.layout.Pane; +import javafx.scene.media.Media;  import net.sowgro.npehero.gameplay.Timer;  import net.sowgro.npehero.Driver;  import javafx.scene.Scene; @@ -15,6 +16,7 @@ import javafx.scene.input.KeyCode;  import javafx.scene.layout.VBox;  import javafx.scene.text.Text;  import net.sowgro.npehero.main.Difficulty; +import net.sowgro.npehero.main.SoundController;  public class NotesEditor extends Pane  { @@ -45,7 +47,7 @@ public class NotesEditor extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(prev);          }); @@ -98,7 +100,7 @@ public class NotesEditor extends Pane      private void start()      { -        Driver.soundController.playSong(diff.level.song); +        SoundController.playSong(new Media(diff.level.song.toString()));          timer = new Timer(diff.bpm);          help.setText(t2);      } @@ -107,7 +109,7 @@ public class NotesEditor extends Pane      {          try           { -            Driver.soundController.endSong(); +            SoundController.endSong();              diff.numBeats = (int)Double.parseDouble(timer.toString());              timer = null;              writer.close(); diff --git a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java index fc44339..99aacec 100644 --- a/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java +++ b/src/main/java/net/sowgro/npehero/devmenu/NotesEditor2.java @@ -23,6 +23,7 @@ import net.sowgro.npehero.gameplay.Block;  import net.sowgro.npehero.gameplay.Target;  import net.sowgro.npehero.main.Difficulty;  import net.sowgro.npehero.main.Note; +import net.sowgro.npehero.main.SoundController;  import java.util.concurrent.atomic.AtomicInteger; @@ -41,14 +42,15 @@ public class NotesEditor2 extends Pane {          noteList = diff.notes.deepCopyList();          m = new MediaPlayer(new Media(diff.level.song.toURI().toString())); +        SoundController.endSong();          // Buttons          VBox actionBox = new VBox();          actionBox.setSpacing(10); -        Label noteLabel = new Label("Notes"); +        Label noteLabel       = new Label("Notes");          ToggleButton addNote  = new ToggleButton("Add"); -        Button delNote  = new Button("Delete"); +        Button delNote        = new Button("Delete");          ToggleButton moveNote = new ToggleButton("Move");          actionBox.getChildren().addAll(noteLabel, addNote, delNote, moveNote); @@ -79,7 +81,6 @@ public class NotesEditor2 extends Pane {          Block sizer = drawBlock(new Note(0, 0));          for (Pane lane : lanes) {              lane.prefWidthProperty().bind(sizer.widthProperty()); -            lane.prefHeightProperty().bind(sizer.heightProperty());          }          Pane rulerLane = new Pane();          Pane playheadLane = new Pane(); @@ -135,16 +136,20 @@ public class NotesEditor2 extends Pane {          Button exit = new Button();          exit.setText("Cancel");          exit.setOnAction(_ -> { -            Driver.soundController.playSfx("backward"); +            m.stop(); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(prev); +            SoundController.playSong(SoundController.MENUSONG);          });          Button save = new Button();          save.setText("Done");          save.setOnAction(_ -> {              diff.notes.list = noteList; -            Driver.soundController.playSfx("backward"); +            m.stop(); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(new DiffEditor(diff, prev.prev)); +            SoundController.playSong(SoundController.MENUSONG);          });          HBox buttons = new HBox(save, exit); @@ -153,7 +158,7 @@ public class NotesEditor2 extends Pane {          // Draw notes          noteList.forEach(n -> lanes[n.lane].getChildren().add(drawBlock(n))); -        noteList.addListener((ListChangeListener<? super Note>) e -> { +        noteList.addListener((ListChangeListener<? super Note>) _ -> {              // TODO              for (Pane lane : lanes) {                  lane.getChildren().clear(); diff --git a/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java b/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java index 41976a9..d4fbbbf 100755 --- a/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java +++ b/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java @@ -10,6 +10,7 @@ import java.util.Queue;  import javax.sound.sampled.LineUnavailableException;  import javax.sound.sampled.UnsupportedAudioFileException; +import javafx.scene.media.Media;  import net.sowgro.npehero.Driver;  import net.sowgro.npehero.gui.GameOver;  import javafx.geometry.Pos; @@ -25,7 +26,7 @@ import javafx.util.*;  import net.sowgro.npehero.main.Difficulty;  import net.sowgro.npehero.main.Level;  import net.sowgro.npehero.main.ScoreController; - +import net.sowgro.npehero.main.SoundController;  //hi aidan here are some objects you can use @@ -98,7 +99,7 @@ public class SongPlayer extends Pane {  	}  	public SongPlayer(Level lvl, Difficulty d, Pane p, ScoreController cntrl) { -		Driver.soundController.endSong(); +		SoundController.endSong();  		song = lvl.song;  		if (lvl.background != null) { @@ -146,7 +147,7 @@ public class SongPlayer extends Pane {  				if (e.getCode() == KeyCode.F) {  					checkNote(fLane, fButton);  				} -				if (e.getCode() == KeyCode.SPACE) { +				if (e.getCode() == KeyCode.G) {  					checkNote(spaceLane, sButton);  				}  				if (e.getCode() == KeyCode.J) { @@ -252,7 +253,7 @@ public class SongPlayer extends Pane {  			}  			if (!songIsPlaying && timer.time() > 0.0) {  				songIsPlaying = true; -				Driver.soundController.playSong(song); +				SoundController.playSong(new Media(song.toURI().toString()));  			}  		}  	}; @@ -271,8 +272,8 @@ public class SongPlayer extends Pane {  	 */  	public void cancel() {  		missMute = true; -		Driver.soundController.endSong(); -		Driver.soundController.playMenuSong(); +		SoundController.endSong(); +		SoundController.playSong(SoundController.MENUSONG);  		Driver.setMenuBackground();  		gameLoop.stop();  	} diff --git a/src/main/java/net/sowgro/npehero/gui/GameOver.java b/src/main/java/net/sowgro/npehero/gui/GameOver.java index 99f3985..b75ec43 100755 --- a/src/main/java/net/sowgro/npehero/gui/GameOver.java +++ b/src/main/java/net/sowgro/npehero/gui/GameOver.java @@ -14,6 +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;  public class GameOver extends Pane  { @@ -71,7 +72,7 @@ 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) { -                Driver.soundController.playSfx("forward"); +                SoundController.playSfx(SoundController.FORWARD);                  save.setDisable(true);                  name.setDisable(true);                  diff.addToLeaderboard(name.getText(), score2); @@ -92,14 +93,14 @@ public class GameOver extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(lastMenu);          });          Button replay = new Button();          replay.setText("Replay");          replay.setOnAction(e -> { -            Driver.soundController.playSfx("forward"); +            SoundController.playSfx(SoundController.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/Leaderboard.java index a8e54d1..842e46d 100755 --- a/src/main/java/net/sowgro/npehero/gui/Leaderboard.java +++ b/src/main/java/net/sowgro/npehero/gui/Leaderboard.java @@ -13,6 +13,7 @@ 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;  public class Leaderboard extends Pane  { @@ -51,7 +52,7 @@ public class Leaderboard extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.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 25d96c8..e5b6bdc 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelDetails.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelDetails.java @@ -17,6 +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;  public class LevelDetails extends VBox  { @@ -97,13 +98,13 @@ public class LevelDetails extends VBox              }              play.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull()); //disables play button when no difficulty is selected              play.setOnAction(e -> { -                Driver.soundController.playSfx("forward"); +                SoundController.playSfx(SoundController.FORWARD);                  Driver.setMenu(new LevelSurround(level, (Difficulty)diffToggleGroup.getSelectedToggle().getUserData(), Driver.getMenu()));              });              leaderboard.disableProperty().bind(diffToggleGroup.selectedToggleProperty().isNull());              leaderboard.setOnAction(e -> { -                Driver.soundController.playSfx("forward"); +                SoundController.playSfx(SoundController.FORWARD);                  Driver.setMenu(new Leaderboard(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 fe51853..eb31754 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSelector.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSelector.java @@ -11,6 +11,7 @@ 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;  public class LevelSelector extends Pane  {    @@ -44,7 +45,7 @@ public class LevelSelector extends Pane          exit.setText("Back");          exit.setOnAction(e -> {              Driver.setMenu(new MainMenu()); -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.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 08baf9e..aca93bc 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java @@ -14,6 +14,7 @@ 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;  public class LevelSurround extends Pane  {    @@ -31,7 +32,7 @@ public class LevelSurround extends Pane          exit.setText("Back");          exit.setOnAction(e -> {              Driver.setMenu(prev); -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD);              game.cancel();          }); diff --git a/src/main/java/net/sowgro/npehero/gui/MainMenu.java b/src/main/java/net/sowgro/npehero/gui/MainMenu.java index 890c7aa..2b1d2ac 100755 --- a/src/main/java/net/sowgro/npehero/gui/MainMenu.java +++ b/src/main/java/net/sowgro/npehero/gui/MainMenu.java @@ -1,5 +1,7 @@  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; @@ -10,6 +12,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;  public class MainMenu extends Pane @@ -35,27 +38,29 @@ public class MainMenu extends Pane          play.setText("Play");          play.setOnAction(e -> {              Driver.setMenu(new LevelSelector()); -            Driver.soundController.playSfx("forward"); +            SoundController.playSfx(SoundController.FORWARD);          });          Button settings = new Button();          settings.setText("Settings");          settings.setOnAction(_ -> {              Driver.setMenu(new Settings()); -            Driver.soundController.playSfx("forward"); +            SoundController.playSfx(SoundController.FORWARD);          });          Button levelEdit = new Button("Level Editor");          levelEdit.setOnAction(e -> { -            Driver.soundController.playSfx("forward"); +            SoundController.playSfx(SoundController.FORWARD);              Driver.setMenu(new LevelList());          });          Button exit = new Button();          exit.setText("Quit");          exit.setOnAction(e -> { -            Driver.quit(); -            Driver.soundController.playSfx("backward"); +            SoundController.playSfx(SoundController.BACKWARD); +//            Driver.quit(); +//            Platform.exit(); +            System.exit(0);          });          VBox buttonBox = new VBox(); diff --git a/src/main/java/net/sowgro/npehero/gui/Settings.java b/src/main/java/net/sowgro/npehero/gui/Settings.java index 1e92906..8d345a0 100755 --- a/src/main/java/net/sowgro/npehero/gui/Settings.java +++ b/src/main/java/net/sowgro/npehero/gui/Settings.java @@ -11,6 +11,8 @@ 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;  public class Settings extends Pane  { @@ -26,7 +28,7 @@ public class Settings extends Pane          musicText.getStyleClass().add("t3");          Slider musicSlider = new Slider(); -        musicSlider.valueProperty().bindBidirectional(Driver.settingsController.musicVol); +        musicSlider.valueProperty().bindBidirectional(SettingsController.musicVol);          musicSlider.setMin(0.0);          musicSlider.setMax(1.0); @@ -41,7 +43,7 @@ public class Settings extends Pane          SFXText.getStyleClass().add("t3");          Slider SFXSlider = new Slider(); -        SFXSlider.valueProperty().bindBidirectional(Driver.settingsController.effectsVol); +        SFXSlider.valueProperty().bindBidirectional(SettingsController.effectsVol);          SFXSlider.setMin(0.0);          SFXSlider.setMax(1.0); @@ -58,7 +60,7 @@ public class Settings extends Pane          Button fullscreen = new Button();          fullscreen.setText("Toggle (F11)");          fullscreen.setOnAction(e -> { -            Driver.soundController.playSfx("forward"); +            SoundController.playSfx(SoundController.FORWARD);              Driver.primaryStage.setFullScreen(!Driver.primaryStage.isFullScreen());          }); @@ -74,7 +76,7 @@ public class Settings extends Pane          Button devMenu = new Button();          devMenu.setText("Debug Menu");          devMenu.setOnAction(e -> { -            Driver.soundController.playSfx("forward"); +            SoundController.playSfx(SoundController.FORWARD);  //            Driver.debug.show();          }); @@ -92,8 +94,8 @@ public class Settings extends Pane          Button exit = new Button();          exit.setText("Back");          exit.setOnAction(e -> { -            Driver.settingsController.write(); -            Driver.soundController.playSfx("backward"); +            SettingsController.write(); +            SoundController.playSfx(SoundController.BACKWARD);              Driver.setMenu(new MainMenu());          }); diff --git a/src/main/java/net/sowgro/npehero/main/LevelController.java b/src/main/java/net/sowgro/npehero/main/LevelController.java index 68d7450..8205716 100755 --- a/src/main/java/net/sowgro/npehero/main/LevelController.java +++ b/src/main/java/net/sowgro/npehero/main/LevelController.java @@ -11,22 +11,14 @@ import javafx.collections.ObservableList;  public class LevelController  { -    File thisDir = new File("levels"); +    private static File thisDir = new File("levels");      private static ObservableList<Level> levelList;      private static ObservableList<Level> validLevelList;      /** -     * Creates a levelController, which holds all the levels -     */ -    public LevelController() -    { -        readData(); -    } - -    /**       * Reads contents of folder and creates cooresponding levels       */ -    public void readData() +    public static void readData()      {          levelList = FXCollections.observableArrayList();          validLevelList = FXCollections.observableArrayList(); @@ -46,7 +38,7 @@ public class LevelController       * Adds a level to the list by creating a directory and required files       * @param text: the name of the directory and default title       */ -    public void addLevel(String text)  +    public static void addLevel(String text)      {          File levelDir = new File(thisDir,text);          levelDir.mkdirs(); @@ -69,7 +61,7 @@ public class LevelController       * Removes level from the filesystem then reloads this levelController       * @param level: the level to be removed       */ -    public void removeLevel(Level level) +    public static void removeLevel(Level level)      {          File hold = level.thisDir;          levelList.remove(level); diff --git a/src/main/java/net/sowgro/npehero/main/ScoreController.java b/src/main/java/net/sowgro/npehero/main/ScoreController.java index ba43171..205201c 100755 --- a/src/main/java/net/sowgro/npehero/main/ScoreController.java +++ b/src/main/java/net/sowgro/npehero/main/ScoreController.java @@ -39,7 +39,7 @@ public class ScoreController{       */      public void miss(boolean muted) {          if (!muted) { -            Driver.soundController.playSfx("miss"); +            SoundController.playSfx(SoundController.MISS);          }          combo = 0;          comboMultiplier = 1; @@ -52,7 +52,7 @@ public class ScoreController{       * Increments the combo by one       */      private void combo() { -        Driver.soundController.playSfx("hit"); +        SoundController.playSfx(SoundController.HIT);          combo++;          if (combo == 2) { diff --git a/src/main/java/net/sowgro/npehero/main/SettingsController.java b/src/main/java/net/sowgro/npehero/main/SettingsController.java index d5f3e3b..5ea0ac9 100755 --- a/src/main/java/net/sowgro/npehero/main/SettingsController.java +++ b/src/main/java/net/sowgro/npehero/main/SettingsController.java @@ -8,21 +8,16 @@ import org.json.simple.JSONObject;  import org.json.simple.parser.JSONParser;
  import javafx.beans.property.SimpleDoubleProperty;
 -public class SettingsController 
 +public class SettingsController
  {
 -	public SimpleDoubleProperty effectsVol = new SimpleDoubleProperty(1);
 -	public SimpleDoubleProperty musicVol = new SimpleDoubleProperty(1);
 -	private File file = new File("settings.json");
 +	public static SimpleDoubleProperty effectsVol = new SimpleDoubleProperty(1);
 +	public static SimpleDoubleProperty musicVol = new SimpleDoubleProperty(1);
 +	private static File file = new File("settings.json");
 -	public SettingsController()
 -	{
 -		read();
 -	}
 -	
  	/**
  	 * reads json data from settings.json
  	 */
 -	public void read()
 +	public static void read()
  	{
  		JSONParser jsonParser = new JSONParser(); //parser to read the file
  		try(FileReader reader = new FileReader(file))
 @@ -43,7 +38,7 @@ public class SettingsController  	/**
  	 * writes json data to settings.json
  	 */
 -	public void write()
 +	public static void write()
  	{
  		FileWriter fileWriter;
  		try
 diff --git a/src/main/java/net/sowgro/npehero/main/SoundController.java b/src/main/java/net/sowgro/npehero/main/SoundController.java index da80ab4..e27221e 100755 --- a/src/main/java/net/sowgro/npehero/main/SoundController.java +++ b/src/main/java/net/sowgro/npehero/main/SoundController.java @@ -1,81 +1,43 @@  package net.sowgro.npehero.main;  import java.io.File; -import java.net.URISyntaxException; -import java.nio.file.Path; -import java.nio.file.Paths;  import java.util.HashMap; +import javafx.scene.media.AudioClip;  import net.sowgro.npehero.Driver;  import javafx.scene.media.Media;  import javafx.scene.media.MediaPlayer; -import javafx.util.Duration;  public class SoundController   { -    public MediaPlayer songMediaPlayer; -    public MediaPlayer sfxMediaPlayer; -    private final HashMap<String,MediaPlayer> effects = new HashMap<>(); -    private final File mainMenuSong; - -    { -        try { -            mainMenuSong = new File(Driver.getResource("fairyfountain.wav").toURI()); -        } catch (URISyntaxException e) { -            throw new RuntimeException(e); -        } -    } +    public static MediaPlayer songMediaPlayer; +    public static final Media MENUSONG = new Media(Driver.getResource("fairyfountain.wav").toString()); -    /** -     * creates a new sound controller and starts playing the main menu music -     */ -    public SoundController()  -    { -        effects.put("hit", new MediaPlayer(new Media(Driver.getResource("hit.wav").toString()))); -        effects.put("miss", new MediaPlayer(new Media(Driver.getResource("miss.wav").toString()))); -        effects.put("forward", new MediaPlayer(new Media(Driver.getResource("forward.wav").toString()))); -        effects.put("backward", new MediaPlayer(new Media(Driver.getResource("backward.wav").toString()))); -        effects.forEach((key,value) -> { -            value.volumeProperty().bind(Driver.settingsController.effectsVol); -        }); -        playMenuSong(); -    } +    public static final AudioClip HIT      = new AudioClip(Driver.getResource("hit.wav").toString()); +    public static final AudioClip MISS     = new AudioClip(Driver.getResource("miss.wav").toString()); +    public static final AudioClip FORWARD  = new AudioClip(Driver.getResource("forward.wav").toString()); +    public static final AudioClip BACKWARD = new AudioClip(Driver.getResource("backward.wav").toString());      /**       * plays the song that is passed in. -     * @param songFile: the song +     * @param song the song to play       */ -    public void playSong(File songFile) +    public static void playSong(Media song)      {          if (songMediaPlayer != null)          {              songMediaPlayer.stop();          } -        Media song = new Media(songFile.toURI().toString());          songMediaPlayer = new MediaPlayer(song); -        songMediaPlayer.volumeProperty().bind(Driver.settingsController.musicVol); -        songMediaPlayer.play(); -    } - -    /** -     * plays the main menu song -     */ -    public void playMenuSong() -    { -        if (!mainMenuSong.exists()) { -            System.out.println("NOT EXIST " + mainMenuSong.getAbsolutePath()); -            return; -        } -        playSong(mainMenuSong); -        songMediaPlayer.setCycleCount(MediaPlayer.INDEFINITE); +        songMediaPlayer.volumeProperty().bind(SettingsController.musicVol);          songMediaPlayer.play();      }      /**       * stops the currently playing song       */ -    public void endSong() +    public static void endSong()      {          if (songMediaPlayer != null)          { @@ -85,13 +47,11 @@ public class SoundController      /**       * plays a sound effect -     * for the volume slider to take effect each mediaplayer needs to be preloaded. -     * this rewinds and played the proper mediaplayer for the sound -     * @param preset: a string of the name of the sound. possible sounds assigned in the constructor +     * @param clip the sound to play       */ -    public void playSfx(String preset) +    public static void playSfx(AudioClip clip)      { -        effects.get(preset).seek(new Duration(0)); -        effects.get(preset).play(); +        clip.volumeProperty().bind(SettingsController.effectsVol); +        clip.play();      }  }
\ No newline at end of file | 
