153 lines
5.6 KiB
C#
153 lines
5.6 KiB
C#
using System.Threading;
|
|
using BITKit;
|
|
using BITKit.UX;
|
|
using BITKit.UX.Hotkey;
|
|
using BITKit.UX.Settings;
|
|
using Cysharp.Threading.Tasks;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
using Net.BITKit.Localization;
|
|
using Net.Like.Xue.Tokyo.UX;
|
|
using Net.Project.B.AI;
|
|
using Net.Project.B.Chat;
|
|
using Net.Project.B.Health;
|
|
using Net.Project.B.PDA;
|
|
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<IUXService, UXService>();
|
|
serviceCollection.AddSingleton<ILogger<IUXInitialize>, UnityLogger<IUXInitialize>>();
|
|
|
|
serviceCollection.AddSingleton<UXRadialMenu>();
|
|
serviceCollection.AddSingleton<UXContextMenu>();
|
|
serviceCollection.AddSingleton<UXAlert>();
|
|
|
|
serviceCollection.AddSingleton<IUXDialogue, UXDialogue<IUXHud>>();
|
|
serviceCollection.AddSingleton<IUXLoadingMap, UXLoadingMap>();
|
|
serviceCollection.AddSingleton<IUXLobby,UXMenu>();
|
|
serviceCollection.AddSingleton<IUXMapSelector,UXLevel>();
|
|
serviceCollection.AddSingleton<IUXHud,UXHud>();
|
|
serviceCollection.AddSingleton<IUXMap,UXMap>();
|
|
serviceCollection.AddSingleton<IUXCosmetics, UXCosmetics<IUXLobby>>();
|
|
|
|
serviceCollection.AddSingleton<IUXSettings, UXSettings<IUXLobby,PlayerSettings>>();
|
|
|
|
serviceCollection.AddKeyedSingleton<IUXMap, UXMap<IUXHud>>(nameof(IUXHud));
|
|
serviceCollection.AddKeyedSingleton<IUXMap, UXMap<IUXMap>>(nameof(IUXMap));
|
|
|
|
|
|
serviceCollection.AddSingleton<IUXBuyStation, UXBuyStation>();
|
|
|
|
serviceCollection.AddSingleton<IUXInventory, UXInventory<IUXHud>>();
|
|
|
|
serviceCollection.AddSingleton<IUXSnapshotWindow, UXSnapshotWindow>();
|
|
|
|
serviceCollection.AddSingleton<IUXItemInspector, UXItemInspector>();
|
|
|
|
serviceCollection.AddSingleton<IUXInventorySwap, UXInventorySwap>();
|
|
|
|
serviceCollection.AddSingleton<UXEscMenu>();
|
|
|
|
serviceCollection.AddSingleton<IUXControlMode, UXControlMode<IUXHud>>();
|
|
|
|
serviceCollection.AddSingleton<IUXSnapshot, UXSnapshots>();
|
|
|
|
serviceCollection.AddSingleton<IUXHotKey>(x => x.GetRequiredService<UXRadialMenu>());
|
|
|
|
serviceCollection.AddSingleton<IUXMark, UXMark<IUXHud>>();
|
|
|
|
serviceCollection.AddSingleton<IUXChat, UXChat<IUXHud>>();
|
|
|
|
serviceCollection.AddSingleton<IPDAService,UnityPDAService>();
|
|
|
|
//获取服务提供者
|
|
await using var serviceProvider = BITApp.ServiceProvider = serviceCollection.BuildServiceProvider();
|
|
|
|
serviceProvider.GetRequiredService<CsvLocalizationService>().Url =
|
|
@"http://server.bitfall.icu:21982/net.like.xue.tokyo/net.like.xue.tokyo.localization.csv";
|
|
|
|
await global::Project.B.Program.BuildServiceProvider(serviceProvider,destroyCancellationToken);
|
|
|
|
{
|
|
serviceProvider.QueryComponents(out AIHumanService aiHumanService);
|
|
|
|
aiHumanService.DamageOnBreakDialogue = 30;
|
|
}
|
|
{
|
|
serviceProvider.QueryComponents(out PlayerAutoHealController healController);
|
|
healController.Enabled = false;
|
|
}
|
|
|
|
|
|
var uxService = serviceProvider.GetRequiredService<IUXService>();
|
|
|
|
await uxService.InitializeAsync();
|
|
|
|
uxService.Entry<IUXLobby>();
|
|
|
|
serviceProvider.GetRequiredService<IUXSettings>();
|
|
|
|
serviceProvider.GetRequiredService<UXAlert>();
|
|
|
|
serviceProvider.GetRequiredService<IUXHud>();
|
|
|
|
serviceProvider.GetRequiredService<IUXDialogue>();
|
|
|
|
serviceProvider.GetRequiredService<IUXLoadingMap>();
|
|
|
|
serviceProvider.GetRequiredService<IUXSnapshotWindow>();
|
|
|
|
serviceProvider.GetRequiredService<IUXCosmetics>();
|
|
|
|
serviceProvider.GetRequiredService<IUXBuyStation>();
|
|
|
|
serviceProvider.GetRequiredService<UXEscMenu>();
|
|
|
|
serviceProvider.GetRequiredService<IUXControlMode>();
|
|
|
|
serviceProvider.GetRequiredKeyedService<IUXMap>(nameof(IUXHud));
|
|
serviceProvider.GetRequiredKeyedService<IUXMap>(nameof(IUXMap));
|
|
|
|
|
|
var inventory = serviceProvider.GetRequiredService<IUXInventory>();
|
|
inventory.AutoInspect = ItemQuality.Develop;
|
|
|
|
serviceProvider.GetRequiredService<UXContextMenu>();
|
|
|
|
|
|
serviceProvider.GetRequiredService<IUXInventorySwap>();
|
|
|
|
serviceProvider.GetRequiredService<IUXMark>();
|
|
|
|
serviceProvider.GetRequiredService<IUXChat>();
|
|
|
|
serviceProvider.GetRequiredService<IPDAService>();
|
|
|
|
Application.targetFrameRate = 165;
|
|
|
|
BITApp.WalkUntilInitialize.TrySetResult();
|
|
await destroyCancellationToken.WaitUntilCanceled();
|
|
|
|
BITApp.WalkUntilInitialize = new();
|
|
}
|
|
}
|
|
|
|
}
|