Example #1
0
 public StandaloneModeRoomControllerFactory(IShamanComponents shamanComponents)
 {
     _bundle = StandaloneServerLauncher.StandaloneBundle;
     _bundle.OnInitialize(shamanComponents);
     _roomControllerFactory = _bundle.GetRoomControllerFactory();
     if (_roomControllerFactory == null)
     {
         throw new NullReferenceException("Game bundle returned null factory");
     }
 }
        public void OnInitialize(IShamanComponents shamanComponents)
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddTransient((c) => shamanComponents.Logger);
            serviceCollection.AddTransient((c) => shamanComponents.Config);
            serviceCollection.AddTransient((c) => shamanComponents.MetaProvider);

            OnConfigureServices(serviceCollection);

            _serviceProvider = serviceCollection.BuildServiceProvider();

            OnStart(_serviceProvider);
        }
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server,
                              IShamanLogger logger, IBundleLoader bundleLoader, IShamanComponents shamanComponents, IRoomControllerFactory roomControllerFactory)
        {
            bundleLoader.LoadBundle();
            var gameBundle = bundleLoader.LoadTypeFromBundle <IGameBundle>();

            gameBundle.OnInitialize(shamanComponents);
            var bundledRoomControllerFactory = gameBundle.GetRoomControllerFactory();

            if (bundledRoomControllerFactory == null)
            {
                throw new NullReferenceException("Game bundle returned null factory");
            }

            ((IBundleRoomControllerRegistry)roomControllerFactory).RegisterBundleRoomController(bundledRoomControllerFactory);

            base.ConfigureGame(app, env, server, logger);
        }
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server,
                              IServerActualizer serverActualizer, IShamanLogger logger, IBundleLoader bundleLoader,
                              IShamanComponents shamanComponents, IRoomControllerFactory roomControllerFactory)
        {
            //todo extract in one place
            serverActualizer.Start(Convert.ToInt32(Configuration["ServerSettings:ActualizationIntervalMs"]));

            bundleLoader.LoadBundle();
            var gameBundle = bundleLoader.LoadTypeFromBundle <IGameBundle>();

            gameBundle.OnInitialize(shamanComponents);
            var bundledRoomControllerFactory = gameBundle.GetRoomControllerFactory();

            if (bundledRoomControllerFactory == null)
            {
                throw new NullReferenceException("Game bundle returned null factory");
            }

            ((IBundleRoomControllerRegistry)roomControllerFactory).RegisterBundleRoomController(bundledRoomControllerFactory);

            base.ConfigureGame(app, env, server, logger);
        }