Esempio n. 1
0
        public PlanConsumableViewModel(IConsumableViewModel consumable)
        {
            Consumable = consumable;
            Quantity   = 1;

            consumable.PropertyChanged += (sender, args) =>
            {
                switch (args.PropertyName)
                {
                case "Calories":
                    OnPropertyChanged("Calories");
                    return;

                case "Cholesterol":
                    OnPropertyChanged("Cholesterol");
                    return;

                case "Sodium":
                    OnPropertyChanged("Sodium");
                    return;

                case "Protein":
                    OnPropertyChanged("Protein");
                    return;

                case "FatTotal":
                    OnPropertyChanged("FatTotal");
                    return;

                case "CarbohydrateTotal":
                    OnPropertyChanged("CarbohydrateTotal");
                    return;
                }
            };
        }
        private void InitializeEquipmentAndConsumableViewModels()
        {
            this.ModificationContext = new ModificationContext();
            this.LoadedEquipments    = new ObservableCollection <IEquipmentViewModel>();
            this.LoadedConsumables   = new ObservableCollection <IConsumableViewModel>();

            this.AvailableEquipments  = this.Tank.AvailableEquipments.ToDictionary(p => p.Value, p => (IEquipmentViewModel) new EquipmentViewModel(this.CommandBindings, p.Value, this));
            this.AvailableConsumables = this.Tank.AvailableConsumables.ToDictionary(p => p.Value, p => (IConsumableViewModel) new ConsumableViewModel(this.CommandBindings, p.Value, this));

            _removeEquipmentViewModel  = new RemoveEquipmentViewModel(this.CommandBindings, this);
            _removeConsumableViewModel = new RemoveConsumableViewModel(this.CommandBindings, this);
            _emptyEquipmentViewModel   = new EmptyEquipmentViewModel(this.CommandBindings, this);
            _emptyConsumableViewModel  = new EmptyConsumableViewModel(this.CommandBindings, this);

            for (int i = 0; i < MaxEquipmentCount; ++i)
            {
                this.LoadedEquipments.Add(_emptyEquipmentViewModel);
            }

            for (int i = 0; i < MaxConsumableCount; ++i)
            {
                this.LoadedConsumables.Add(_emptyConsumableViewModel);
            }

            this.HandleEquipmentsChangeEvents();
            this.HandleConsumablesChangeEvents();
        }
 internal void EquipConsumable(IConsumableViewModel consumable)
 {
     if (this.CurrentConsumableSlotIndex.HasValue)
     {
         this.EquipConsumable(this.CurrentConsumableSlotIndex.Value, consumable);
         this.CurrentConsumableSlotIndex = null;
     }
 }
Esempio n. 4
0
        private void loadDay(PlanDayViewModel day, PlanDaySaveModel save,
                             Dictionary <string, ConsumableViewModel> foods,
                             Dictionary <string, RecipeViewModel> recipes)
        {
            day.Meals.Clear();

            if (save == null)
            {
                return;
            }

            foreach (PlanMealSaveModel saveMeal in save.Meals)
            {
                PlanMealViewModel model = new PlanMealViewModel(mainViewModel, this, day)
                {
                    Name = saveMeal.Name,
                    Hour = saveMeal.Hour,
                    Min  = saveMeal.Min
                };
                foreach (PlanItemSaveModel item in saveMeal.Items)
                {
                    IConsumableViewModel consumable = null;
                    if (item.IsRecipe)
                    {
                        if (recipes.ContainsKey(item.Id))
                        {
                            consumable = recipes[item.Id];
                        }
                    }
                    else
                    {
                        if (foods.ContainsKey(item.Id))
                        {
                            consumable = foods[item.Id];
                        }
                    }
                    if (consumable == null)
                    {
                        continue;
                    }

                    var viewModel = new PlanConsumableViewModel(consumable)
                    {
                        Quantity = item.Quantity
                    };
                    model.Consumables.Add(viewModel);
                }
                day.Meals.Add(model);
            }
        }
        internal void RemoveConsumable(IConsumableViewModel consumable)
        {
            if (consumable == _emptyConsumableViewModel)
            {
                return;
            }

            var index = this.LoadedConsumables.IndexOf(consumable);

            if (index >= 0)
            {
                this.RemoveConsumable(index);
            }
        }
        internal void EquipConsumable(int index, IConsumableViewModel consumable)
        {
            if (consumable.IncompatibleTags != null)
            {
                for (int i = 0; i < this.LoadedConsumables.Count; ++i)
                {
                    foreach (var tag in this.LoadedConsumables[i].Tags)
                    {
                        if (consumable.IncompatibleTags.Contains(tag))
                        {
                            this.RemoveConsumable(this.LoadedConsumables[i]);
                        }
                    }
                }
            }

            this.LoadedConsumables[index] = consumable;
        }