Files
@ 5e28ba3945f7
Branch filter:
Location: ATITD-Tools/Desert-Paint-Codex/Converters/PaintToBrushConverter.cs - annotation
5e28ba3945f7
1.3 KiB
text/x-csharp
Recipe count is now a ulong instead of an int so it can show values > 2.47 billion. Also, don't allow clearing the recipe list while the recipe generator is running.
40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 | using System;
using System.Collections.Generic;
using System.Globalization;
using Avalonia.Data.Converters;
using Avalonia.Media;
using DesertPaintCodex.Models;
namespace DesertPaintCodex.Converters
{
/// <summary>
/// Converts PaintColor to a SolidColorBrush.
/// </summary>
public class PaintToBrushConverter : IValueConverter
{
private static readonly SolidColorBrush NoColor = new();
private static readonly Dictionary<PaintColor, SolidColorBrush> BrushPool = new();
/// <inheritdoc/>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is not PaintColor paintColor) return NoColor;
if (BrushPool.TryGetValue(paintColor, out SolidColorBrush? brush)) return brush;
brush = new SolidColorBrush(new Color(0xFF, paintColor.Red, paintColor.Green, paintColor.Blue));
BrushPool.Add(paintColor, brush);
return brush;
}
/// <inheritdoc/>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is not SolidColorBrush brush) return new PaintColor(0, 0, 0);
Color color = brush.Color;
return new PaintColor(color.R, color.G, color.B);
}
}
}
|