using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;

namespace Streamingle.Subtitles
{
    public sealed class SubtitleClip : PlayableAsset, ITimelineClipAsset
    {
        [SerializeField, TextArea(1, 3)]
        private string text = string.Empty;

        public string Text
        {
            get => text;
            set => text = value ?? string.Empty;
        }

        public ClipCaps clipCaps => ClipCaps.None;

        public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
        {
            var playable = ScriptPlayable<SubtitleBehaviour>.Create(graph);
            playable.GetBehaviour().Text = text ?? string.Empty;
            return playable;
        }
    }
}
