using UnityEngine;
using UnityEngine.UI;

public class SlideNavigation : MonoBehaviour
{
    [SerializeField] private GameObject[] slides; // Array untuk menyimpan semua slide
    private int currentSlideIndex = 0; // Indeks slide yang sedang aktif

    // Assign AudioSource global yang memutar materi audio di Inspector
    [SerializeField] private AudioSource materialAudioSource;

    private void Start()
    {
        // Aktifkan hanya slide pertama, sembunyikan lainnya
        for (int i = 0; i < slides.Length; i++)
        {
            slides[i].SetActive(i == 0);
        }
        currentSlideIndex = 0;
    }

    // Fungsi untuk menghentikan audio materi
    private void StopAllMaterialAudio()
    {
        if (materialAudioSource != null)
        {
            materialAudioSource.Stop();
        }
    }

    private void ResetAudioInCurrentSlide()
    {
        // Jika di slide terdapat lebih dari satu komponen PlayAudio, reset semuanya
        PlayAudio[] playAudioComponents = slides[currentSlideIndex].GetComponentsInChildren<PlayAudio>();
        foreach (PlayAudio pa in playAudioComponents)
        {
            pa.ResetAudio();
        }
    }

    // Fungsi untuk pindah ke slide berikutnya
    public void NextSlide()
    {
        if (currentSlideIndex < slides.Length - 1)
        {
            ResetAudioInCurrentSlide();

            StopAllMaterialAudio(); // Hentikan audio sebelum slide berganti
            slides[currentSlideIndex].SetActive(false);
            currentSlideIndex++;
            slides[currentSlideIndex].SetActive(true);
        }
    }

    // Fungsi untuk kembali ke slide sebelumnya
    public void PreviousSlide()
    {
        if (currentSlideIndex > 0)
        {
            ResetAudioInCurrentSlide();

            StopAllMaterialAudio(); // Hentikan audio sebelum slide berganti
            slides[currentSlideIndex].SetActive(false);
            currentSlideIndex--;
            slides[currentSlideIndex].SetActive(true);
        }
    }
}
