コード例 #1
0
ファイル: Program.cs プロジェクト: lambriggerbrian/ECSEngine
 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>();
 });
コード例 #2
0
        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 }
            };
        }