|
- using System.Threading.Tasks;
- using RobocraftX.Schedulers;
- using Svelto.ECS;
- using Techblox.Server.Schedulers;
- using TechbloxModdingAPI.Common.Engines;
- using TechbloxModdingAPI.Utility;
-
- namespace TechbloxModdingAPI.Common.Utils;
-
- public static class AsyncUtils
- {
- private static AsyncUtilsEngine gameEngine = new();
-
- /// <summary>
- /// Waits for entity submission asynchronously.
- /// Use after placing a block or otherwise creating things in the game to access their properties.
- /// </summary>
- public static async Task WaitForSubmission()
- {
- await gameEngine.WaitForSubmission();
- }
-
- public static async Task WaitForNextFrame()
- {
- await gameEngine.WaitForNextFrame();
- }
-
- public static void Setup(EnginesRoot enginesRoot, bool clientside)
- {
- gameEngine.Setup(enginesRoot,
- clientside ? ClientExtraLean.UIScheduler : ServerExtraLean.DeterministicTimeRunningStepRunner);
- }
-
- public static void Init()
- {
- EngineManager.AddEngine(gameEngine, ApiEngineType.Build, ApiEngineType.Menu, ApiEngineType.PlayClient, ApiEngineType.PlayServer);
- }
- }
|