mirror of
https://github.com/AssetRipper/AssetRipper.TextureDecoder.git
synced 2026-11-13 12:41:27 -10:00
Generic color struct constructors
This commit is contained in:
1 parent
548d5e8aec
commit
c16bec4431
6 files changed
+86
No files matched your search
@@ -164,6 +164,8 @@ internal static partial class Program
|
||||
WriteProperty(writer, hasAlpha, typeName, 'A', maxValue);
|
||||
writer.WriteLineNoTabs();
|
||||
|
||||
WriteConstructor(writer, name, hasRed, hasGreen, hasBlue, hasAlpha, typeName);
|
||||
writer.WriteLineNoTabs();
|
||||
WriteGetChannels(writer, typeName);
|
||||
writer.WriteLineNoTabs();
|
||||
WriteSetChannels(writer, typeName, hasRed, hasGreen, hasBlue, hasAlpha);
|
||||
@@ -174,6 +176,59 @@ internal static partial class Program
|
||||
}
|
||||
}
|
||||
|
||||
private static void WriteConstructor(IndentedTextWriter writer, string declaringTypeName, bool hasRed, bool hasGreen, bool hasBlue, bool hasAlpha, string channelTypeName)
|
||||
{
|
||||
writer.Write($"public {declaringTypeName}(");
|
||||
if (hasRed)
|
||||
{
|
||||
writer.Write($"{channelTypeName} r");
|
||||
if (hasGreen || hasBlue || hasAlpha)
|
||||
{
|
||||
writer.Write(", ");
|
||||
}
|
||||
}
|
||||
if (hasGreen)
|
||||
{
|
||||
writer.Write($"{channelTypeName} g");
|
||||
if (hasBlue || hasAlpha)
|
||||
{
|
||||
writer.Write(", ");
|
||||
}
|
||||
}
|
||||
if (hasBlue)
|
||||
{
|
||||
writer.Write($"{channelTypeName} b");
|
||||
if (hasAlpha)
|
||||
{
|
||||
writer.Write(", ");
|
||||
}
|
||||
}
|
||||
if (hasAlpha)
|
||||
{
|
||||
writer.Write($"{channelTypeName} a");
|
||||
}
|
||||
writer.WriteLine(")");
|
||||
using (new CurlyBrackets(writer))
|
||||
{
|
||||
if (hasRed)
|
||||
{
|
||||
writer.WriteLine("R = r;");
|
||||
}
|
||||
if (hasGreen)
|
||||
{
|
||||
writer.WriteLine("G = g;");
|
||||
}
|
||||
if (hasBlue)
|
||||
{
|
||||
writer.WriteLine("B = b;");
|
||||
}
|
||||
if (hasAlpha)
|
||||
{
|
||||
writer.WriteLine("A = a;");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void WriteGetChannels(IndentedTextWriter writer, string typeName)
|
||||
{
|
||||
writer.WriteLine($"public readonly void GetChannels(out {typeName} r, out {typeName} g, out {typeName} b, out {typeName} a)");
|
||||
|
||||
Reference in new issue
Block a user