mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 01:08:26 -04:00
52 lines
1.4 KiB
C#
52 lines
1.4 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using SixLabors.ImageSharp.PixelFormats;
|
|
using YamlDotNet.Core;
|
|
using YamlDotNet.Core.Events;
|
|
using YamlDotNet.Serialization;
|
|
|
|
namespace NadekoBot.Common.Yml
|
|
{
|
|
public class Rgba32Converter : IYamlTypeConverter
|
|
{
|
|
public bool Accepts(Type type)
|
|
{
|
|
return type == typeof(Rgba32);
|
|
}
|
|
|
|
public object ReadYaml(IParser parser, Type type)
|
|
{
|
|
var scalar = parser.Consume<Scalar>();
|
|
var result = Rgba32.ParseHex(scalar.Value);
|
|
return result;
|
|
}
|
|
|
|
public void WriteYaml(IEmitter emitter, object value, Type type)
|
|
{
|
|
var color = (Rgba32)value;
|
|
var val = (uint) (color.B << 0 | color.G << 8 | color.R << 16);
|
|
emitter.Emit(new Scalar(val.ToString("X6").ToLower()));
|
|
}
|
|
}
|
|
|
|
public class CultureInfoConverter : IYamlTypeConverter
|
|
{
|
|
public bool Accepts(Type type)
|
|
{
|
|
return type == typeof(CultureInfo);
|
|
}
|
|
|
|
public object ReadYaml(IParser parser, Type type)
|
|
{
|
|
var scalar = parser.Consume<Scalar>();
|
|
var result = new CultureInfo(scalar.Value);
|
|
return result;
|
|
}
|
|
|
|
public void WriteYaml(IEmitter emitter, object value, Type type)
|
|
{
|
|
var ci = (CultureInfo)value;
|
|
emitter.Emit(new Scalar(ci.Name));
|
|
}
|
|
}
|
|
} |