Files
AetherBags/KamiToolKit/Timelines/NodeTint.cs
T
KnackAtNite 8db4ce6094
Debug Build and Test / Build against Latest Dalamud (push) Has been cancelled
Debug Build and Test / Build against Staging Dalamud (push) Has been cancelled
Initial commit: AetherBags + KamiToolKit for FC Gitea
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 14:46:31 -05:00

32 lines
1.0 KiB
C#

using System.Numerics;
using FFXIVClientStructs.FFXIV.Client.Graphics;
using FFXIVClientStructs.FFXIV.Component.GUI;
namespace KamiToolKit.Timelines;
public class NodeTint {
public Vector3 AddColor;
public Vector3 MultiplyColor;
public static implicit operator AtkTimelineNodeTint(NodeTint tint) => new() {
MultiplyRGB = new ByteColor {
R = (byte)tint.MultiplyColor.X, G = (byte)tint.MultiplyColor.Y, B = (byte)tint.MultiplyColor.Z,
},
AddRGBBitfield = Convert(tint.AddColor),
};
public static implicit operator NodeTint(AtkTimelineNodeTint tint) => new() {
AddColor = new Vector3(tint.AddR, tint.AddG, tint.AddB), MultiplyColor = tint.MultiplyRGB.ToVector4().AsVector3(),
};
private static uint Convert(Vector3 color) {
var red = (short)(color.X + 255);
var green = (short)(color.Y + 255);
var blue = (short)(color.Z + 255);
return (uint)(red & 0x3FF | (green & 0xFFF) << 10 | (blue & 0x3FF) << 22);
}
}