using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Text;
using JetBrains.Annotations;
namespace DesertPaintCodex.Models
{
public class GeneratorRecipe : INotifyPropertyChanged
{
private PaintColor _color;
public PaintColor Color { get => _color; set { _color = value; NotifyPropertyChanged(nameof(Color)); } }
private string _recipe = "";
public string Recipe { get => _recipe; set { _recipe = value; NotifyPropertyChanged(nameof(Recipe)); } }
public GeneratorRecipe(PaintColor color)
{
_color = color;
}
public void DraftRecipe(PaintRecipe recipe)
{
StringBuilder sb = new();
for (int i = 0; i < recipe.Reagents.Count; i++)
{
sb.Append(recipe.Reagents[i].Quantity);
sb.Append(' ');
sb.Append(recipe.Reagents[i].Name);
if (i != recipe.Reagents.Count - 1)
{
sb.Append(", ");
}
}
Recipe = sb.ToString();
}
public void ClearRecipe()
{
Recipe = "";
}
public event PropertyChangedEventHandler? PropertyChanged;
[NotifyPropertyChangedInvocator]
private void NotifyPropertyChanged([CallerMemberName] string? propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}