// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.GameLogic.PlugIns; using System.Runtime.InteropServices; using MUnique.OpenMU.PlugIns; /// /// An interface for a task which is executed periodically by the game context every second. /// The task implementation itself can then decide if it wants to execute itself. /// [Guid("A890CEB1-6EA7-49A1-8099-6FF52D33DC64")] [PlugInPoint("Periodic Tasks", "Is called in an periodic interval.")] public interface IPeriodicTaskPlugIn { /// /// Executes the task. /// /// The game context. ValueTask ExecuteTaskAsync(GameContext gameContext); /// /// Forces to start the task on the next start check. /// void ForceStart(); }