using System.Collections;
using UnityEngine;

[RequireComponent(typeof(AudioSource))]
public class TVController : MonoBehaviour
{
    [Header("Компоненты")]
    [Tooltip("Renderer объекта, представляющего экран телевизора.")]
    [SerializeField] private Renderer _tvScreenRenderer;
    [SerializeField] private AudioSource _audioSource;

    [Header("Настройки")]
    [Tooltip("Звук, который проигрывается при включенном телевизоре.")]
    [SerializeField] private AudioClip _tvSound;

    [Tooltip("Через сколько секунд после включения телевизор выключится.")]
    [SerializeField] private float _onDuration = 5.0f;

    private void Awake()
    {
        // Убедимся, что экран и звук выключены на старте
        if (_tvScreenRenderer != null)
        {
            _tvScreenRenderer.enabled = false;
        }
        _audioSource = GetComponent<AudioSource>();
    }

    // Публичный метод для включения телевизора
    public void TurnOnAndOffAfterDelay()
    {
        StartCoroutine(TVActivationCoroutine());
    }

    private IEnumerator TVActivationCoroutine()
    {
        // Фаза включения
        Debug.Log("Телевизор включается...");
        _tvScreenRenderer.enabled = true;
        _audioSource.PlayOneShot(_tvSound);

        // Ожидание
        yield return new WaitForSeconds(_onDuration);

        // Фаза выключения
        Debug.Log("Телевизор выключается...");
        _tvScreenRenderer.enabled = false;
        // Звук остановится сам, так как он OneShot. Если звук зациклен, нужно использовать _audioSource.Stop().
    }
}