﻿using System.Collections;

namespace AsmodeeDigital.Common.Plugin.Manager.Coroutine
{
    /// <summary>
    /// Abstract manager for coroutine manager
    /// </summary>
    public static class CoroutineManager
    {
        /// <summary>
        /// Instance of implementation of ICoroutineManager
        /// </summary>
        private static ICoroutineManager _internalCoroutineManager;

        /// <summary>
        /// Initialize the coroutine manager with an implementation of ICoroutineManager
        /// </summary>
        /// <param name="internalCoroutineManager"></param>
        public static void Init(ICoroutineManager internalCoroutineManager)
        {
            _internalCoroutineManager = internalCoroutineManager;
        }

        /// <summary>
        /// Start the coroutine
        /// </summary>
        /// <param name="coroutine">Coroutine</param>
        public static void StartCoroutine(IEnumerator coroutine)
        {
            _internalCoroutineManager.StartCoroutine(coroutine);
        }
    }
}
