|
123456789101112131415161718192021222324252627282930313233343536373839 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- using Svelto.Tasks;
- using Svelto.Tasks.Enumerators;
-
- namespace GamecraftModdingAPI.Tasks
- {
- /// <summary>
- /// An asynchronous task to be performed once.
- /// Once constructed, this can be run by scheduling it with Scheduler.Schedule()
- /// </summary>
- public class Once : ISchedulable
- {
- private Action task;
-
- private float delay;
- public IEnumerator<TaskContract> Run()
- {
- yield return new WaitForSecondsEnumerator(delay).Continue();
- task();
- yield return Yield.It;
- }
-
- /// <summary>
- /// Construct a single-run task
- /// </summary>
- /// <param name="task">The task to run once</param>
- /// <param name="after">The delay (in seconds) before the task is run</param>
- public Once(Action task, float after = 0.0f)
- {
- this.task = task;
- this.delay = after;
- }
- }
- }
|