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); }