using System.Threading.Tasks;

using Svelto.ECS;

namespace GamecraftModdingAPI.Utility
{
    public static class AsyncUtils
    {
        private static AsyncUtilsEngine gameEngine = new AsyncUtilsEngine();

        /// <summary>
        /// Waits for entity submission asynchronously.
        /// </summary>
        public static async Task WaitForSubmission()
        {
            await gameEngine.WaitForSubmission();
        }

        public static void Setup(EnginesRoot enginesRoot)
        {
            gameEngine.Setup(enginesRoot.GenerateEntityFunctions(), enginesRoot.GenerateEntityFactory());
        }

        public static void Init()
        {
            GameEngineManager.AddGameEngine(gameEngine);
        }
    }
}