package org.Controllers;

import org.Models.Grille;
import org.Models.Musique;
import org.Views.VueBandeauControle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TetrisBandeauControleur {
    private boolean partieEnPause = false;
    private boolean partieTerminee = false;
    private Musique musique;
    private VueBandeauControle vueControle;
    private Grille grille;

    public TetrisBandeauControleur(VueBandeauControle vueControle, Musique musique, Grille grille) {
        this.vueControle = vueControle;
        this.musique = musique;
        this.grille = grille;
        // action play/pause
        this.vueControle.getPauseButton().addActionListener(e -> switchPlayPause());
        this.vueControle.getQuitterButton().addActionListener(e -> {
            System.out.println("Fermeture de l'application...");
            System.exit(0);
        });

    }

    public void switchPlayPause() {
        if (partieTerminee) {
            return;
        }
        partieEnPause = !partieEnPause;
        grille.setEnPause(partieEnPause);
        musique.basculePlayPause();
        vueControle.getPauseButton().setText(partieEnPause ? "PLAY" : "PAUSE");
        System.out.println(partieEnPause ? "Partie en pause" : "Partie en cours");
    }

    public void setPartieTerminee() {
        partieTerminee = true;
        musique.arreterMusique();
        vueControle.getPauseButton().setEnabled(false);
        System.out.println("Partie terminée");
    }

}
