diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 91ed716c..16470fb1 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -15,7 +15,6 @@ import org.apache.commons.cli.ParseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import seng302.model.PolarTable; -import seng302.utilities.Sounds; public class App extends Application { @@ -68,7 +67,6 @@ public class App extends Application { @Override public void start(Stage primaryStage) throws Exception { - Sounds.playMenuMusic(); Parent root = FXMLLoader.load(getClass().getResource("/views/StartScreenView.fxml")); primaryStage.setTitle("Party Parrots at Sea"); Scene scene = new Scene(root, 1530, 960); diff --git a/src/main/java/seng302/utilities/Sounds.java b/src/main/java/seng302/utilities/Sounds.java index 0f99213a..da9cc72a 100644 --- a/src/main/java/seng302/utilities/Sounds.java +++ b/src/main/java/seng302/utilities/Sounds.java @@ -24,6 +24,18 @@ public class Sounds { } } + public static void setMutes() { + if (soundPlayer != null) { + soundPlayer.setMute(soundEffectsMuted); + } + if (soundEffect != null) { + soundEffect.setMute(soundEffectsMuted); + } + if (musicPlayer != null) { + musicPlayer.setMute(musicMuted); + } + } + public static void stopSoundEffects() { if (soundEffect != null) { soundEffect.stop(); @@ -71,10 +83,19 @@ public class Sounds { } public static void playMenuMusic() { - Media menuMusic = new Media(Sounds.class.getClassLoader().getResource("sounds/Elevator-music.mp3").toString()); + Media menuMusic = new Media( + Sounds.class.getClassLoader().getResource("sounds/Elevator-music.mp3").toString()); musicPlayer = new MediaPlayer(menuMusic); musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); musicPlayer.play(); + } + + + public static void playFinishMusic() { + Media finishMusic = new Media(Sounds.class.getClassLoader().getResource("sounds/Happy-birthday-song.mp3").toString()); + musicPlayer = new MediaPlayer(finishMusic); + musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); + musicPlayer.play(); musicPlayer.setMute(musicMuted); } diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 81284a06..4d2effb2 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -153,8 +153,7 @@ public class GameClient { if (socketThread != null) { socketThread.setSocketToClose(); } - Sounds.stopMusic(); - Sounds.playMenuMusic(); + FXMLLoader fxmlLoader = new FXMLLoader( getClass().getResource("/views/StartScreenView.fxml")); try { @@ -213,6 +212,9 @@ public class GameClient { private void loadFinishScreenView() { + Sounds.stopMusic(); + Sounds.stopSoundEffects(); + Sounds.playFinishMusic(); FXMLLoader fxmlLoader = loadFXMLToHolder("/views/FinishScreenView.fxml"); FinishScreenViewController controller = fxmlLoader.getController(); controller.setFinishers(raceState.getPlayerPositions()); diff --git a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java index b2e49f1a..f2c2d22b 100644 --- a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java +++ b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java @@ -15,10 +15,12 @@ import javafx.fxml.Initializable; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import seng302.model.ClientYacht; +import seng302.utilities.Sounds; public class FinishScreenViewController implements Initializable { @@ -87,4 +89,8 @@ public class FinishScreenViewController implements Initializable { public void switchToStartScreenView() { setContentPane("/views/StartScreenView.fxml"); } + + public void playButtonHoverSound(MouseEvent mouseEvent) { + Sounds.playHoverSound(); + } } diff --git a/src/main/java/seng302/visualiser/controllers/LobbyController.java b/src/main/java/seng302/visualiser/controllers/LobbyController.java index 9d52a7a9..00c7febd 100644 --- a/src/main/java/seng302/visualiser/controllers/LobbyController.java +++ b/src/main/java/seng302/visualiser/controllers/LobbyController.java @@ -16,6 +16,7 @@ import javafx.scene.control.Button; import javafx.scene.control.TextArea; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; import javafx.scene.text.Text; import javafx.stage.Stage; @@ -32,6 +33,10 @@ import seng302.visualiser.ClientToServerThread; */ public class LobbyController { + public void playButtonHoverSound(MouseEvent mouseEvent) { + Sounds.playHoverSound(); + } + public enum CloseStatus { LEAVE, READY diff --git a/src/main/java/seng302/visualiser/controllers/StartScreenController.java b/src/main/java/seng302/visualiser/controllers/StartScreenController.java index 5cdf36a2..37d9ef62 100644 --- a/src/main/java/seng302/visualiser/controllers/StartScreenController.java +++ b/src/main/java/seng302/visualiser/controllers/StartScreenController.java @@ -36,7 +36,9 @@ public class StartScreenController implements Initializable { private GameClient gameClient; public void initialize(URL url, ResourceBundle resourceBundle) { - + Sounds.stopMusic(); + Sounds.stopSoundEffects(); + Sounds.playMenuMusic(); if (Sounds.isMusicMuted()) { muteMusicButton.setText("UnMute Music"); } else { @@ -47,7 +49,7 @@ public class StartScreenController implements Initializable { } else { muteSoundsButton.setText("Mute Sounds"); } - + Sounds.setMutes(); // gameClient = new GameClient(holder); } diff --git a/src/main/resources/sounds/Happy-birthday-song.mp3 b/src/main/resources/sounds/Happy-birthday-song.mp3 new file mode 100644 index 00000000..aee030a7 Binary files /dev/null and b/src/main/resources/sounds/Happy-birthday-song.mp3 differ diff --git a/src/main/resources/views/FinishScreenView.fxml b/src/main/resources/views/FinishScreenView.fxml index ab1e5835..0ebdf261 100644 --- a/src/main/resources/views/FinishScreenView.fxml +++ b/src/main/resources/views/FinishScreenView.fxml @@ -1,5 +1,10 @@ + + + + + @@ -10,6 +15,7 @@ + @@ -42,6 +48,6 @@ -