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
+78
View File
@@ -0,0 +1,78 @@
using System.Numerics;
using FFXIVClientStructs.FFXIV.Component.GUI;
using KamiToolKit.Classes;
namespace KamiToolKit.Nodes;
public unsafe class NineGridNode : NodeBase<AtkNineGridNode> {
public readonly PartsList PartsList;
public NineGridNode() : base(NodeType.NineGrid) {
PartsList = new PartsList();
Node->PartsList = PartsList.InternalPartsList;
}
protected override void Dispose(bool disposing, bool isNativeDestructor) {
if (disposing) {
if (!isNativeDestructor) {
PartsList.Dispose();
Node->PartsList = null;
}
base.Dispose(disposing, isNativeDestructor);
}
}
public uint PartId {
get => Node->PartId;
set => Node->PartId = value;
}
public Vector4 Offsets {
get => new(Node->TopOffset, Node->BottomOffset, Node->LeftOffset, Node->RightOffset);
set {
Node->TopOffset = (short)value.X;
Node->BottomOffset = (short)value.Y;
Node->LeftOffset = (short)value.Z;
Node->RightOffset = (short)value.W;
}
}
public float TopOffset {
get => Node->TopOffset;
set => Node->TopOffset = (short)value;
}
public float BottomOffset {
get => Node->BottomOffset;
set => Node->BottomOffset = (short)value;
}
public float LeftOffset {
get => Node->LeftOffset;
set => Node->LeftOffset = (short)value;
}
public float RightOffset {
get => Node->RightOffset;
set => Node->RightOffset = (short)value;
}
public uint BlendMode {
get => Node->BlendMode;
set => Node->BlendMode = value;
}
public byte PartsRenderType {
get => Node->PartsTypeRenderType;
set => Node->PartsTypeRenderType = value;
}
public AtkUldPart* AddPart(Part part)
=> PartsList.Add(part);
public void AddPart(params Part[] parts)
=> PartsList.Add(parts);
}