Exemplo n.º 1
0
        private IAbilitiesController ConfigureAbilityController(
            Transform placeForUi,
            IAbilityActivator abilityActivator, ProfilePlayer profilePlayer)
        {
            var abilityItemsConfigCollection
                = ContentDataSourceLoader.LoadAbilityItemConfigs(new ResourcePath
            {
                PathResource = "DataSource/Ability/AbilityItemConfigDataSource"
            });
            var abilityRepository
                = new AbilityRepository(abilityItemsConfigCollection);
            var abilityCollectionViewPath
                = new ResourcePath {
                PathResource = $"Prefabs/{nameof(AbilityCollectionView)}"
                };
            var abilityCollectionView
                = ResourceLoader.LoadAndInstantiateObject <AbilityCollectionView>(abilityCollectionViewPath, placeForUi,
                                                                                  false);

            AddGameObjects(abilityCollectionView.gameObject);

            var abilitiesController = new AbilitiesController(abilityRepository, profilePlayer.InventoryModel,
                                                              abilityCollectionView, abilityActivator);

            AddController(abilitiesController);

            return(abilitiesController);
        }
Exemplo n.º 2
0
        private ShedController ConfigureShedController(Transform placeForUi,
                                                       ProfilePlayer profilePlayer, IInventoryModel inventoryModel)
        {
            var upgradeItemsConfigCollection
                = ContentDataSourceLoader
                  .LoadUpgradeItemConfigs(new ResourcePath {
                PathResource = "DataSource/Upgrade/UpgradeItemConfigDataSource"
            });
            var upgradeItemsRepository
                = new UpgradeHandlersRepository(upgradeItemsConfigCollection);

            var itemsRepository
                = new ItemsRepository(upgradeItemsConfigCollection
                                      .Select(value => value.ItemConfig).ToList());

            //var inventoryModel
            //    = new InventoryModel();

            var inventoryView = _view.InventoryView;

            AddGameObjects(inventoryView.gameObject);
            var inventoryController
                = new InventoryController(itemsRepository, inventoryModel, inventoryView);

            AddController(inventoryController);

            var shedController
                = new ShedController(upgradeItemsRepository, inventoryController, profilePlayer.CurrentCar);

            AddController(shedController);

            return(shedController);
        }
Exemplo n.º 3
0
        private ShedController ConfigureShedController(Transform placeForUi, ProfilePlayer profilePlayer)
        {
            var upgradeItemsConfigCollection = ContentDataSourceLoader.LoadUpgradeItemConfigs(new ResourcePath {
                PathResource = "DataSource/Upgrade/UpgradeItemConfigDataSource"
            });
            var upgradeItemsRepository = new UpgradeHandlersRepository(upgradeItemsConfigCollection);

            var itemsRepository   = new ItemsRepository(upgradeItemsConfigCollection.Select(value => value.itemConfig).ToList());
            var inventoryModel    = new InventoryModel();
            var inventoryViewPath = new ResourcePath {
                PathResource = $"Prefabs/{nameof(InventoryView)}"
            };

            var inventoryView = ResourceLoader.LoadAndInstantiateObject <InventoryView>(inventoryViewPath, placeForUi, false);

            AddGameObjects(inventoryView.gameObject);

            var inventoryController = new InventoryController(itemsRepository, inventoryModel, inventoryView);

            AddController(inventoryController);

            var shedController = new ShedController(upgradeItemsRepository, inventoryController, profilePlayer.CurrentCar);

            AddController(shedController);

            return(shedController);
        }
Exemplo n.º 4
0
        private UpgradeHandlersRepository CreateItemsConfigs()
        {
            _upgradeItemsConfigCollection = ContentDataSourceLoader.LoadUpgradeItemConfigs(new ResourcePath
            {
                PathResource = "DataSource/Upgrade/UpgradeItemConfigDataSource"
            });

            return(new UpgradeHandlersRepository(_upgradeItemsConfigCollection));
        }
Exemplo n.º 5
0
        private IAbilitiesController ConfigureAbilityController(Transform placeForUi, IAbilityActivator abilityActivator, IReadOnlyList <IItem> items)
        {
            var abilityItemsConfigCollection = ContentDataSourceLoader.LoadAbilityItemConfigs(new ResourcePath {
                PathResource = "DataSource/Abilities/AbilityItemConfigDataSource"
            });
            var abilityRepository         = new AbilityRepository(abilityItemsConfigCollection);
            var abilityCollectionViewPath = new ResourcePath {
                PathResource = $"Prefabs/{nameof(AbilityCollectionView)}"
            };
            var abilityCollectionView = ResourceLoader.LoadAndInstantiateObject <AbilityCollectionView>(abilityCollectionViewPath, placeForUi, false);

            AddGameObjects(abilityCollectionView.gameObject);

            // загрузить в модель экипированные предметы можно любым способом
            var inventoryModel = new InventoryModel();

            inventoryModel.EquipItems(items);

            var abilitiesController = new AbilitiesController(abilityRepository, inventoryModel, abilityCollectionView, abilityActivator);

            AddController(abilitiesController);

            return(abilitiesController);
        }
Exemplo n.º 6
0
        private BaseController ConfigureAbilityController(Transform placeForUi, IAbilityActivator abilityActivator)
        {
            var abilityItemsConfigCollection
                = ContentDataSourceLoader.LoadAbilityItemConfigs(new ResourcePath {
                PathResource = "DataSource/Ability/AbilityItemConfigDataSource"
            });

            var abilityRepository
                = new AbilityRepository(abilityItemsConfigCollection);

            var abilityCollectionViewPath
                = new ResourcePath {
                PathResource = $"Prefabs/{nameof(AbilityCollectionView)}"
                };
            var abilityCollectionView =
                ResourceLoader.LoadAndInstantiateObject <AbilityCollectionView>(abilityCollectionViewPath, placeForUi, false);

            AddGameObjects(abilityCollectionView.gameObject);

            var abilityItemsRepository
                = new ItemsRepository(abilityItemsConfigCollection.Select(value => value.ItemConfig).ToList());

            var inventoryModel = new InventoryModel();

            foreach (var item in abilityItemsRepository.Collection.Values)
            {
                inventoryModel.EquipItem(item);
            }

            var abilitiesController = new AbilitiesController(abilityRepository, inventoryModel, abilityCollectionView,
                                                              abilityActivator);

            AddController(abilitiesController);

            return(abilitiesController);
        }