2025-06-11 02:49:11 -07:00

49 lines
1.1 KiB
C#

using AssetRipper.Numerics;
using AssetRipper.SourceGenerated.Subclasses.ColorRGBA32;
namespace AssetRipper.SourceGenerated.Extensions;
public static class ColorRGBA32Extensions
{
extension(ColorRGBA32 color)
{
public void SetValues(byte r, byte g, byte b, byte a)
{
color.Rgba = unchecked((uint)(r | g << 8 | b << 16 | a << 24));
}
public void SetAsBlack() => color.SetValues(byte.MinValue, byte.MinValue, byte.MinValue, byte.MaxValue);
public void SetAsWhite() => color.SetValues(uint.MaxValue);
public byte R
{
get => unchecked((byte)color.Rgba);
set => color.SetValues(value, color.G, color.B, color.A);
}
public byte G
{
get => unchecked((byte)(color.Rgba >> 8));
set => color.SetValues(color.R, value, color.B, color.A);
}
public byte B
{
get => unchecked((byte)(color.Rgba >> 16));
set => color.SetValues(color.R, color.G, value, color.A);
}
public byte A
{
get => unchecked((byte)(color.Rgba >> 24));
set => color.SetValues(color.R, color.G, color.B, value);
}
public ColorFloat ToColorFloat()
{
return (ColorFloat)Color32.FromRgba(color.Rgba);
}
}
}