Пример #1
0
    public override void InstallBindings()
    {
        SignalBusInstaller.Install(Container);

        Container.Bind <ScreenService>().AsSingle();
        Container.BindInterfacesAndSelfTo <MoneyService>().AsSingle();

        Container.BindFactory <LineElementController, LineElementController.Factory>()
        // This means that any time Asteroid.Factory.Create is called, it will instantiate
        // this prefab and then search it for the Asteroid component
        .FromComponentInNewPrefab(_settings.LineElementPrefab)
        // We can also tell Zenject what to name the new gameobject here
        .WithGameObjectName("Lines")
        // GameObjectGroup's are just game objects used for organization
        // This is nice so that it doesn't clutter up our scene hierarchy
        .UnderTransformGroup("Line");

        Container.BindFactory <TrainController, TrainController.Factory>()
        .FromComponentInNewPrefab(_settings.TrainPrefab)
        .WithGameObjectName("Trains")
        .UnderTransformGroup("Train");

        Container.BindFactory <DrowLineComponent, DrowLineComponent.Factory>()
        .FromComponentInNewPrefab(_settings.LinePrefab)
        .WithGameObjectName("newLines")
        .UnderTransformGroup("newLine");

        Container.BindInterfacesAndSelfTo <GameController>().AsSingle();
    }
Пример #2
0
    public override void InstallBindings()
    {
        SignalBusInstaller.Install(Container);

        Container.BindInstance(FindObjectOfType <AudioManager>()).AsSingle();
        Container.BindInstance(FindObjectOfType <PipeManager>()).AsSingle();
        Container.BindInstance(FindObjectOfType <GameManager>()).AsSingle();
        Container.BindInstance(FindObjectOfType <UIManager>()).AsSingle();
        Container.BindInstance(FindObjectOfType <Player>()).AsSingle();
        Container.BindInstance(FindObjectOfType <SaveLoadManager>()).AsSingle();

        Container.DeclareSignal <PlayerSignal.Fly>();
        Container.DeclareSignal <PlayerSignal.Score>();
        Container.DeclareSignal <PlayerSignal.Hit>();
        Container.DeclareSignal <PlayerSignal.SetRecord>();

        Container.DeclareSignal <VolumeChangeSignal>();
        Container.DeclareSignal <AudioStateSingal>();

        Container.DeclareSignal <GameSignal.StartGame>();
        Container.DeclareSignal <GameSignal.LaunchGame>();
        Container.DeclareSignal <GameSignal.SettingMenu>();
        Container.DeclareSignal <GameSignal.GameOver>();
        Container.DeclareSignal <GameSignal.QuitGame>();

        Container.DeclareSignal <LoadDataSignal>();
        Container.DeclareSignal <SaveDataSignal>();

        Container.BindFactory <Pipe, Pipe.PipeFactory>().FromComponentInNewPrefab(_gameSettings.PipePrefab);
    }
Пример #3
0
 void InstallSignals()
 {
     SignalBusInstaller.Install(Container);
     Container.DeclareSignal <GameStartedSignal>();
     Container.DeclareSignal <BallCollidedSignal>();
     Container.DeclareSignal <NewScoreUpdateSignal>();
 }
        public override void InstallBindings()
        {
            // Installing Signal Bus Once and for all.
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <LoadSceneSignal>().RunAsync();
            Container.BindSignal <LoadSceneSignal>()
            .ToMethod <LoadSceneCommand>((x, loadParams) => x.Execute(loadParams))
            .FromNew();

            Container.DeclareSignal <LoadUnloadScenesSignal>().RunAsync();
            Container.BindSignal <LoadUnloadScenesSignal>()
            .ToMethod <LoadUnloadScenesCommand>((x, loadParams) => x.Execute(loadParams))
            .FromNew();

            Container.DeclareSignal <UnloadSceneSignal>().RunAsync();
            Container.BindSignal <UnloadSceneSignal>()
            .ToMethod <UnloadSceneCommand>((x, loadParams) => x.Execute(loadParams))
            .FromNew();

            Container.DeclareSignal <UnloadAllScenesExceptSignal>().RunAsync();
            Container.BindSignal <UnloadAllScenesExceptSignal>()
            .ToMethod <UnloadAllScenesExceptCommand>((x, loadParams) => x.Execute(loadParams))
            .FromNew();

            Container.DeclareSignal <OpenPopupSignal>().RunAsync();

            Container.DeclareSignal <RequestStateChangeSignal>().RunAsync();

            Container.BindInterfacesTo <AsyncSceneLoader>().AsTransient();
        }
Пример #5
0
    public void SetUp()
    {
        _container = new DiContainer();
        SignalBusInstaller.Install(_container);
        //signals
        _container.DeclareSignal <SignalPlayerCreated>();
        _container.DeclareSignal <SignalShotSpawn>();
        _container.DeclareSignal <SignalWeaponSwitch>();

        _inputController = Substitute.For <IInputController>();
        _container.Bind <IInputController>().FromInstance(_inputController).AsSingle().NonLazy();

        _signalBus = _container.Resolve <SignalBus>();
        _container.BindInterfacesAndSelfTo <Engine>().AsSingle().NonLazy();

        _engine = _container.Resolve <Engine>();

        _container.BindInterfacesAndSelfTo <PlayerFactory>().AsSingle().NonLazy();
        //_container.BindInterfacesAndSelfTo<HealthComponent>().AsSingle().NonLazy();
        _container.BindInterfacesAndSelfTo <WeaponsController>().AsSingle().NonLazy();

        _playerFactory = _container.Resolve <PlayerFactory>();

        //ui
        var canvas       = new GameObject();
        var viewResource = _container.InstantiatePrefabResourceForComponent <ViewUiWeapons>("BattleViewsUi/ViewUiWeapons");

        _container.BindViewController <ViewUiWeapons, PresenterWeapons>(viewResource, canvas.transform);
        _viewUi    = _container.Resolve <ViewUiWeapons>();
        _presenter = _container.Resolve <PresenterWeapons>();
        _presenter.Initialize();
    }
Пример #6
0
        public IEnumerator CreatePresenterTest()
        {
            PreInstall();

            SignalBusInstaller.Install(Container);
            Container.DeclareSignal <MoveSignal>();

            Container.Bind <Board.Setting>().AsSingle();
            Container.Bind <TilePresenter.Setting>().AsSingle();
            Container.Bind <CoordToPosition.Setting>().AsSingle();
            Container.Bind <CoordToPosition>().AsSingle();
            Container.BindFactory <int, Cell, Tile, Tile.Factory>().FromSubContainerResolve().ByInstaller <TileInstaller>();
            var tileFactory = Container.Resolve <Tile.Factory>();

            Container.BindFactory <Tile, TilePresenter, TilePresenter.Factory>().FromPoolableMemoryPool <TilePresenter>(
                x => x.WithInitialSize(1).FromNewComponentOnNewGameObject().UnderTransformGroup("TilePool"));
            var tilePresenterFactory = Container.Resolve <TilePresenter.Factory>();

            tileFactory.OnCreate += (_tile) =>
            {
                tilePresenterFactory.Create(_tile);
            };

            PostInstall();

            var tile = tileFactory.Create(0, new Cell(0, 0));

            Assert.NotNull(tile);

            Assert.NotNull(GameObject.FindObjectOfType <TilePresenter>());

            yield return(null);
        }
Пример #7
0
        public override void InstallBindings()
        {
            Debug.Log(">>> Game Installer");

            //Привязываем менеджеры
            Container.BindInterfacesAndSelfTo <GameManager>().AsSingle();
            Container.BindInterfacesAndSelfTo <LevelManager>().AsSingle();
            Container.BindInterfacesAndSelfTo <CameraManager>().AsSingle();

            //Декларируем сигналы
            SignalBusInstaller.Install(Container);
            Container.DeclareSignal <GameStateChangedSignal>();
            Container.DeclareSignal <PlayerDiedSignal>();
            Container.BindSignal <GameStateChangedSignal>().ToMethod <IUIManager>(x => x.OnGameStateChanged).FromResolve();
            Container.BindSignal <GameStateChangedSignal>().ToMethod <ICameraManager>(x => x.OnGameStateChangedSignal).FromResolve();
            Container.BindSignal <PlayerDiedSignal>().ToMethod <IGameManager>(x => x.OnPlayerDiedSignal).FromResolve();

            //Привязываем пулы
            Container.Bind <TilesPool>().AsSingle();
            Container.Bind <PlayerPool>().AsSingle();
            Container.BindFactory <Vector3, Tile, Tile.Factory>().FromMonoPoolableMemoryPool(x => x.WithInitialSize(25).FromComponentInNewPrefab(tilePrefab).UnderTransformGroup("Tiles"));
            Container.BindFactory <Player, Player.Factory>().FromMonoPoolableMemoryPool(x => x.WithInitialSize(1).FromComponentInNewPrefab(playerPrefab));

            //Привязываем фабрики
            Container.Bind <BlockFactory>().AsSingle();
            Container.BindFactory <List <Tile>, Block, Block.Factory>();

            //Создаем monobehaviour для выполнения корутин
            Container.Bind <AsyncProcessor>().FromNewComponentOnNewGameObject().AsSingle();
        }
Пример #8
0
        public void TestSubscribeAndUnsubscribe()
        {
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <FooSignal>();

            var signalBus = Container.Resolve <SignalBus>();

            bool received = false;

            Action callback = () => received = true;

            signalBus.Subscribe <FooSignal>(callback);

            Assert.That(!received);
            signalBus.Fire <FooSignal>();
            Assert.That(received);

            received = false;
            signalBus.Fire <FooSignal>();
            Assert.That(received);

            signalBus.Unsubscribe <FooSignal>(callback);

            received = false;
            signalBus.Fire <FooSignal>();
            Assert.That(!received);
        }
Пример #9
0
        public void TestUntypedSubscribe()
        {
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <FooSignal>();
            Container.DeclareSignal <BarSignal>();

            var signalBus = Container.Resolve <SignalBus>();

            object received = null;

            signalBus.Subscribe(typeof(FooSignal), x =>
            {
                Assert.That(x is FooSignal);
                received = x;
            });

            var data = new FooSignal();

            signalBus.Fire(data);

            Assert.IsEqual(received, data);

            signalBus.Fire(new BarSignal());
        }
Пример #10
0
    public override void InstallBindings()
    {
        SignalBusInstaller.Install(Container);

        Container.DeclareSignal <TetrinoDroppedSignal>();
        Container.BindSignal <TetrinoDroppedSignal>()
        .ToMethod(x =>
        {
            x.TetrinoController.enabled = false;
            x.GameController.CheckDrop(x.TetrinoController);
        });

        Container.DeclareSignal <ChangedSpeedSignal>();
        Container.DeclareSignal <ChangedLevelSignal>();
        Container.DeclareSignal <ChangedStatsSignal>();

        Container.Bind <Grid>().AsSingle();
        Container.Bind <PositionValidator>().AsSingle();
        Container.Bind <MovementCommands>().AsSingle();

        Container.Bind <SpeedController>().AsSingle();
        Container.Bind <StatsController>().AsSingle();
        Container.Bind <LevelController>().AsSingle();

        Container.BindFactory <float, GameController, TetrinoController, TetrinoController.Factory>()
        .FromComponentInNewPrefab(GetRandomTetrinoPrefab());
    }
Пример #11
0
        private void InstallSignals()
        {
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <UnitDestroyedSignal>();
            Container.DeclareSignal <GameOverSignal>();
        }
Пример #12
0
        public override void InstallBindings()
        {
            SignalBusInstaller.Install(this.Container);

            this.Container.DeclareSignal <SignalPick>();

            this.Container.DeclareSignal <SignalReset>();

            this.Container.Bind <User.ICamera>().FromInstance(this.camera);

            this.BindTypeFromSubcontainerByInstaller <Anim.IHide, Anim.Installer>();

            this.BindTypeFromSubcontainerByInstaller <Opts.IOpts, Opts.Installer>();

            this.BindTypeFromSubcontainerByInstaller <Path.IPath, Path.Installer>();

            this.BindTypeFromSubcontainerByInstaller <User.Input, User.Installer>();

            this.BindTypeFromSubcontainerByInstaller <Menu.IView, Gain.Installer>();

            this.BindTypeFromSubcontainerByInstaller <Loot.ILoot, Loot.Installer>()
            .NonLazy();

            this.BindTypeFromSubcontainerByInstaller <Loop.Main, Loop.Installer>()
            .NonLazy();
        }
Пример #13
0
    public override void InstallBindings()
    {
        SignalBusInstaller.Install(Container);

        // signals for flipper controller
        // these can be called either by AI or player
        Container.DeclareSignal <EmptynessInside>().WithId("LeftFlipperDown");
        Container.DeclareSignal <EmptynessInside>().WithId("LeftFlipperUp");
        Container.DeclareSignal <EmptynessInside>().WithId("RightFlipperDown");
        Container.DeclareSignal <EmptynessInside>().WithId("RightFlipperUp");

        Container.Bind <AIController>().FromComponentInHierarchy(includeInactive: true).AsSingle();

        Container.Bind <FlipperController>().FromComponentInHierarchy(includeInactive: true).AsSingle();
        Container.Bind <BallSpawnController>().FromComponentInHierarchy(includeInactive: true).AsSingle();
        Container.Bind <SpringArea>().FromComponentInHierarchy(includeInactive: true).AsSingle();
        Container.Bind <ScoreController>().AsSingle();

        Container.BindInstance <GameSettings>(gameSettings);
        Container.BindInstance <GameAudioSettings>(audioSettings);

        // ui views
        // we bind them to any interfaces they might implement and to self too
        Container.BindInterfacesAndSelfTo <MenuView>().FromComponentInHierarchy(includeInactive: true).AsSingle();
        Container.BindInterfacesAndSelfTo <InGameView>().FromComponentInHierarchy(includeInactive: true).AsSingle();
        Container.BindInterfacesAndSelfTo <GameOverView>().FromComponentInHierarchy(includeInactive: true).AsSingle();

        // define game states here. simple.
        Container.BindInterfacesAndSelfTo <GameStateMachine>().AsSingle();

        Container.Bind(typeof(IInitializable), typeof(GameState)).To <MenuGameState>().AsSingle();
        Container.Bind(typeof(IInitializable), typeof(GameState)).To <InGameState>().AsSingle();
        Container.Bind(typeof(IInitializable), typeof(GameState)).To <GameOverState>().AsSingle();
    }
    public void SetUp()
    {
        _container = new DiContainer();
        SignalBusInstaller.Install(_container);
        _container.DeclareSignal <SignalShotSpawn>();
        _container.DeclareSignal <SignalPlayerCreated>();

        _signalBus = _container.Resolve <SignalBus>();

        _inputController = Substitute.For <IInputController>();
        _container.Bind <IInputController>().FromInstance(_inputController).AsSingle().NonLazy();

        _container.BindInterfacesAndSelfTo <PlayerShootingSystem>().AsSingle().NonLazy();
        _container.BindInterfacesAndSelfTo <WeaponsController>().AsSingle().NonLazy();
        _container.BindInterfacesAndSelfTo <PlayerFactory>().AsSingle().NonLazy();
        _container.BindInterfacesAndSelfTo <HealthComponent>().AsSingle().NonLazy();
        _container.BindInterfacesAndSelfTo <Engine>().AsSingle().NonLazy();

        _engine = _container.Resolve <Engine>();
        _playerShootingSystem = _container.Resolve <PlayerShootingSystem>();

        var playerFactory = _container.Resolve <PlayerFactory>();

        _playerEntity = playerFactory.Create(Vector3.zero, Vector3.forward);
    }
Пример #15
0
    public override void InstallBindings()
    {
        SignalBusInstaller.Install(Container);
        Container.DeclareSignal <MapOriginChanged>();
        Container.DeclareSignal <PlaceSelected>();

        var searchBox   = GameObject.FindWithTag("SearchBox");
        var worldCanvas = GameObject.FindWithTag("WorldCanvas");

        Container.Bind <MapsService>().FromComponentOnRoot().AsSingle();
        Container.BindInterfacesAndSelfTo <BaseMapLoader>().FromComponentOnRoot().AsSingle();
        Container.BindInterfacesAndSelfTo <DynamicMapsUpdater>().FromComponentOnRoot().AsSingle();
        Container.BindInterfacesAndSelfTo <PlacesRenderer>().FromComponentOnRoot().AsSingle();

        Container.BindInstance(Camera.main.GetComponent <PanAndZoom>());

        Container.Bind <InputField>().WithId("SearchBox").FromInstance(searchBox.GetComponent <InputField>());

        Container.Bind <TextAsset>().WithId("Secrets").FromResources("Secrets").AsSingle();

        Container.Bind <Canvas>().FromComponentOn(worldCanvas).AsSingle();

        Container.BindInterfacesAndSelfTo <ViewportService>().AsSingle().NonLazy();
        Container.BindInterfacesAndSelfTo <PlacesService>().AsSingle().NonLazy();
        Container.BindInterfacesAndSelfTo <SecretsService>().AsSingle().NonLazy();
        Container.BindInterfacesAndSelfTo <SearchService>().AsSingle().NonLazy();
    }
Пример #16
0
 public override void InstallBindings()
 {
     SignalBusInstaller.Install(Container);
     Container.BindInterfacesTo <GameSceneManager>().AsSingle().NonLazy();
     Container.BindInterfacesAndSelfTo <HighScoreModel>().AsSingle();
     Container.DeclareSignal <RequestNewGameStateSignal>();
 }
        public override void InstallBindings()
        {
            base.InstallBindings();

            SignalBusInstaller.Install(Container);
            Container.Bind <ICommandExecutor>().To <BaseCommandExecutor>().AsTransient();
            Container.Bind <IBigNumberFormatter>().To <BigNumberFormatter>().AsTransient();
            Container.Bind <IEventBus>().To <ZenjectSignalEventBus>().AsCached();

            Container.Bind(typeof(ISessionRepository <>)).To(typeof(SessionRepository <>)).AsCached();
            Container.Bind(typeof(IPlayerPrefsRepository <>)).To(typeof(PlayerPrefsRepository <>)).AsCached();

            Container.Bind(typeof(IKeysProvider <Type, string>)).To <TypeKeysProviderDefault>().AsCached();

            Container.Bind(typeof(IFactorySync <>)).To(typeof(ActivatorObjectFactory <>))
            .AsCached();
            Container.Bind <ISceneHelper>().To <SceneHelper>().AsCached();

            Container.Bind <ApplicationCycleTracker>()
            .FromNewComponentOnNewGameObject()
            .WithGameObjectName("ApplicationCycleTracker")
            .AsCached()
            .NonLazy();

            BindSerializers(Container);

            Container.DeclareSignal <OnApplicationQuitSignal>();
        }
Пример #18
0
 void InstallSignals()
 {
     SignalBusInstaller.Install(Container);
     Container.DeclareSignal <SignalChangeColors>();
     Container.DeclareSignal <SignalGameState>();
     Container.DeclareSignal <SignalIncreaseScore>();
 }
Пример #19
0
        public override void InstallBindings()
        {
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <PlayerHitBorderSignal>();
            Container.DeclareSignal <PlayerDiedSignal>();
            Container.DeclareSignal <PickedUpCollectableSignal>();
            Container.DeclareSignal <StartedGameSignal>();
            Container.DeclareSignal <StartedAwaitingSignal>();
            Container.DeclareSignal <StunExpiredSignal>();

            Container.BindInterfacesAndSelfTo <GameController>().AsSingle();
            Container.Bind <IGameDataHandler>().To <PlayerPrefsGameDataHandler>().AsSingle();

            Container.Bind <UIController>().FromComponentInHierarchy().AsSingle();
            Container.BindInterfacesAndSelfTo <CameraController>().AsSingle();
            Container.BindInterfacesAndSelfTo <BlockManager>().AsSingle();

            Container.BindMemoryPool <RoadBlock, RoadBlock.Pool>()
            .WithInitialSize(30)
            .FromComponentInNewPrefab(blockPrefabs)
            .UnderTransformGroup("Pooled RoadBlocks");
            Container.BindMemoryPool <Coin, Coin.Pool>()
            .WithInitialSize(100)
            .FromComponentInNewPrefab(coinPrefab)
            .UnderTransformGroup("Pooled Coins");
        }
Пример #20
0
    public override void InstallBindings()
    {
        SignalBusInstaller.Install(Container);

        Container.DeclareSignal <ResourceModelUpdatedSignal>();
        Container.DeclareSignal <TileClickedSignal>();
        Container.DeclareSignal <LeaveConstructionSignal>();
        Container.DeclareSignal <WorkerPercentageCalculatedSignal>();
        Container.DeclareSignal <NotificationSignal>();
        Container.DeclareSignal <AddMoneySignal>();
        Container.DeclareSignal <AddWorkerSignal>();
        Container.DeclareSignal <SubstractMoneySignal>();
        Container.DeclareSignal <SubstractWorkerSignal>();

        Container.Bind <HouseModel>().FromInstance(houseModel);
        Container.Bind <CarModel>().FromInstance(carModel);

        Container.BindInterfacesTo <ResourceView>().AsSingle();
        Container.BindInterfacesTo <TileClick>().AsSingle();
        Container.BindInterfacesTo <CameraMovement>().AsSingle();
        Container.BindInterfacesTo <OverlayView>().AsSingle();
        Container.BindInterfacesTo <SpawnCars>().AsSingle();
        Container.BindInterfacesTo <NotificationSignal>().AsSingle();
        Container.BindInterfacesTo <OpenBankingAPI>().AsSingle();
        Container.BindInterfacesTo <SignalEmitter>().AsSingle();
    }
        public override void Setup()
        {
            base.Setup();

            SignalBusInstaller.Install(Container);
            ZenjectManagersInstaller.Install(Container);
        }
Пример #22
0
        public override void InstallBindings()
        {
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <EnemyKilledSignal>();
            Container.DeclareSignal <PlayerDiedSignal>();
        }
 public override void InstallBindings()
 {
     Debug.Log("Install project");
     SignalBusInstaller.Install(Container);
     Container.DeclareSignal <GameEvent>();
     Container.Bind <AudioService>().FromComponentInNewPrefabResource("MainAudioService").AsSingle().NonLazy();
 }
Пример #24
0
    public override void InstallBindings()
    {
        Container.Bind <AudioManager>().FromComponentInHierarchy().AsSingle();
        Container.Bind <WorldManager>().FromComponentInHierarchy().AsSingle();


        Container.BindFactory <Player, Player.Factory>().FromSubContainerResolve()
        .ByNewContextPrefab(playerPrefab).UnderTransformGroup("WorldManager/Players");
        Container.BindFactory <UnityEngine.Object, Vector3, Quaternion, Vector2, Projectile, Projectile.Factory>()
        .FromFactory <ProjectileFactory>();
//        Container.BindFactory<Enemy, Enemy.Factory>().FromSubContainerResolve()
//            .ByNewContextPrefab(enemyPrefab).UnderTransformGroup("WorldManager/EnemyManager");


        SignalBusInstaller.Install(Container);

        Container.DeclareSignal <PlayerHealthSignal>();
        Container.Bind <HealthCounterDisplay>().FromComponentInHierarchy().AsSingle();
        Container.BindSignal <PlayerHealthSignal>()
        .ToMethod <HealthCounterDisplay>(x => x.UpdateHealthText).FromResolve();

        Container.DeclareSignal <CameraFollowTargetSignal>();
        Container.Bind <CameraRig>().FromComponentInHierarchy().AsSingle();
        Container.BindSignal <CameraFollowTargetSignal>()
        .ToMethod <CameraRig>(x => x.UpdateFollowTarget).FromResolve();
    }
Пример #25
0
        public override void InstallBindings()
        {
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <SpawnCreatureFromCrateSignal>();
            Container.DeclareSignal <SpawnCreatureFromMergeSignal>();
            Container.DeclareSignal <CollectCoinSignal>();

            Container.BindInterfacesAndSelfTo <LocationController>().AsSingle();

                #if UNITY_STANDALONE || UNITY_EDITOR
            Container.BindInterfacesTo <PCInputController>().AsSingle();
                #elif UNITY_ANDROID
            Container.BindInterfacesTo <MobileInputController>().AsSingle();
                #endif

            Container.Bind <LocationModel>().AsSingle();
            Container.Bind <PlayerModel>().AsSingle();

            Container.BindInterfacesTo <UIContextFacade>().FromInstance(ui_context);

            Container.BindFactory <UnitView, IUnitView, UnitView.Factory>()
            .FromFactory <MainFactory <UnitView, IUnitView> >();

            Container.BindComplexSignalToCommand <SpawnCreatureFromCrateSignal, SpawnCreatureFromCrateCommand, IUnitView>("crate_view");
            Container.BindComplexSignalToCommand <SpawnCreatureFromMergeSignal, SpawnCreatureFromMergeCommand, ICreatureView, ICreatureView>(new[] { "first_creature", "second_creature" });
            Container.BindComplexSignalToCommand <CollectCoinSignal, CollectCoinsCommand, ICoinView>("coin_view");
        }
Пример #26
0
        public override void InstallBindings()
        {
            SignalBusInstaller.Install(Container);
            Container.DeclareSignal <ShipSignal>();

            TimeInstaller.Install(Container);

            Container.BindInterfacesTo <FarmInfoEntity>()
            .AsSingle();
            Container.BindInterfacesTo <ItemEntity>()
            .AsSingle();
            Container.BindInterfacesTo <MoneyEntity>()
            .AsSingle();
            Container.BindInterfacesTo <SlimeNumEntity>()
            .AsSingle();
            Container.BindInterfacesTo <SpawnIndexEntity>()
            .AsSingle();
            Container.BindInterfacesTo <VolumeEntity>()
            .AsSingle();

            Container.BindInterfacesTo <ShipUseCaseUseCase>()
            .AsSingle();
            Container.BindInterfacesTo <ClickSlimeUseCase>()
            .AsSingle();
        }
Пример #27
0
        private void InstallSignals()
        {
            SignalBusInstaller.Install(Container);

            Container.DeclareSignal <NewGameStarted>();
            Container.DeclareSignal <EnemyDown>();
        }
Пример #28
0
        public override void InstallBindings()
        {
            //Initialize SignalBus
            SignalBusInstaller.Install(Container); //This allows SignalBus to be injected in any class instantiated here, or any of its children.

            //Add Game Scoped Signals
            Container.DeclareSignal <OnGameStartedSignal>().OptionalSubscriber();
            Container.DeclareSignal <OnGamePaused>().OptionalSubscriber();
            Container.DeclareSignal <OnGameResumed>().OptionalSubscriber();
            Container.DeclareSignal <OnGameGotFocus>().OptionalSubscriber();
            Container.DeclareSignal <OnGameLostFocus>().OptionalSubscriber();
            Container.DeclareSignal <OnGameQuit>().OptionalSubscriber();

            Logger.Log($"Binding {coreSystems.Count} systems", Colors.Lime);

            //Create system objects and bind them
            foreach (var prefab in coreSystems)
            {
                Container.Bind(prefab.GetType())
                .FromComponentInNewPrefab(prefab)
                .AsSingle()
                .OnInstantiated((InjectContext context, ICoreSystem system) =>
                {
                    if (system is FactoryCoreSystem factory)
                    {
                        factory.SetDiContainer(Container);
                    }
                })
                .NonLazy();

                Logger.Log($"----{prefab.name}", Colors.Lime);
            }

            Logger.Log("GameConfiguration: Service binding complete", Colors.Lime);
        }
Пример #29
0
        public override void InstallBindings()
        {
            SignalBusInstaller.Install(Container);

            Container.BindInterfacesAndSelfTo <GameManager>().AsSingle().NonLazy();
            Container.BindInterfacesAndSelfTo <PlayerManager>().AsSingle().NonLazy();

            Container.DeclareSignal <UseItemSignal>();
            Container.DeclareSignal <UpdateStatSignal>();
            Container.DeclareSignal <UIToggleSignal>();
            Container.DeclareSignal <UIHideSignal>();
            Container.DeclareSignal <UIShowSignal>();
            Container.DeclareSignal <EnteredLocationSignal>();
            Container.DeclareSignal <LeaveLocationSignal>();
            Container.DeclareSignal <ChangeDirectionSignal>();

            Container.DeclareSignal <GetInCarSignal>();
            Container.DeclareSignal <GetOutCarSignal>();

            Container.DeclareSignal <EnterRadiationSignal>();
            Container.DeclareSignal <ExitRadiationSignal>();

            Container.DeclareSignal <EndGameSignal>();

            Container.BindFactory <Car, Car.Factory>()
            .FromComponentInNewPrefab(CarPrefab)
            .WithGameObjectName("Car");


            Container.BindFactory <Item, Item.Factory>()
            .FromComponentInNewPrefab(CarPrefab)
            .WithGameObjectName("Car");
        }
Пример #30
0
        public void MoveTileTest()
        {
            SignalBusInstaller.Install(Container);
            Container.BindFactory <int, Cell, Tile, Tile.Factory>();
            Container.Bind <TileRegistry>().AsSingle();
            Container.BindFactory <int, int, Cell, Cell.Factory>();
            var gridSize = 2;

            Container.Bind <Grid>().AsSingle().WithArguments(gridSize).NonLazy();

            var grid = Container.Resolve <Grid>();

            Assert.AreEqual(grid.EmptyCells.Count(), 4);

            var cellR0C0 = grid.GetCell(0, 0);
            var tile     = grid.SpawnTile(cellR0C0, 0);

            Assert.AreEqual(grid.EmptyCells.Count(), 3);

            Assert.AreEqual(tile.Cell, cellR0C0);
            Assert.AreEqual(cellR0C0.Tile, tile);

            var cellR0C1 = grid.GetCell(0, 1);

            grid.MoveTile(tile, cellR0C1);

            Assert.AreEqual(grid.EmptyCells.Count(), 3);

            Assert.AreEqual(cellR0C0.Tile, null);
            Assert.AreEqual(tile.Cell, cellR0C1);
            Assert.AreEqual(cellR0C1.Tile, tile);
        }