示例#1
0
        private void CraftItem()
        {
            _audioController.PlayAudio(AudioClipType.ButtonClick);

            var activeItemKey = _craftMenuController.Scheme.Items.ActiveItem.ItemData.Key;
            var activeQuality = _craftMenuController.ActiveQuality;

            var index    = _productionController.IsHaveFreeCell();
            var product  = _productsController.GetProduct(activeItemKey);
            var craftObj = new ProductionObjectBuilder().Create(product, activeQuality, index);

            if (index == -1)
            {
                _smallNotificationFactory.Create(PopupType.DontHaveProductionCells);
                return;
            }

            if (!_productionController.IsEnoughParts(craftObj))
            {
                _smallNotificationFactory.Create(PopupType.DontHaveIngredients);
                return;
            }

            _productionController.StartProduction(craftObj);

            _craftMenuController.OnCreateClick?.Invoke();
            _timerController.SetRawTimers();
        }
        private void Start()
        {
            var jsonText = Resources.Load <TextAsset>(PathConstants.EmptySavePath).text;

            if (File.Exists(PathConstants.SavePath))
            {
                jsonText = File.ReadAllText(PathConstants.SavePath);
            }

            var startData = JsonConvert.DeserializeObject <FactoryLoadObject>(jsonText);

            _settingsController.LoadSettingsData(startData.settingsInfo);
            _musicController.LoadData(startData.settingsInfo.musicVolume);
            _audioController.LoadData(startData.settingsInfo.audioVolume);
            _localisationController.LoadLocalisationData();

            _headerSectionFactory.Create();
            _moneyController.LoadData(startData.moneyInfo);
            _levelController.LoadData(startData.levelInfo);

            _rawUiFactory.Create();
            _rawController.LoadRawData(startData.storesInfo.raw);
            _productsController.LoadItemsInfo(startData.storesInfo.products);
            _unitsController.LoadUnitsInfo(startData.unitsInfo);

            _productionSectionFactory.Create();
            _productionController.LoadStoreData(startData.productionInfo, GetComponent <MonoBehaviour>());

            _orderController.LoadOrCreateOrders(startData.ordersInfo);

            _timerController.SetRawTimers();

            _saveController.InitSave();
        }