using System;
using Data.Abstractions;
using Data.Models.Server;
using Microsoft.Extensions.DependencyInjection;
using SharedLibraryCore;
using SharedLibraryCore.Configuration;
using SharedLibraryCore.Interfaces;
namespace IW4MAdmin.Application.Factories
{
///
/// implementation of IGameServerInstanceFactory
///
///
///
///
internal class GameServerInstanceFactory(
ITranslationLookup translationLookup,
IMetaServiceV2 metaService,
IServiceProvider serviceProvider)
: IGameServerInstanceFactory
{
///
/// creates an IW4MServer instance
///
/// server configuration
/// application manager
///
public Server CreateServer(ServerConfiguration config, IManager manager)
{
return new IW4MServer(config,
serviceProvider.GetRequiredService(), translationLookup, metaService,
serviceProvider, serviceProvider.GetRequiredService(),
serviceProvider.GetRequiredService>());
}
}
}