using System.Threading.Tasks; using TinaX.GameStage.Const; using TinaX.GameStage.Internal; using TinaX.Services; namespace TinaX.GameStage { [XServiceProviderOrder(150)] public class GameStageProvider : IXServiceProvider { public string ServiceName => GameStageConst.ServiceName; public Task OnInit(IXCore core) { return Task.FromResult(null); } public void OnServiceRegister(IXCore core) { core.Services.Singleton() .SetAlias(); } public Task OnStart(IXCore core) => core.Services.Get().Start(); public void OnQuit() { XCore.GetMainInstance().Services.Get().Close(); } public Task OnRestart() => Task.CompletedTask; } }