using FurinaImpact.Common.Data; using FurinaImpact.Common.Data.Binout; using FurinaImpact.Common.Data.Excel; using FurinaImpact.Common.Data.Provider; using FurinaImpact.Gameserver; using FurinaImpact.Gameserver.Controllers.Dispatching; using FurinaImpact.Gameserver.Game; using FurinaImpact.Gameserver.Game.Entity; using FurinaImpact.Gameserver.Game.Entity.Factory; using FurinaImpact.Gameserver.Game.Entity.Listener; using FurinaImpact.Gameserver.Game.Scene; using FurinaImpact.Gameserver.Network; using FurinaImpact.Gameserver.Network.Kcp; using FurinaImpact.Gameserver.Network.Session; using FurinaImpact.Gameserver.Options; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; Console.Title = "FurinaImpact | Game Server [Experimental]"; HostApplicationBuilder builder = Host.CreateApplicationBuilder(); builder.Logging.AddSimpleConsole(); builder.Services.Configure(builder.Configuration.GetSection(GatewayOptions.Section)); // Resources builder.Services.UseLocalAssets(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); // Game Logic builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); // Logic Listeners builder.Services.AddScoped(); // Network builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); await builder.Build().RunAsync();