示例#1
0
        public SignInCanvasController(IoCResolver resolver, Canvas canvasView) : base(resolver, canvasView)
        {
            // resolve
            resolver.Resolve(out _messager);
            resolver.Resolve(out _user);

            ResolveElement(out _usernameInputField, "username_input_field");
            ResolveElement(out _passwordInputField, "password_input_field");
            ResolveElement(out _signInButton, "sign_in_button");
            ResolveElement(out _createAccountButton, "create_account_button");

            // initialize
            _createAccountButton.onClick.AddListener(() =>
            {
                ShowCanvas = false;

                _messager.Publish(new CreateAccountSelectedMessage
                {
                    OnCancelled = () => ShowCanvas = true,
                    OnConfirmed = credentials =>
                    {
                        ShowCanvas = true;

                        _usernameInputField.text = credentials.Username;
                        _passwordInputField.text = credentials.Password;
                    }
                });
            });
            _signInButton.onClick.AddListener(AttemptSignIn);
        }
        public MainMenuCanvasController(IoCResolver resolver, Canvas canvasView)
            : base(resolver, canvasView)
        {
            // resolve
            resolver.Resolve(out _messager);
            resolver.Resolve(out _user);

            ResolveElement(out _welcomeText, "welcome_text");
            ResolveElement(out _hostGameButton, "host_game_button");
            ResolveElement(out _joinGameButton, "join_game_button");
            ResolveElement(out _exitGameButton, "exit_game_button");

            // initialize
            ShowCanvas = false;

            _hostGameButton.onClick.AddListener(() =>
            {
                _messager.Publish(new HostGameClickedMessage());
            });

            _exitGameButton.onClick.AddListener(() =>
            {
                _messager.Publish(new ExitMessage());
            });

            // subscribe
            _onMainMenuSelected = _messager.Subscribe<MainMenuSelectedMessage>(message =>
            {
                ShowCanvas = true;
                _welcomeText.text = String.Format(LanguageStrings.MainMenuWelcome, _user.Username);
            });
        }
示例#3
0
        public MainMenuCanvasController(IoCResolver resolver, Canvas canvasView) : base(resolver, canvasView)
        {
            // resolve
            resolver.Resolve(out _messager);
            resolver.Resolve(out _user);

            ResolveElement(out _welcomeText, "welcome_text");
            ResolveElement(out _hostGameButton, "host_game_button");
            ResolveElement(out _joinGameButton, "join_game_button");
            ResolveElement(out _exitGameButton, "exit_game_button");

            // initialize
            ShowCanvas = false;

            _hostGameButton.onClick.AddListener(() =>
            {
                _messager.Publish(new HostGameClickedMessage());
            });

            _exitGameButton.onClick.AddListener(() =>
            {
                _messager.Publish(new ExitMessage());
            });

            // subscribe
            _onMainMenuSelected = _messager.Subscribe <MainMenuSelectedMessage>(message =>
            {
                ShowCanvas        = true;
                _welcomeText.text = String.Format(LanguageStrings.MainMenuWelcome, _user.Username);
            });
        }
        public CreateAccountCanvasController(IoCResolver resolver, Canvas canvasView)
            : base(resolver, canvasView)
        {
            // resolve
            resolver.Resolve(out _messager);
            resolver.Resolve(out _user);

            ResolveElement(out _usernameInputField, "username_input_field");
            ResolveElement(out _passwordInputField, "password_input_field");
            ResolveElement(out _passwordConfirmationInputField, "password_confirmation_input_field");
            ResolveElement(out _confirmButton, "confirm_button");
            ResolveElement(out _backButton, "back_button");

            // initialize
            ShowCanvas = false;

            _usernameInputField.text = "";
            _passwordInputField.text = "";

            // subscribe
            _onCreateAccountSelected = _messager.Subscribe<CreateAccountSelectedMessage>(message =>
            {
                ShowCanvas = true;
                _currentAccountCreationSession = message;

                _usernameInputField.text = "";
                _passwordInputField.text = "";

                _confirmButton.onClick.RemoveAllListeners();
                _backButton.onClick.RemoveAllListeners();

                _confirmButton.onClick.AddListener(RegisterAccount);
                _backButton.onClick.AddListener(() => message.OnCancelled());
            });
        }
示例#5
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseMvc(route =>
            {
                route.MapRoute(
                    name: "anasayfa",
                    template: "anasayfa",
                    defaults: new { controller = "Home", action = "Index" });

                route.MapRoute(
                    name: "default",
                    template: "{controller}/{action}/{id?}",
                    defaults: new { controller = "Home", action = "Index" });
            });

            if (env.IsStaging())
            {
                app.UseDeveloperExceptionPage();
            }
            else if (env.IsProduction())
            {
            }
            else
            {
                app.UseDeveloperExceptionPage();
            }

            IoCResolver.Init(app.ApplicationServices);

            app.UseMvc();

            app.UseStaticFiles();
            app.UseStatusCodePages();
        }
        public CreateAccountCanvasController(IoCResolver resolver, Canvas canvasView) : base(resolver, canvasView)
        {
            // resolve
            resolver.Resolve(out _messager);
            resolver.Resolve(out _user);

            ResolveElement(out _usernameInputField, "username_input_field");
            ResolveElement(out _passwordInputField, "password_input_field");
            ResolveElement(out _passwordConfirmationInputField, "password_confirmation_input_field");
            ResolveElement(out _confirmButton, "confirm_button");
            ResolveElement(out _backButton, "back_button");

            // initialize
            ShowCanvas = false;

            _usernameInputField.text = "";
            _passwordInputField.text = "";

            // subscribe
            _onCreateAccountSelected = _messager.Subscribe <CreateAccountSelectedMessage>(message =>
            {
                ShowCanvas = true;
                _currentAccountCreationSession = message;

                _usernameInputField.text = "";
                _passwordInputField.text = "";

                _confirmButton.onClick.RemoveAllListeners();
                _backButton.onClick.RemoveAllListeners();

                _confirmButton.onClick.AddListener(RegisterAccount);
                _backButton.onClick.AddListener(() => message.OnCancelled());
            });
        }
示例#7
0
        public void ConfigureServices(IServiceCollection services)
        {
            var serviceProvider = IoCResolver.CreateServiceProvider(Configuration, services);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddSwaggerGen(c => c.SwaggerDoc("v3", new Info {
                Title = "Inlog.Fiscol.ProCollect.Api", Version = "v3"
            }));

            services.AddCors(options =>
            {
                options.AddPolicy("AllowAllHeaders",
                                  builder =>
                {
                    builder.AllowAnyOrigin();
                    builder.AllowAnyMethod();
                    builder.AllowAnyHeader();
                    builder.AllowCredentials();
                });
            });

            var runner = serviceProvider.GetRequiredService <IMigrationRunner>();

            runner.MigrateUp();
        }
示例#8
0
 public MenuState(IoCResolver resolver)
     : base(resolver)
 {
     resolver.Resolve(out _messager);
     resolver.Resolve(out _canvasProvider);
     resolver.Resolve(out _uiManager);
 }
示例#9
0
 public PlayState(IoCResolver resolver) : base(resolver)
 {
     // resolve
     resolver.Resolve(out _messager);
     resolver.Resolve(out _canvasProvider);
     resolver.Resolve(out _prefabProvider);
     resolver.Resolve(out _uiManager);
 }
示例#10
0
        public static IUnityContainer Initialise()
        {
            var container = IoCResolver.BuildUnityContainer();

            DependencyResolver.SetResolver(new UnityDependencyResolver(container));

            return(container);
        }
示例#11
0
 public PlayState(IoCResolver resolver)
     : base(resolver)
 {
     // resolve
     resolver.Resolve(out _messager);
     resolver.Resolve(out _canvasProvider);
     resolver.Resolve(out _prefabProvider);
     resolver.Resolve(out _uiManager);
 }
示例#12
0
 public static IoCResolver GetOrCreate()
 {
     if (iocResolver != null)
     {
         return(iocResolver);
     }
     iocResolver = new IoCResolver();
     return(iocResolver);
 }
示例#13
0
        public void Initialize(IoCResolver resolver)
        {
            resolver.Resolve(out _unity);

            IsSelected = false;
            IsHovered  = false;
            OnIsSelectedValueChangedEvent += OnIsSelectedChanged;
            OnIsHoveredValueChangedEvent  += OnIsHoveredChanged;

            MarkAsInitialized();
        }
示例#14
0
        public void Initialize(IoCResolver resolver)
        {
            resolver.Resolve(out _unity);

            IsSelected = false;
            IsHovered = false;
            OnIsSelectedValueChangedEvent += OnIsSelectedChanged;
            OnIsHoveredValueChangedEvent += OnIsHoveredChanged;

            MarkAsInitialized();
        }
        protected BaseCanvasController(IoCResolver resolver, Canvas canvasView)
        {
            _elements = new Dictionary <string, GameObject>();
            resolver.Resolve(out _logger);

            _canvasView = canvasView;

            _canvasView.gameObject.SetActive(true);

            CacheObject("", canvasView.gameObject);
        }
示例#16
0
文件: Startup.cs 项目: iprih/avatalk
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            IoCResolver.RegisterContainers(services, services.BuildServiceProvider());

            services.AddControllers();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "API AvaTalk", Version = "v1"
                });
            });
        }
示例#17
0
        private static void ConfigureContainer(Container container)
        {
            container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

            // Container IoC
            IoCResolver.SetupDependencies(container);

            container.RegisterMvcControllers(Assembly.GetExecutingAssembly());

            container.Verify();

            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
        }
示例#18
0
        private IoCResolver GetResolver()
        {
            var resolver = new IoCResolver();

            resolver.BuildContainer(new Assembly[]
            {
                typeof(App).GetTypeInfo().Assembly,
                typeof(Shared.NewsPickerShared).GetTypeInfo().Assembly,
                typeof(XamarinToolkit.XamarinToolkit).GetTypeInfo().Assembly
            });

            return(resolver);
        }
示例#19
0
        public static void ConfigureContainer(this IServiceCollection serviceCollection)
        {
            //serviceCollection
            //    .AddSingleton<IQueryExecutorFactory<KeyValueHandler, KeyValue>,
            //        QueryExecutorFactory<KeyValueHandler, KeyValue>>();

            var ignoreTypes = new HashSet <Type>
            {
                typeof(IYandexMusicClient),
                typeof(IYandexCredentials),
                typeof(ISpecialTrackGetter),
            };

            IoCResolver.Resolve((x, y) => serviceCollection.AddSingleton(x, y), ignoreTypes, "Tolltech");
        }
示例#20
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            IoCResolver.RegisterContainers(services, services.BuildServiceProvider());
            services.AddControllers();

            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "AvaSpace API", Version = "v1"
                });
                // Set the comments path for the Swagger JSON and UI.
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
            });
        }
示例#21
0
        public PoolingParticleManager(IoCResolver resolver)
        {
            _loops           = new List <ActiveParticleLoop>();
            _particleSystems = new Dictionary <string, ParticleSystem>();

            // resolve references
            resolver.Resolve(out _logger);
            resolver.Resolve(out _config);
            resolver.Resolve(out _prefabProvider);
            resolver.Resolve(out _unityReferenceMaster);

            // initialize properties
            _particleParent      = Object.Instantiate(_prefabProvider.GetPrefab("empty_prefab"));
            _particleParent.name = "pooled_particle_system_parent";

            _unityReferenceMaster.OnGamePausedChangedEvent += OnGamePausedChanged;
        }
        public PoolingParticleManager(IoCResolver resolver)
        {
            _loops = new List<ActiveParticleLoop>();
            _particleSystems = new Dictionary<string, ParticleSystem>();

            // resolve references
            resolver.Resolve(out _logger);
            resolver.Resolve(out _config);
            resolver.Resolve(out _prefabProvider);
            resolver.Resolve(out _unityReferenceMaster);

            // initialize properties
            _particleParent = Object.Instantiate(_prefabProvider.GetPrefab("empty_prefab"));
            _particleParent.name = "pooled_particle_system_parent";

            _unityReferenceMaster.OnGamePausedChangedEvent += OnGamePausedChanged;
        }
示例#23
0
        public void Configuration(IAppBuilder app)
        {
            var container = new Container();

            IoCResolver.Load(container);
            container.RegisterWebApiControllers(GlobalConfiguration.Configuration);

            GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
            container.Verify();
            app.Use(async(context, next) =>
            {
                using (AsyncScopedLifestyle.BeginScope(container))
                {
                    await next();
                }
            });
        }
        public PlayCanvasController(IoCResolver resolver, Canvas canvasView) : base(resolver, canvasView)
        {
            // resolve
            resolver.Resolve(out _messager);

            ResolveElement(out _rollDiceButton, "roll_dice_button");
            ResolveElement(out _exitGameButton, "exit_game_button");

            // initialize
            _rollDiceButton.onClick.AddListener(() =>
            {
                _messager.Publish(new RollDiceClickedMessage());
            });

            _exitGameButton.onClick.AddListener(() =>
            {
                _messager.Publish(new ExitPlayClickedMessage());
            });
        }
        public DialoguePopUpCanvasController(IoCResolver resolver, Canvas canvasView)
            : base(resolver, canvasView)
        {
            // resolve references
            resolver.Resolve(out _messager);

            ResolveElement(out _dialogueText, "dialogue_text");
            ResolveElement(out _cancelText, "cancel_button/cancel_text");
            ResolveElement(out _confirmText, "confirm_button/confirm_text");
            ResolveElement(out _recognitionText, "recognition_button/recognition_text");
            ResolveElement(out _cancelButton, "cancel_button");
            ResolveElement(out _confirmButton, "confirm_button");
            ResolveElement(out _recognitionButton, "recognition_button");

            _cancelButton.onClick.AddListener(OnCancelButtonClicked);
            _confirmButton.onClick.AddListener(OnConfirmButtonClicked);
            _recognitionButton.onClick.AddListener(OnConfirmButtonClicked);

            // initialize
            _canvasView.gameObject.SetActive(false);

            _cancelButton.onClick.AddListener(OnCancelButtonClicked);
            _confirmButton.onClick.AddListener(OnConfirmButtonClicked);
            _recognitionButton.onClick.AddListener(OnConfirmButtonClicked);

            // subscribe
            _onShowConfirmationDialogue = _messager.Subscribe<ShowPopUpDialogueMessage>(message =>
            {
                ShowCanvas = true;

                _dialogueText.text = message.MainDialogue;
                _cancelText.text = message.CancelDialogue ?? "no";
                _confirmText.text = message.ConfirmDialogue ?? "yes";
                _recognitionText.text = message.ConfirmDialogue ?? "ok";

                _cancelButton.gameObject.SetActive(message.AllowCancel);
                _confirmButton.gameObject.SetActive(message.AllowCancel);
                _recognitionButton.gameObject.SetActive(!message.AllowCancel);

                _currentMessage = message;
            });
        }
        public PlayCanvasController(IoCResolver resolver, Canvas canvasView)
            : base(resolver, canvasView)
        {
            // resolve
            resolver.Resolve(out _messager);

            ResolveElement(out _rollDiceButton, "roll_dice_button");
            ResolveElement(out _exitGameButton, "exit_game_button");

            // initialize
            _rollDiceButton.onClick.AddListener(() =>
            {
                _messager.Publish(new RollDiceClickedMessage());
            });

            _exitGameButton.onClick.AddListener(() =>
            {
                _messager.Publish(new ExitPlayClickedMessage());
            });
        }
示例#27
0
        public DialoguePopUpCanvasController(IoCResolver resolver, Canvas canvasView) : base(resolver, canvasView)
        {
            // resolve references
            resolver.Resolve(out _messager);

            ResolveElement(out _dialogueText, "dialogue_text");
            ResolveElement(out _cancelText, "cancel_button/cancel_text");
            ResolveElement(out _confirmText, "confirm_button/confirm_text");
            ResolveElement(out _recognitionText, "recognition_button/recognition_text");
            ResolveElement(out _cancelButton, "cancel_button");
            ResolveElement(out _confirmButton, "confirm_button");
            ResolveElement(out _recognitionButton, "recognition_button");

            _cancelButton.onClick.AddListener(OnCancelButtonClicked);
            _confirmButton.onClick.AddListener(OnConfirmButtonClicked);
            _recognitionButton.onClick.AddListener(OnConfirmButtonClicked);

            // initialize
            _canvasView.gameObject.SetActive(false);

            _cancelButton.onClick.AddListener(OnCancelButtonClicked);
            _confirmButton.onClick.AddListener(OnConfirmButtonClicked);
            _recognitionButton.onClick.AddListener(OnConfirmButtonClicked);

            // subscribe
            _onShowConfirmationDialogue = _messager.Subscribe <ShowPopUpDialogueMessage>(message =>
            {
                ShowCanvas = true;

                _dialogueText.text    = message.MainDialogue;
                _cancelText.text      = message.CancelDialogue ?? "no";
                _confirmText.text     = message.ConfirmDialogue ?? "yes";
                _recognitionText.text = message.ConfirmDialogue ?? "ok";

                _cancelButton.gameObject.SetActive(message.AllowCancel);
                _confirmButton.gameObject.SetActive(message.AllowCancel);
                _recognitionButton.gameObject.SetActive(!message.AllowCancel);

                _currentMessage = message;
            });
        }
示例#28
0
        public void Start()
        {
            /* RESOURCE LIST CREATION */
            #if UNITY_EDITOR
            AssetDatabase.Refresh();
            FileServices.CreateResourcesList("Assets/Resources/resourceslist.txt");
            #endif
            FileServices.LoadResourcesList("resourceslist");

            #region LOAD RESOURCES
            // logger and ioc
            _logger = new Logger("info.log", false);
            _resolver = new IoCResolver(_logger);
            _resolver.RegisterItem(_logger);

            _config = new UserConfigurationManager(new UserConfigurationData
            {
                GameVolume = 1f,
                MusicVolume = 1f
            });
            _resolver.RegisterItem(_config);

            // messager
            _messager = new Messager();
            _resolver.RegisterItem(_messager);

            // unity reference master
            _unity = GetComponent<UnityReferenceMaster>();
            _unity.DebugModeActive = false;
            _resolver.RegisterItem(_unity);

            // player
            var player = new UserAccountManager();
            _resolver.RegisterItem(player);

            // material provider
            var materialProvider = new MaterialProvider(_logger);
            MaterialLoader.LoadMaterial(materialProvider,"Materials");
            _resolver.RegisterItem(materialProvider);

            // texture provider
            var textureProvider = new TextureProvider(_logger);
            var spriteProvider = new SpriteProvider(_logger);
            TextureLoader.LoadTextures(textureProvider, spriteProvider, "Textures");
            _resolver.RegisterItem(textureProvider);
            _resolver.RegisterItem(spriteProvider);

            // sound provider
            var soundProvider = new SoundProvider(_logger);
            SoundLoader.LoadSounds(_logger, soundProvider, "Sounds");
            _resolver.RegisterItem(soundProvider);

            // prefab provider
            var prefabProvider = new PrefabProvider(_logger);
            PrefabLoader.LoadPrefabs(prefabProvider);
            _resolver.RegisterItem(prefabProvider);

            // pooling
            var poolingObjectManager = new PoolingObjectManager(_logger, prefabProvider);
            _resolver.RegisterItem(poolingObjectManager);

            var soundPoolManager = new PoolingAudioPlayer(_logger, _config, _unity, prefabProvider.GetPrefab("audio_source_prefab"));
            _resolver.RegisterItem(soundPoolManager);

            _particles = new PoolingParticleManager(_resolver);
            _resolver.RegisterItem(_particles);

            // canvas provider
            var canvasProvider = new CanvasProvider(_logger);
            _unity.LoadCanvases(canvasProvider);
            _resolver.RegisterItem(canvasProvider);

            // data provider
            var gameDataProvider = new GameDataProvider(_logger);

            /* DATA GOES HERE */

            _resolver.RegisterItem(gameDataProvider);
            #endregion

            _uiManager = new UiManager();
            _resolver.RegisterItem(_uiManager);

            // lock the resolver (stop any new items being registered)
            _resolver.Lock();

            /* BEGIN STATE */
            _currentState = new MenuState(_resolver);
            _currentState.Initialize();

            /* SUBSCRIBE FOR GAME END */
            _onExit = _messager.Subscribe<ExitMessage>(OnExit);
        }
示例#29
0
 public MenuState(IoCResolver resolver) : base(resolver)
 {
     resolver.Resolve(out _messager);
     resolver.Resolve(out _canvasProvider);
     resolver.Resolve(out _uiManager);
 }
示例#30
0
 protected BaseState(IoCResolver resolver)
 {
     _resolver = resolver;
 }
示例#31
0
 protected BaseState(IoCResolver resolver)
 {
     _resolver = resolver;
 }
        public override void Load()
        {
            Bind <ISettings>().ToConstant(settings);

            IoCResolver.Resolve((@interface, implementation) => this.Bind(@interface).To(implementation), new [] { "Tolltech", settings.RootNamespaceForNinjectConfiguring });
        }
 public NavigationService(IoCResolver resolver)
 {
     _resolver = resolver;
 }
示例#34
0
 protected SharedOperationTests(SocialContextFixture <TContext> fixture, AutofacSocialContextFixture <TContext> autofacFixture, CastleWindsorSocialContextFixture <TContext> castleWindsorFixture)
 {
     this.ioCResolver = IoCResolver.Instance(Tuple.Create(fixture.Container, castleWindsorFixture.Container, autofacFixture.Container));
 }
示例#35
0
 public override void Load()
 {
     IoCResolver.Resolve((@interface, implementation) => this.Bind(@interface).To(implementation), null, "Tolltech");
 }
示例#36
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            IoCResolver.RegisterContainers(services, services.BuildServiceProvider());

            services.AddControllers();
        }
示例#37
0
        public void Start()
        {
            /* RESOURCE LIST CREATION */
#if UNITY_EDITOR
            AssetDatabase.Refresh();
            FileServices.CreateResourcesList("Assets/Resources/resourceslist.txt");
#endif
            FileServices.LoadResourcesList("resourceslist");

            #region LOAD RESOURCES
            // logger and ioc
            _logger   = new Logger("info.log", false);
            _resolver = new IoCResolver(_logger);
            _resolver.RegisterItem(_logger);

            _config = new UserConfigurationManager(new UserConfigurationData
            {
                GameVolume  = 1f,
                MusicVolume = 1f
            });
            _resolver.RegisterItem(_config);

            // messager
            _messager = new Messager();
            _resolver.RegisterItem(_messager);

            // unity reference master
            _unity = GetComponent <UnityReferenceMaster>();
            _unity.DebugModeActive = false;
            _resolver.RegisterItem(_unity);

            // player
            var player = new UserAccountManager();
            _resolver.RegisterItem(player);

            // material provider
            var materialProvider = new MaterialProvider(_logger);
            MaterialLoader.LoadMaterial(materialProvider, "Materials");
            _resolver.RegisterItem(materialProvider);

            // texture provider
            var textureProvider = new TextureProvider(_logger);
            var spriteProvider  = new SpriteProvider(_logger);
            TextureLoader.LoadTextures(textureProvider, spriteProvider, "Textures");
            _resolver.RegisterItem(textureProvider);
            _resolver.RegisterItem(spriteProvider);

            // sound provider
            var soundProvider = new SoundProvider(_logger);
            SoundLoader.LoadSounds(_logger, soundProvider, "Sounds");
            _resolver.RegisterItem(soundProvider);

            // prefab provider
            var prefabProvider = new PrefabProvider(_logger);
            PrefabLoader.LoadPrefabs(prefabProvider);
            _resolver.RegisterItem(prefabProvider);

            // pooling
            var poolingObjectManager = new PoolingObjectManager(_logger, prefabProvider);
            _resolver.RegisterItem(poolingObjectManager);

            var soundPoolManager = new PoolingAudioPlayer(_logger, _config, _unity, prefabProvider.GetPrefab("audio_source_prefab"));
            _resolver.RegisterItem(soundPoolManager);

            _particles = new PoolingParticleManager(_resolver);
            _resolver.RegisterItem(_particles);

            // canvas provider
            var canvasProvider = new CanvasProvider(_logger);
            _unity.LoadCanvases(canvasProvider);
            _resolver.RegisterItem(canvasProvider);

            // data provider
            var gameDataProvider = new GameDataProvider(_logger);

            /* DATA GOES HERE */

            _resolver.RegisterItem(gameDataProvider);
            #endregion

            _uiManager = new UiManager();
            _resolver.RegisterItem(_uiManager);

            // lock the resolver (stop any new items being registered)
            _resolver.Lock();

            /* BEGIN STATE */
            _currentState = new MenuState(_resolver);
            _currentState.Initialize();

            /* SUBSCRIBE FOR GAME END */
            _onExit = _messager.Subscribe <ExitMessage>(OnExit);
        }