private void PrepareData()
        {
            var date = DateTime.Today;
            var key  = date.Month + "/" + date.Year;
            var dict = LWData.current.FlowerDictionary;

            if (!dict.ContainsKey(key))
            {
                dict.Add(key, new List <LWData.FlowerMonth>());
                var days = DateTime.DaysInMonth(date.Year, date.Month);
                for (var day = 0; day < days; day++)
                {
                    var flower = new LWData.FlowerMonth {
                        Date = date.Month + "/" + (day + 1) + "/" + date.Year
                    };
                    dict[key].Add(flower);
                }

                LWData.current.FlowerDictionary = dict;
            }

            if (string.IsNullOrEmpty(LWData.current.MainFlower))
            {
                LWData.current.MainFlower = date.ToShortDateString();
            }
        }
        private IEnumerator ChangeShelf(int year, int month)
        {
            var tempDate = new DateTime(year, month, 1);

            _titleText.text  = tempDate.ToString("MMMM") + " " + year;
            _isTransitioning = true;
            //var flowerList =
            if (_flowerGroupContainer.childCount > 0)
            {
                CleanShelf();
            }

            while (_flowerGroupContainer.childCount > 0)
            {
                yield return(null);
            }

            var days   = DateTime.DaysInMonth(year, month);
            var key    = tempDate.Month + "/" + tempDate.Year;
            var hasKey = LWData.current.FlowerDictionary.ContainsKey(key);

            if (!hasKey)
            {
                var dict = LWData.current.FlowerDictionary;
                dict.Add(key, new List <LWData.FlowerMonth>());
                LWData.current.FlowerDictionary = dict;
            }

            for (var day = 0; day < days; day++)
            {
                var index = day % 3;
                if (index == 0)
                {
                    var flower = Instantiate(_flowerGroupPrefab, _flowerGroupContainer);
                    _flowerGroups.Add(flower);
                }

                var groupIndex    = Mathf.FloorToInt(day / _columns);
                var currentFlower = _flowerGroups[groupIndex];
                currentFlower.GetPlant(index).DateTag.text = month + "/" + (day + 1);
                if (!hasKey)
                {
                    var flower = new LWData.FlowerMonth();
                    flower.Date = tempDate.Month + "/" + (day + 1) + "/" + tempDate.Year;
                    LWData.current.FlowerDictionary[key].Add(flower);
                    var empty = new[] { _emptyPot, _emptyPot };
                    currentFlower.SetPlant(index, empty);
                    currentFlower.SetDate(index, tempDate.Month + "/" + (day + 1) + "/" + tempDate.Year);
                }
                else
                {
                    var data = LWData.current.FlowerDictionary[key][day];
                    if (data.PlantIndex == -1)
                    {
                        var empty = new[] { _emptyPot, _emptyPot };
                        currentFlower.SetPlant(index, empty);
                        currentFlower.SetDate(index, tempDate.Month + "/" + (day + 1) + "/" + tempDate.Year);
                        continue;
                    }

                    var sprites     = LWResourceManager.Sprites[data.PlantIndex];
                    var spriteIndex = data.SpriteIndex * 2;
                    var sprite      = new[] { sprites[spriteIndex], sprites[spriteIndex + 1] };
                    _flowerGroups[groupIndex].SetPlant(index, sprite);
                    _flowerGroups[groupIndex].SetDate(index, tempDate.Month + "/" + (day + 1) + "/" + tempDate.Year);
                }
            }

            _isTransitioning = false;
        }