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(); }
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); }
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(); }
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(); }
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); }
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(); }
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); }
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()); }
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()); }
private void InstallSignals() { SignalBusInstaller.Install(Container); Container.DeclareSignal <UnitDestroyedSignal>(); Container.DeclareSignal <GameOverSignal>(); }
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(); }
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); }
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(); }
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>(); }
void InstallSignals() { SignalBusInstaller.Install(Container); Container.DeclareSignal <SignalChangeColors>(); Container.DeclareSignal <SignalGameState>(); Container.DeclareSignal <SignalIncreaseScore>(); }
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"); }
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); }
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(); }
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(); }
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"); }
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(); }
private void InstallSignals() { SignalBusInstaller.Install(Container); Container.DeclareSignal <NewGameStarted>(); Container.DeclareSignal <EnemyDown>(); }
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); }
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"); }
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); }