Net.Like.Xue.Tokyo/Assets/Artists/Scripts/Program.cs

153 lines
5.6 KiB
C#
Raw Normal View History

2024-11-03 16:42:23 +08:00
using System.Threading;
using BITKit;
using BITKit.UX;
2025-04-17 19:36:08 +08:00
using BITKit.UX.Hotkey;
2025-03-05 22:28:38 +08:00
using BITKit.UX.Settings;
2024-11-03 16:42:23 +08:00
using Cysharp.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
2025-03-10 18:06:44 +08:00
using Microsoft.Extensions.Logging;
2025-03-10 22:42:42 +08:00
using Net.BITKit.Localization;
2024-11-03 16:42:23 +08:00
using Net.Like.Xue.Tokyo.UX;
2025-04-18 18:47:30 +08:00
using Net.Project.B.AI;
2025-04-17 19:36:08 +08:00
using Net.Project.B.Chat;
2025-04-18 20:27:57 +08:00
using Net.Project.B.Health;
2025-04-17 19:36:08 +08:00
using Net.Project.B.PDA;
2024-11-20 11:36:36 +08:00
using Net.Project.B.UX;
2025-03-05 22:28:38 +08:00
using Project.B.Player;
2024-11-03 16:42:23 +08:00
using Project.B.UX;
using UnityEngine;
2025-02-24 23:03:39 +08:00
using IUXDialogue = Net.Project.B.UX.IUXDialogue;
2024-11-03 16:42:23 +08:00
namespace Net.Like.Xue.Tokyo
{
public class Program : MonoBehaviour
{
private async void Start()
{
DontDestroyOnLoad(gameObject);
var source = new CancellationTokenSource();
destroyCancellationToken.Register(source.Cancel);
2024-12-28 23:19:55 +08:00
var serviceCollection = BITApp.ServiceCollection = new ServiceCollection();
2024-11-03 16:42:23 +08:00
2025-02-24 23:03:39 +08:00
await global::Project.B.Program.AddProjectBServices(serviceCollection,source);
2024-12-29 17:52:04 +08:00
2024-12-28 23:19:55 +08:00
serviceCollection.AddSingleton<IUXService, UXService>();
2025-03-10 18:06:44 +08:00
serviceCollection.AddSingleton<ILogger<IUXInitialize>, UnityLogger<IUXInitialize>>();
2025-02-24 23:03:39 +08:00
2025-02-26 15:34:59 +08:00
serviceCollection.AddSingleton<UXRadialMenu>();
serviceCollection.AddSingleton<UXContextMenu>();
2025-02-28 21:17:03 +08:00
serviceCollection.AddSingleton<UXAlert>();
2025-02-26 15:34:59 +08:00
2025-03-05 22:28:38 +08:00
serviceCollection.AddSingleton<IUXDialogue, UXDialogue<IUXHud>>();
2025-02-24 23:03:39 +08:00
serviceCollection.AddSingleton<IUXLoadingMap, UXLoadingMap>();
2025-03-05 22:28:38 +08:00
serviceCollection.AddSingleton<IUXLobby,UXMenu>();
serviceCollection.AddSingleton<IUXMapSelector,UXLevel>();
serviceCollection.AddSingleton<IUXHud,UXHud>();
2025-03-03 18:44:00 +08:00
serviceCollection.AddSingleton<IUXMap,UXMap>();
2025-03-05 22:28:38 +08:00
serviceCollection.AddSingleton<IUXCosmetics, UXCosmetics<IUXLobby>>();
2025-02-26 15:34:59 +08:00
2025-03-05 22:28:38 +08:00
serviceCollection.AddSingleton<IUXSettings, UXSettings<IUXLobby,PlayerSettings>>();
serviceCollection.AddKeyedSingleton<IUXMap, UXMap<IUXHud>>(nameof(IUXHud));
serviceCollection.AddKeyedSingleton<IUXMap, UXMap<IUXMap>>(nameof(IUXMap));
2025-04-17 19:36:08 +08:00
2025-03-03 18:44:00 +08:00
2025-02-26 15:34:59 +08:00
serviceCollection.AddSingleton<IUXBuyStation, UXBuyStation>();
2025-03-05 22:28:38 +08:00
serviceCollection.AddSingleton<IUXInventory, UXInventory<IUXHud>>();
2025-02-26 15:34:59 +08:00
serviceCollection.AddSingleton<IUXSnapshotWindow, UXSnapshotWindow>();
serviceCollection.AddSingleton<IUXItemInspector, UXItemInspector>();
2025-02-27 17:52:42 +08:00
serviceCollection.AddSingleton<IUXInventorySwap, UXInventorySwap>();
2025-03-05 22:28:38 +08:00
serviceCollection.AddSingleton<UXEscMenu>();
2025-03-12 22:46:37 +08:00
serviceCollection.AddSingleton<IUXControlMode, UXControlMode<IUXHud>>();
2025-04-17 19:36:08 +08:00
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>();
2025-02-24 23:03:39 +08:00
2024-11-03 16:42:23 +08:00
//获取服务提供者
2024-11-20 11:36:36 +08:00
await using var serviceProvider = BITApp.ServiceProvider = serviceCollection.BuildServiceProvider();
2024-11-03 16:42:23 +08:00
2025-03-10 22:42:42 +08:00
serviceProvider.GetRequiredService<CsvLocalizationService>().Url =
@"http://server.bitfall.icu:21982/net.like.xue.tokyo/net.like.xue.tokyo.localization.csv";
2025-02-24 23:03:39 +08:00
await global::Project.B.Program.BuildServiceProvider(serviceProvider,destroyCancellationToken);
2025-04-18 18:47:30 +08:00
2025-04-18 20:27:57 +08:00
{
serviceProvider.QueryComponents(out AIHumanService aiHumanService);
2025-04-18 18:47:30 +08:00
aiHumanService.DamageOnBreakDialogue = 30;
2025-04-18 20:27:57 +08:00
}
{
serviceProvider.QueryComponents(out PlayerAutoHealController healController);
healController.Enabled = false;
}
2025-02-24 23:03:39 +08:00
var uxService = serviceProvider.GetRequiredService<IUXService>();
await uxService.InitializeAsync();
2025-03-05 22:28:38 +08:00
uxService.Entry<IUXLobby>();
serviceProvider.GetRequiredService<IUXSettings>();
2024-11-20 11:36:36 +08:00
2025-02-28 21:17:03 +08:00
serviceProvider.GetRequiredService<UXAlert>();
2025-03-05 22:28:38 +08:00
serviceProvider.GetRequiredService<IUXHud>();
2024-12-28 23:19:55 +08:00
2025-03-11 00:01:43 +08:00
serviceProvider.GetRequiredService<IUXDialogue>();
2024-12-28 23:19:55 +08:00
2025-02-24 23:03:39 +08:00
serviceProvider.GetRequiredService<IUXLoadingMap>();
2024-11-13 17:47:45 +08:00
2025-02-26 15:34:59 +08:00
serviceProvider.GetRequiredService<IUXSnapshotWindow>();
serviceProvider.GetRequiredService<IUXCosmetics>();
serviceProvider.GetRequiredService<IUXBuyStation>();
2025-03-03 18:44:00 +08:00
2025-03-10 22:42:42 +08:00
serviceProvider.GetRequiredService<UXEscMenu>();
2025-03-12 22:46:37 +08:00
serviceProvider.GetRequiredService<IUXControlMode>();
2025-03-10 22:42:42 +08:00
2025-03-05 22:28:38 +08:00
serviceProvider.GetRequiredKeyedService<IUXMap>(nameof(IUXHud));
serviceProvider.GetRequiredKeyedService<IUXMap>(nameof(IUXMap));
2025-04-17 19:36:08 +08:00
2025-02-26 15:34:59 +08:00
2025-02-28 16:58:23 +08:00
var inventory = serviceProvider.GetRequiredService<IUXInventory>();
inventory.AutoInspect = ItemQuality.Develop;
2025-02-26 15:34:59 +08:00
serviceProvider.GetRequiredService<UXContextMenu>();
2025-02-27 17:52:42 +08:00
serviceProvider.GetRequiredService<IUXInventorySwap>();
2025-02-26 15:34:59 +08:00
2025-04-17 19:36:08 +08:00
serviceProvider.GetRequiredService<IUXMark>();
serviceProvider.GetRequiredService<IUXChat>();
serviceProvider.GetRequiredService<IPDAService>();
2024-11-16 15:45:30 +08:00
Application.targetFrameRate = 165;
2024-11-03 16:42:23 +08:00
2025-03-03 18:44:00 +08:00
BITApp.WalkUntilInitialize.TrySetResult();
2024-11-03 16:42:23 +08:00
await destroyCancellationToken.WaitUntilCanceled();
2025-03-03 18:44:00 +08:00
BITApp.WalkUntilInitialize = new();
2024-11-03 16:42:23 +08:00
}
}
}