M431-ShadowHunterGame/src/ihm/controller/ParametreController.java

222 lines
6.2 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];
}
else if (langues.getValue() == "Espagnol") {
LaLangue = Locale.GERMAN;
langueChoisi = tabLangues[2];
}
else if (langues.getValue() == "Italien") {
LaLangue = Locale.ITALIAN;
langueChoisi = tabLangues[1];
}
// 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"); }
*/
}