79 lines
2.7 KiB
C#
79 lines
2.7 KiB
C#
using System.Numerics;
|
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
|
using KamiToolKit.Classes;
|
|
using KamiToolKit.Nodes;
|
|
using Lumina.Excel.Sheets;
|
|
|
|
namespace KamiToolKit.Premade.ListItemNodes;
|
|
|
|
public class ItemListItemNode : ListItemNode<Item> {
|
|
public override float ItemHeight => 32.0f;
|
|
|
|
protected readonly IconImageNode IconNode;
|
|
protected readonly TextNode LabelTextNode;
|
|
protected readonly TextNode SubLabelTextNode;
|
|
protected readonly TextNode IdTextNode;
|
|
|
|
public ItemListItemNode() {
|
|
IconNode = new IconImageNode {
|
|
FitTexture = true,
|
|
IconId = 60072,
|
|
};
|
|
IconNode.AttachNode(this);
|
|
|
|
LabelTextNode = new TextNode {
|
|
TextFlags = TextFlags.Ellipsis | TextFlags.Emboss,
|
|
FontSize = 14,
|
|
LineSpacing = 14,
|
|
AlignmentType = AlignmentType.BottomLeft,
|
|
TextColor = ColorHelper.GetColor(8),
|
|
TextOutlineColor = ColorHelper.GetColor(7),
|
|
};
|
|
LabelTextNode.AttachNode(this);
|
|
|
|
SubLabelTextNode = new TextNode {
|
|
TextFlags = TextFlags.Ellipsis | TextFlags.Emboss,
|
|
FontSize = 12,
|
|
LineSpacing = 12,
|
|
AlignmentType = AlignmentType.TopLeft,
|
|
TextColor = ColorHelper.GetColor(3),
|
|
TextOutlineColor = ColorHelper.GetColor(7),
|
|
};
|
|
SubLabelTextNode.AttachNode(this);
|
|
|
|
IdTextNode = new TextNode {
|
|
TextFlags = TextFlags.Emboss,
|
|
FontSize = 10,
|
|
AlignmentType = AlignmentType.BottomRight,
|
|
TextColor = ColorHelper.GetColor(3),
|
|
};
|
|
IdTextNode.AttachNode(this);
|
|
|
|
CollisionNode.ShowClickableCursor = true;
|
|
}
|
|
|
|
protected override void OnSizeChanged() {
|
|
base.OnSizeChanged();
|
|
|
|
IconNode.Size = new Vector2(Height - 4.0f, Height - 4.0f);
|
|
IconNode.Position = new Vector2(2.0f, 2.0f);
|
|
|
|
LabelTextNode.Size = new Vector2(Width - Height - 2.0f - 30.0f, Height / 2.0f);
|
|
LabelTextNode.Position = new Vector2(Height + 2.0f, 0.0f);
|
|
|
|
SubLabelTextNode.Size = new Vector2(Width - Height - 2.0f - 10.0f, Height / 2.0f);
|
|
SubLabelTextNode.Position = new Vector2(Height + 2.0f + 10.0f, Height / 2.0f);
|
|
|
|
IdTextNode.Size = new Vector2(30.0f, Height / 2.0f);
|
|
IdTextNode.Position = new Vector2(Width - 30.0f, 0.0f);
|
|
}
|
|
|
|
protected override void SetNodeData(Item itemData) {
|
|
if (itemData.RowId is 0) return;
|
|
|
|
IconNode.IconId = itemData.Icon;
|
|
LabelTextNode.String = itemData.Name.ToString();
|
|
SubLabelTextNode.String = itemData.ItemSearchCategory.ValueNullable?.Name.ToString() ?? string.Empty;
|
|
}
|
|
}
|