private static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddSingleton(provider => { return(new CancellationTokenSource()); }); services.AddSingleton(provider => { return(Console.OpenStandardInput()); }); services.AddSingleton <IEntityManager, EntityManager>(); services.AddSingleton(provider => { var factory = provider.GetRequiredService <ILoggerFactory>(); var entityManager = provider.GetRequiredService <IEntityManager>(); var collection = new ComponentManagerCollection(factory); collection.AddComponentManager(new TransformComponentManager(factory, entityManager)); return(collection); }); services.AddSingleton <World, World>(); services.AddSingleton <ICommandDefinitions, BasicCommandDefinitions>(); services.AddScoped <ICommandTranslator, BasicStringTranslator>(); services.AddScoped <CommandHandler, CommandHandler>(); services.AddSingleton <InputHandler, InputHandler>(); services.AddSingleton <App>(); });
public BasicCommandDefinitions(ILoggerFactory logger, IEntityManager manager, ComponentManagerCollection collection) { _logger = logger.CreateLogger <BasicCommandDefinitions>(); _manager = manager; _collection = collection; creators = new Dictionary <CommandType, ActionCreator> { { CommandType.Create, CreateCommandAction }, { CommandType.Register, RegisterCommandAction }, { CommandType.Get, GetCommandAction }, { CommandType.Move, MoveCommandAction } }; }