Exemplo n.º 1
0
 public void Compose(IModule composableModule, Loader.IServiceRepository serviceContainer)
 {
     foreach (IPlatformInfo platform in serviceContainer.Get <IStoneProvider>().Platforms.Values)
     {
         Console.WriteLine(platform.PlatformId);
     }
 }
Exemplo n.º 2
0
        public void Compose(IModule composableModule, Loader.IServiceRepository serviceContainer)
        {
            var register    = serviceContainer.Get <IServiceRegistrationProvider>();
            var shiragameDb =
                new SqliteDatabase(Path.Combine(composableModule.ContentsDirectory.FullName, "shiragame.db"));

            register.RegisterService <IShiragameProvider>(new ShiragameProvider(shiragameDb));
        }
Exemplo n.º 3
0
        public void Compose(IModule module, Loader.IServiceRepository serviceContainer)
        {
            var    physicalFs       = serviceContainer.Get <IFileSystem>();
            var    contentDirectory = serviceContainer.Get <IContentDirectoryProvider>();
            string sqlitePath       = Path.Combine(contentDirectory.ApplicationData.FullName, "library.db");
            var    optionsBuilder   = new DbContextOptionsBuilder <DatabaseContext>();

            optionsBuilder
            .UseSqlite($"Data Source={sqlitePath}");

            using (var context = new DatabaseContext(optionsBuilder.Options))
            {
                var connection = context.Database.GetDbConnection();
                connection.Open();
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "PRAGMA journal_mode=WAL;";
                    command.ExecuteNonQuery();
                }
            }

            // game library dependency tree

            var gameRecordLibrary = new GameRecordLibrary(optionsBuilder);
            var gameLibrary       = new GameLibrary(gameRecordLibrary);
            var configStore       = new ConfigurationCollectionStore(optionsBuilder);

            var fileLibrary = new FileRecordLibrary(optionsBuilder);

            var appDataPath = physicalFs.ConvertPathFromInternal(contentDirectory.ApplicationData.FullName);
            var gameFs      = physicalFs.GetOrCreateSubFileSystem(appDataPath / "games");

            // Add default extensions
            gameLibrary.AddExtension <IGameFileExtensionProvider,
                                      IGameFileExtension>(new GameFileExtensionProvider(fileLibrary, gameFs));

            gameLibrary.AddExtension <IGameConfigurationExtensionProvider,
                                      IGameConfigurationExtension>(new GameConfigurationExtensionProvider(configStore));

            // register game library.
            serviceContainer.Get <IServiceRegistrationProvider>()
            .RegisterService <IGameLibrary>(gameLibrary);

            var pluginLibrary = new PluginConfigurationStore(optionsBuilder);

            // plugin config store

            serviceContainer.Get <IServiceRegistrationProvider>()
            .RegisterService <IPluginConfigurationStore>(pluginLibrary);

            // controller elements

            var inputStore = new ControllerElementMappingsStore(optionsBuilder);

            serviceContainer.Get <IServiceRegistrationProvider>()
            .RegisterService <IControllerElementMappingsStore>(inputStore);
        }
        public void Compose(IModule composableModule, Loader.IServiceRepository serviceContainer)
        {
            var logProvider          = serviceContainer.Get <ILogProvider>();
            var appdataProvider      = serviceContainer.Get <IContentDirectoryProvider>();
            var registrationProvider = serviceContainer.Get <IServiceRegistrationProvider>();
            var configStoreProvider  = serviceContainer.Get <IPluginConfigurationStore>();
            var pluginManager        = new PluginManager(logProvider, appdataProvider, configStoreProvider);

            registrationProvider.RegisterService <IPluginManager>(pluginManager);
        }
Exemplo n.º 5
0
        public void Compose(IModule module, Loader.IServiceRepository coreInstance)
        {
            var pm = coreInstance.Get <IPluginManager>();
            var im = coreInstance.Get <IInputManager>();

            // pm.Register<IInputEnumerator>(new WiimoteEnumerator(coreInstance));
            pm.Register <IInputEnumerator>(new KeyboardEnumerator(pm.GetProvision <KeyboardEnumerator>(module), im));
            pm.Register <IInputEnumerator>(
                new Xbox360GamepadEnumerator(pm.GetProvision <Xbox360GamepadEnumerator>(module), im));
            pm.Register <IInputEnumerator>(new XInputGamepadEnumerator(pm.GetProvision <XInputGamepadEnumerator>(module),
                                                                       im));
        }
        public void Compose(IModule module, Loader.IServiceRepository serviceContainer)
        {
            var stone = new StoneProvider();

            var physicalFs       = serviceContainer.Get <IFileSystem>();
            var contentDirectory = serviceContainer.Get <IContentDirectoryProvider>();
            var appDataPath      = physicalFs.ConvertPathFromInternal(contentDirectory.ApplicationData.FullName);
            var biosFs           = physicalFs.GetOrCreateSubFileSystem(appDataPath / "bios");
            var systemFiles      = new SystemFileProvider(new Directory(biosFs), stone);

            serviceContainer.Get <IServiceRegistrationProvider>().RegisterService <IStoneProvider>(stone);
            serviceContainer.Get <IServiceRegistrationProvider>().RegisterService <ISystemFileProvider>(systemFiles);

            // Generate all the directories
            foreach (var platform in stone.Platforms)
            {
                systemFiles.GetSystemFileDirectory(platform.Key);
            }
        }
Exemplo n.º 7
0
 public void Compose(IModule composableModule, Loader.IServiceRepository serviceContainer)
 {
     serviceContainer.Get <ILogProvider>().GetLogger("HelloWorld").Info("Hello World!");
 }
Exemplo n.º 8
0
 public void Compose(IModule module, Loader.IServiceRepository serviceContainer)
 {
     serviceContainer.Get <IServiceRegistrationProvider>().RegisterService <IStoneProvider>(new StoneProvider());
 }
Exemplo n.º 9
0
 public void Compose(IModule composableModule, Loader.IServiceRepository serviceContainer)
 {
     serviceContainer.Get <IServiceRegistrationProvider>().RegisterService <IDummyComposable>(new DummyService());
 }