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);
    }
Exemple #2
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();
    }
Exemple #3
0
    public void SetUp()
    {
        _container = new DiContainer();
        SignalBusInstaller.Install(_container);
        //signals
        _container.DeclareSignal <SignalPlayerCreated>();

        _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 <WeaponsController>().AsSingle().NonLazy();

        _playerFactory = _container.Resolve <PlayerFactory>();

        //ui
        var viewResource = _container.InstantiatePrefabResourceForComponent <ViewUiPlayerInfo>("BattleViewsUi/ViewUiPlayerInfo");

        _container.BindViewController <ViewUiPlayerInfo, PresenterPlayerInfo>(viewResource, null);
        _viewUi    = _container.Resolve <ViewUiPlayerInfo>();
        _presenter = _container.Resolve <PresenterPlayerInfo>();
        _presenter.Initialize();

        _entity = _playerFactory.Create(Vector3.zero, Vector3.forward);
    }
 private void InstallBindings(DiContainer container)
 {
     container.Bind <PrefabContext>().FromInstance(_prefabContext).AsSingle();
     container.Bind <ScreenRoot>().FromComponentInNewPrefab(_prefabContext.ScreenRoot).AsSingle();
     container.BindInterfacesAndSelfTo <ScreenFactory>().AsSingle().WithArguments(_screenContext.config);
     container.BindInterfacesAndSelfTo <ScreenNavigator>().AsSingle();
     container.BindInterfacesAndSelfTo <SceneLoader>().AsSingle();
     container.BindInterfacesAndSelfTo <ApplicationController>().AsSingle().NonLazy();
 }
Exemple #5
0
        public void TestPausingNested()
        {
            var container = new DiContainer();

            container.Bind(typeof(TickableManager), typeof(InitializableManager), typeof(DisposableManager))
            .ToSelf().AsSingle().CopyIntoAllSubContainers();

            container.Bind <ITickable>().To <RootTickable>().AsSingle();

            // This is how you add ITickables / etc. within sub containers
            container.BindInterfacesAndSelfTo <NestedKernel>()
            .FromSubContainerResolve().ByMethod(InstallNestedOne).AsSingle();
            container.BindInterfacesAndSelfTo <NestedKernel>()
            .FromSubContainerResolve().ByMethod(InstallNestedTwo).AsSingle();
            container.Bind <NestedTickableManagerHolder>()
            .FromSubContainerResolve().ByMethod(InstallNestedTwo).AsSingle();

            var tickManager    = container.Resolve <TickableManager>();
            var initManager    = container.Resolve <InitializableManager>();
            var disposeManager = container.Resolve <DisposableManager>();

            var nestedTickManager = container.Resolve <NestedTickableManagerHolder>();

            Assert.AreEqual(0, RootTickable.TickCount);
            Assert.AreEqual(0, NestedTickableOne.TickCount);
            Assert.AreEqual(0, NestedTickableTwo.TickCount);
            Assert.AreEqual(0, DoublyNestedTickable.TickCount);

            initManager.Initialize();
            tickManager.Update();
            disposeManager.Dispose();

            Assert.AreEqual(1, RootTickable.TickCount);
            Assert.AreEqual(1, NestedTickableOne.TickCount);
            Assert.AreEqual(1, NestedTickableTwo.TickCount);
            Assert.AreEqual(1, DoublyNestedTickable.TickCount);

            nestedTickManager.TickManager.Pause();
            tickManager.Update();

            Assert.AreEqual(2, RootTickable.TickCount);
            Assert.AreEqual(2, NestedTickableOne.TickCount);
            Assert.AreEqual(1, NestedTickableTwo.TickCount);
            Assert.AreEqual(1, DoublyNestedTickable.TickCount);

            nestedTickManager.TickManager.Resume();
            tickManager.Update();

            Assert.AreEqual(3, RootTickable.TickCount);
            Assert.AreEqual(3, NestedTickableOne.TickCount);
            Assert.AreEqual(2, NestedTickableTwo.TickCount);
            Assert.AreEqual(2, DoublyNestedTickable.TickCount);
        }
Exemple #6
0
 void InstallUIContainer(DiContainer subContainer)
 {
     subContainer.Bind <UIContainerFacade>().AsSingle();
     subContainer.BindInterfacesAndSelfTo <UIContainer>().FromComponentInNewPrefab(_containerPrefab).AsSingle();
     subContainer.BindInterfacesAndSelfTo <UIContainerManager>().FromComponentInNewPrefab(_manager).AsSingle();
     subContainer.BindFactory <UIContent, PlaceholderFactory <UIContent> >().FromMonoPoolableMemoryPool(x => x.FromComponentInNewPrefab(_contentPrefab).UnderTransform(GetContainerParent));
     subContainer.BindSignal <UIAddContentSignal>().ToMethod <UIContainerManager>(x => x.AddContentSignal).FromResolve();
     subContainer.BindSignal <UIRemoveContentSignal>().ToMethod <UIContainerManager>(x => x.RemoveContentSignal).FromResolve();
     subContainer.BindSignal <UIAddAllContentSignal>().ToMethod <UIContainerManager>(x => x.AddAllContentSignal).FromResolve();
     subContainer.BindSignal <UIRemoveAllContentSignal>().ToMethod <UIContainerManager>(x => x.RemoveAllContentSignal).FromResolve();
     subContainer.BindSignal <UIClearContainerSignal>().ToMethod <UIContainerManager>(x => x.ClearContainerSignal).FromResolve();
     subContainer.BindSignal <UIUpdateContainerSignal>().ToMethod <UIContainerManager>(x => x.UpdateContainerSignal).FromResolve();
     subContainer.BindSignal <UIGlobalContainerSignal>().ToMethod <UIContainerManager>(x => x.GlobalContainerSignal).FromResolve();
 }
    public void SetUp()
    {
        _container = new DiContainer();
        SignalBusInstaller.Install(_container);
        _container.DeclareSignal <SignalShotFXDestroy>();
        _signalBus = _container.Resolve <SignalBus>();

        _container.BindInterfacesAndSelfTo <ShotsFXSystem>().AsSingle().NonLazy();
        _container.BindInterfacesAndSelfTo <ShotFXFactory>().AsSingle().NonLazy();
        _container.BindInterfacesAndSelfTo <Engine>().AsSingle().NonLazy();

        _engine = _container.Resolve <Engine>();

        _shotFxFactory = _container.Resolve <ShotFXFactory>();
    }
Exemple #8
0
        public void Test1()
        {
            NumInstalls        = 0;
            InitTest.WasRun    = false;
            TickTest.WasRun    = false;
            DisposeTest.WasRun = false;

            var container = new DiContainer();

            container.Bind(typeof(TickableManager), typeof(InitializableManager), typeof(DisposableManager))
            .ToSelf().AsSingle().CopyIntoAllSubContainers();

            // This is how you add ITickables / etc. within sub containers
            container.BindInterfacesAndSelfTo <FooKernel>()
            .FromSubContainerResolve().ByMethod(InstallFoo).AsSingle();

            var tickManager    = container.Resolve <TickableManager>();
            var initManager    = container.Resolve <InitializableManager>();
            var disposeManager = container.Resolve <DisposableManager>();

            Assert.That(!InitTest.WasRun);
            Assert.That(!TickTest.WasRun);
            Assert.That(!DisposeTest.WasRun);

            initManager.Initialize();
            tickManager.Update();
            disposeManager.Dispose();

            Assert.That(InitTest.WasRun);
            Assert.That(TickTest.WasRun);
            Assert.That(DisposeTest.WasRun);
        }
 private void InstallBindingSystemToSubContainer(DiContainer subContainer)
 {
     subContainer.Bind <ISpatialAnchorSystem>().To <SpatialAnchorSystem>().AsCached();
     subContainer.Bind <ISpatialAnchorRepository>().To <SpatialAnchorRepository>().AsCached();
     subContainer.Bind <ISpatialAnchorTunerRepository>().FromComponentInNewPrefab(_anchorTunerRepository).AsCached();
     subContainer.BindInterfacesAndSelfTo <SpatialAnchorService>().AsCached();
 }
Exemple #10
0
        private void InstallBindingsToSubContainer(DiContainer subContainer)
        {
            subContainer
            .Bind <IAvatarService>()
            .To <AvatarService>()
            .AsCached()
            .NonLazy();

            subContainer
            .Bind <IAvatarSystem>()
            .To <AvatarSystem>()
            .AsCached();

            subContainer
            .Bind <IAvatarRepository>()
            .To <AvatarRepository>()
            .AsCached();

            subContainer
            .BindInterfacesAndSelfTo <PlayerAvatarController>()
            .AsCached();

            subContainer
            .Bind <IAvatarController>()
            .WithId("Player")
            .To <PlayerAvatarController>()
            .FromResolve();


            subContainer
            .BindFactory <AvatarID, Presentation.Avatar, AvatarFactory>()
            .FromComponentInNewPrefab(_avatarPrefab);
        }
Exemple #11
0
 private void InstallBindingSystemToSubContainer(DiContainer subContainer)
 {
     subContainer.Bind <ISpatialAnchorSystem>().To <SpatialAnchorSystem>().AsCached();
     subContainer.Bind <ISpatialAnchorRepository>().To <SpatialAnchorRepository>().AsCached();
     subContainer.Bind <ISpatialAnchorTunerRepository>().To <PhotonSpatialAnchorTunerRepository>().AsCached();
     subContainer.BindInterfacesAndSelfTo <SpatialAnchorService>().AsCached();
 }
 public static void BindMediatorAndViewAsSingle <TMediator, TView>(this DiContainer container, TView view)
     where TMediator : MediatorBase <TView>
     where TView : IView
 {
     container.BindInterfacesAndSelfTo <TMediator>().AsSingle();
     container.Bind <TView>().FromInstance(view).AsSingle();
 }
 public static void BindDestroyedCleanup <TContext, UEntity>(this DiContainer container,
                                                             IMatcher <UEntity> matcher)
     where UEntity : class, IEntity
     where TContext : class, IContext <UEntity>
 {
     container.Bind <IMatcher <UEntity> >().FromInstance(matcher)
     .WhenInjectedInto <DestroyedCleaner <TContext, UEntity> >();
     container.BindInterfacesAndSelfTo <DestroyedCleaner <TContext, UEntity> >().AsSingle().NonLazy();
 }
Exemple #14
0
    // public static void BindController<TController>(this DiContainer container)
    //     where TController : Controller
    // {
    //     container.Bind<TController>().ToSingle();
    //     container.Bind<IInitializable>().ToSingle<TController>();
    //     container.Bind<IDisposable>().ToSingle<TController>();
    // }

    public static void BindViewController <TView, TController>(this DiContainer container, GameObject viewPrefab, Transform parent)
        where TView : View
        where TController : Controller
    {
        // todo bad practice
        var view = container.InstantiatePrefab(viewPrefab, parent);

        container.Bind <TView>().FromComponentOn(view).AsSingle();
        container.BindInterfacesAndSelfTo <TController>().AsSingle();
    }
Exemple #15
0
        public static void Install(DiContainer container)
        {
            container.BindInterfacesAndSelfTo <CustomComponentHandler>().AsSingle();
            container.Bind <BaseGameUiHandler>().AsSingle();
            container
            .BindFactory <Type, SubView.InitData, SubView, SubView.Factory>()
            .FromFactory <SubViewFactory>();
            container
            .BindFactory <Type, CustomViewController.InitData, CustomViewController, CustomViewController.Factory>()
            .FromFactory <ViewControllerFactory>();
            container
            .BindFactory <CustomScreen.InitData, CustomScreen, CustomScreen.Factory>()
            .FromFactory <ScreenFactory>();

            container.Bind <StyleSheetHandler>().AsSingle();
            container.BindInterfacesAndSelfTo <BsmlDecorator>().AsSingle();
            BindUiFactory <Popup, Popup.Factory>(container);
            BindUiFactory <CustomUiComponent, CustomUiComponent.Factory>(container);
        }
Exemple #16
0
        public void InstallNestedTwo(DiContainer subContainer)
        {
            subContainer.Bind <NestedKernel>().AsSingle();

            subContainer.Bind <NestedTickableManagerHolder>().AsSingle();

            subContainer.Bind <ITickable>().To <NestedTickableTwo>().AsSingle();

            subContainer.BindInterfacesAndSelfTo <DoublyNestedKernel>()
            .FromSubContainerResolve().ByMethod(InstallDoublyNested).AsSingle();
        }
Exemple #17
0
            /// <summary>
            /// 子供のItemDataを作成する
            /// </summary>
            public T CreateAndAddItem <T>() where T : IDebugItemData, new()
            {
                _diContainer
                .BindInterfacesAndSelfTo <T>()
                .AsSingle();

                var instance = _diContainer.Resolve <T>();

                Add(instance);

                return(instance);
            }
        private void SpawnBlock(DiContainer container)
        {
            container.BindInterfacesAndSelfTo <BlockFacade>().AsSingle();
            var prefabIndex = Random.Range(0, prefabs.Length);
            var prefab      = prefabs[prefabIndex];
            var block       = container.InstantiatePrefabForComponent <Block>(prefab);

            container.Bind <Block>().FromInstance(block).AsSingle();

            var ghostPrefab = container.InstantiatePrefabForComponent <GhostBlock>(ghostPrefabs[prefabIndex]);

            container.Bind <GhostBlock>().FromInstance(ghostPrefab).AsSingle();
        }
 private static void BindControllerWithArgument <TPresenter, T>(this DiContainer container, T paramArgument) where TPresenter : UiPresenter
 {
     container.BindInterfacesAndSelfTo <TPresenter>().AsSingle().WithArguments(paramArgument).NonLazy();
 }
 private static void BindController <TPresenter>(this DiContainer container) where TPresenter : UiPresenter
 {
     container.BindInterfacesAndSelfTo <TPresenter>().AsSingle().NonLazy();
 }
Exemple #21
0
 public static void BindWithInrefaces <T>(this DiContainer container)
 {
     container.BindInterfacesAndSelfTo <T>().AsSingle().NonLazy();
 }
 static void InstallFoo(DiContainer subContainer)
 {
     subContainer.Bind <FooFacade>().AsSingle();
     subContainer.BindInterfacesAndSelfTo <Foo>().AsSingle();
 }
Exemple #23
0
 public static void BindController <TController>(this DiContainer container)
     where TController : UIController
 {
     container.BindInterfacesAndSelfTo <TController>().AsSingle().NonLazy();
 }