215 lines
6.0 KiB
Java
215 lines
6.0 KiB
Java
package ihm.controller;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.net.URL;
|
|
import java.util.Locale;
|
|
import java.util.ResourceBundle;
|
|
|
|
import ihm.EffetSonore;
|
|
import ihm.Musique;
|
|
import javafx.fxml.FXML;
|
|
import javafx.fxml.FXMLLoader;
|
|
import javafx.fxml.Initializable;
|
|
import javafx.scene.control.CheckBox;
|
|
import javafx.scene.control.ComboBox;
|
|
import javafx.scene.control.Slider;
|
|
import javafx.scene.input.MouseEvent;
|
|
import javafx.scene.layout.Pane;
|
|
|
|
public class ParametreController implements Initializable {
|
|
@FXML
|
|
private Pane rootPane;
|
|
@FXML
|
|
private CheckBox cmusique;
|
|
@FXML
|
|
private CheckBox cbEffetSonore;
|
|
@FXML
|
|
private CheckBox clair;
|
|
@FXML
|
|
private ComboBox<String> langues;
|
|
@FXML
|
|
private Slider sliderMusique;
|
|
@FXML
|
|
private Slider sliderEffets;
|
|
|
|
public static Locale LaLangue = Locale.FRANCE;
|
|
public static boolean cbMusiqueCoche = false; // verifi si la checbox musical est coche
|
|
public static boolean cbSonCoche = false;
|
|
public static boolean cbClair = false;
|
|
public static double slideValue;
|
|
public static double slideValueEffets;
|
|
public static String langueChoisi;
|
|
|
|
private String tabLangues[] = { "Anglais", "Italien", "Espagnol", "Français" };
|
|
|
|
boolean MusiqueLancee = false; // verifi si la musique a déja été lancé une première fois
|
|
|
|
String filepathMusique = "/ihm/ressources/musique/The_Red_Fox_Tavern.wav"; // lien vers la musique :
|
|
// https://www.youtube.com/watch?v=LBpKUIyOHdo
|
|
InputStream fileMusique = getClass().getResourceAsStream("/ihm/ressources/musique/The_Red_Fox_Tavern.wav");
|
|
|
|
File repertoire = new File("src//ihm//ressources");
|
|
File repertoire2;
|
|
String liste[] = repertoire.list();
|
|
|
|
@Override
|
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
|
|
|
cmusique.setSelected(cbMusiqueCoche);
|
|
cbEffetSonore.setSelected(cbSonCoche);
|
|
clair.setSelected(cbClair);
|
|
sliderMusique.setValue(slideValue);
|
|
sliderEffets.setValue(slideValueEffets);
|
|
|
|
System.out.println("slidevalueeffet init = " + slideValueEffets);
|
|
|
|
langues.getItems().add(tabLangues[0]);
|
|
langues.getItems().add(tabLangues[1]);
|
|
langues.getItems().add(tabLangues[2]);
|
|
langues.getItems().add(tabLangues[3]);
|
|
|
|
if (langueChoisi == null) {
|
|
langues.setValue("Français");
|
|
} else {
|
|
langues.setValue(langueChoisi);
|
|
}
|
|
|
|
}
|
|
|
|
@FXML
|
|
public void enregistre(MouseEvent mouseEvent) throws IOException, Exception {
|
|
|
|
InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav");
|
|
|
|
// Pour les langues
|
|
if (langues.getValue() == "Anglais") {
|
|
LaLangue = Locale.ENGLISH;
|
|
langueChoisi = tabLangues[0];
|
|
} else if (langues.getValue() == "Français") {
|
|
LaLangue = Locale.FRANCE;
|
|
langueChoisi = tabLangues[3];
|
|
}
|
|
|
|
// Pour la musique
|
|
if (fileMusique != null) {
|
|
|
|
if (cmusique.isSelected() == true) {
|
|
cbMusiqueCoche = true;
|
|
|
|
// si la musique n'a jamais été lancé:
|
|
if (Musique.clipTimePosition == 0 && MusiqueLancee == false && Musique.musiqueEnCours != true) {
|
|
Musique.playMusique(fileMusique);
|
|
Musique.musiqueEnCours = true;
|
|
MusiqueLancee = true;
|
|
Musique.setVolume(sliderMusique.getValue());
|
|
|
|
}
|
|
// si elle a deja été lancé mais mis en pause, reprend a partir du point d'arret :
|
|
else if (Musique.musiqueEnCours != true) {
|
|
Musique.resumeMusique(Musique.clip);
|
|
Musique.musiqueEnCours = true;
|
|
Musique.setVolume(sliderMusique.getValue());
|
|
}
|
|
|
|
} else {
|
|
if (cbMusiqueCoche == true) {
|
|
cbMusiqueCoche = false;
|
|
Musique.pauseMusique(Musique.clip); // met en pause la musique
|
|
Musique.musiqueEnCours = false;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// Pour les effets sonores
|
|
if (cbEffetSonore.isSelected() == true) {
|
|
EffetSonore.setSoundOK(true);
|
|
cbSonCoche = true;
|
|
|
|
System.out.println(EffetSonore.isSoundOK());
|
|
}
|
|
|
|
else {
|
|
EffetSonore.setSoundOK(false);
|
|
cbSonCoche = false;
|
|
System.out.println(EffetSonore.isSoundOK());
|
|
}
|
|
|
|
// Pour la couleur du theme
|
|
|
|
if (clair.isSelected()) {
|
|
// Pane root =
|
|
// FXMLLoader.load(getClass().getResource("../ressources/menu.fxml"));
|
|
|
|
rootPane.setStyle("-fx-background-color: white;");
|
|
rootPane.applyCss();
|
|
}
|
|
rootPane.setStyle("-fx-background-color: white;");
|
|
rootPane.applyCss();
|
|
/*
|
|
* if (liste != null) { for (int i = 0; i < liste.length; i++) {
|
|
*
|
|
* System.out.println(liste[i]); System.out.println(i); repertoire2 = new
|
|
* File("../ressources/" + liste[i]);
|
|
*
|
|
* if (repertoire.isDirectory() == false) { if (liste[i] == "Plateau.fxml") {
|
|
* Pane root1 = FXMLLoader.load(getClass().getResource("../ressources/" +
|
|
* liste[i])); root1.setStyle("../ressources/style/plateau.css");
|
|
*
|
|
* } Pane root1 = FXMLLoader.load(getClass().getResource("../ressources/" +
|
|
* liste[i])); root1.setStyle("../ressources/style/menuLight.css"); } }
|
|
*
|
|
* }
|
|
*
|
|
* }
|
|
*/
|
|
|
|
// Quitter les paramètres
|
|
EffetSonore.playSoundEffect(fileSound1); // emet un bruit sur le bouton si les effets sonores sont activés
|
|
|
|
final URL fxmlURL = getClass().getResource("/ihm/ressources/Menu.fxml");
|
|
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue",
|
|
ParametreController.LaLangue);
|
|
|
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
|
Pane pane = fxmlLoader.load();
|
|
|
|
rootPane.getChildren().setAll(pane);
|
|
|
|
}
|
|
|
|
@FXML
|
|
public void slideVolumeMusique(MouseEvent mouseEvent) throws IOException {
|
|
|
|
if (Musique.musiqueEnCours == true) {
|
|
Musique.setVolume(sliderMusique.getValue());
|
|
slideValue = sliderMusique.getValue();
|
|
|
|
}
|
|
else {
|
|
slideValue = sliderMusique.getValue();
|
|
}
|
|
|
|
}
|
|
|
|
public void slideVolumeEffet(MouseEvent mouseEvent) throws IOException {
|
|
|
|
EffetSonore.setVolumeEffets(sliderEffets.getValue());
|
|
slideValueEffets = sliderEffets.getValue();
|
|
|
|
}
|
|
|
|
/*
|
|
*
|
|
* @FXML public void monterVolume(MouseEvent mouseEvent) throws IOException{
|
|
* Musique.volumeUp(5.f); System.out.println("on monte le son"); }
|
|
*
|
|
* @FXML public void baisserVolume(MouseEvent mouseEvent) throws IOException{
|
|
* Musique.volumeDown(5.f); System.out.println("on baisse le son"); }
|
|
*/
|
|
|
|
}
|