using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Svelto.Tasks.Lean; using Svelto.Tasks.ExtraLean; namespace GamecraftModdingAPI.Tasks { public static class Scheduler { public static Svelto.Tasks.Lean.Unity.UpdateMonoRunner leanRunnerUI { get { return RobocraftX.Schedulers.Lean.UIScheduler; } } public static Svelto.Tasks.ExtraLean.Unity.UpdateMonoRunner extraLeanRunnerUI { get { return RobocraftX.Schedulers.ExtraLean.UIScheduler; } } public static readonly Svelto.Tasks.ExtraLean.Unity.UpdateMonoRunner extraLeanRunner = new Svelto.Tasks.ExtraLean.Unity.UpdateMonoRunner("GamecraftModdingAPIExtraLean"); public static readonly Svelto.Tasks.Lean.Unity.UpdateMonoRunner leanRunner = new Svelto.Tasks.Lean.Unity.UpdateMonoRunner("GamecraftModdingAPILean"); public static void Schedule(ISchedulable toRun, bool extraLean = false, bool ui = false) { if (extraLean) { if (ui) { toRun.Run().RunOn(extraLeanRunnerUI); } else { toRun.Run().RunOn(extraLeanRunner); } } else { if (ui) { toRun.Run().RunOn(leanRunnerUI); } else { toRun.Run().RunOn(leanRunner); } } } public static void Dispose() { leanRunner.Stop(); extraLeanRunner.Stop(); leanRunner.Dispose(); extraLeanRunner.Dispose(); } } }