Initial commit: AetherBags + KamiToolKit for FC Gitea
Debug Build and Test / Build against Latest Dalamud (push) Has been cancelled
Debug Build and Test / Build against Staging Dalamud (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-08 14:46:31 -05:00
commit 8db4ce6094
375 changed files with 34124 additions and 0 deletions
@@ -0,0 +1,77 @@
using System.Drawing;
using System.Numerics;
using Dalamud.Interface;
using FFXIVClientStructs.FFXIV.Component.GUI;
using KamiToolKit.Timelines;
namespace KamiToolKit.Nodes;
public unsafe class TextInputButtonNode : ButtonBase {
public readonly NineGridNode BackgroundNode;
public readonly TextNode LabelNode;
public TextInputButtonNode() {
BackgroundNode = new SimpleNineGridNode {
Size = new Vector2(160.0f, 24.0f),
LeftOffset = 16.0f,
RightOffset = 1.0f,
NodeFlags = NodeFlags.Visible | NodeFlags.Enabled | NodeFlags.Fill | NodeFlags.EmitsEvents,
TexturePath = "ui/uld/ListItemA.tex",
TextureCoordinates = new Vector2(0.0f, 22.0f),
TextureSize = new Vector2(63.0f, 22.0f),
};
BackgroundNode.AttachNode(this);
LabelNode = new TextNode {
Position = new Vector2(12.0f, 2.0f),
Size = new Vector2(140.0f, 18.0f),
NodeFlags = NodeFlags.Visible | NodeFlags.Enabled | NodeFlags.EmitsEvents,
AlignmentType = AlignmentType.Left,
TextFlags = TextFlags.AutoAdjustNodeSize,
TextColor = KnownColor.White.Vector(),
TextOutlineColor = KnownColor.White.Vector(),
BackgroundColor = KnownColor.Black.Vector(),
};
LabelNode.AttachNode(this);
Data->Nodes[0] = LabelNode.NodeId;
Data->Nodes[1] = BackgroundNode.NodeId;
LoadTimeline();
InitializeComponentEvents();
}
private void LoadTimeline() {
AddTimeline(new TimelineBuilder()
.BeginFrameSet(1, 59)
.AddLabelPair(1, 9, 1)
.AddLabelPair(10, 19, 2)
.AddLabelPair(20, 29, 3)
.AddLabelPair(30, 39, 7)
.AddLabelPair(40, 49, 6)
.AddLabelPair(50, 59, 4)
.EndFrameSet()
.Build());
BackgroundNode.AddTimeline(new TimelineBuilder()
.BeginFrameSet(10, 19)
.AddFrame(10, alpha: 0)
.AddFrame(13, alpha: 255)
.EndFrameSet()
.AddFrameSetWithFrame(20, 29, 20, alpha: 255)
.AddFrameSetWithFrame(40, 49, 40, alpha: 255)
.BeginFrameSet(50, 59)
.AddFrame(50, alpha: 255)
.AddFrame(52, alpha: 0)
.EndFrameSet()
.Build());
LabelNode.AddTimeline(new TimelineBuilder()
.AddFrameSetWithFrame(1, 29, 1, alpha: 255, multiplyColor: new Vector3(100.0f))
.AddFrameSetWithFrame(30, 39, 30, alpha: 153, multiplyColor: new Vector3(80.0f))
.AddFrameSetWithFrame(40, 59, 40, alpha: 255, multiplyColor: new Vector3(100.0f))
.Build());
}
}