using System.Threading; using BITKit; using BITKit.UX; using BITKit.UX.Settings; using Cysharp.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Net.Like.Xue.Tokyo.UX; using Net.Project.B.UX; using Project.B.Player; using Project.B.UX; using UnityEngine; using IUXDialogue = Net.Project.B.UX.IUXDialogue; namespace Net.Like.Xue.Tokyo { public class Program : MonoBehaviour { private async void Start() { DontDestroyOnLoad(gameObject); var source = new CancellationTokenSource(); destroyCancellationToken.Register(source.Cancel); var serviceCollection = BITApp.ServiceCollection = new ServiceCollection(); await global::Project.B.Program.AddProjectBServices(serviceCollection,source); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton>(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton>(); serviceCollection.AddSingleton>(); serviceCollection.AddKeyedSingleton>(nameof(IUXHud)); serviceCollection.AddKeyedSingleton>(nameof(IUXMap)); serviceCollection.AddSingleton(); serviceCollection.AddSingleton>(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); //获取服务提供者 await using var serviceProvider = BITApp.ServiceProvider = serviceCollection.BuildServiceProvider(); await global::Project.B.Program.BuildServiceProvider(serviceProvider,destroyCancellationToken); var uxService = serviceProvider.GetRequiredService(); await uxService.InitializeAsync(); uxService.Entry(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredKeyedService(nameof(IUXHud)); serviceProvider.GetRequiredKeyedService(nameof(IUXMap)); var inventory = serviceProvider.GetRequiredService(); inventory.AutoInspect = ItemQuality.Develop; serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); Application.targetFrameRate = 165; BITApp.WalkUntilInitialize.TrySetResult(); await destroyCancellationToken.WaitUntilCanceled(); BITApp.WalkUntilInitialize = new(); } } }