Add Item Discard

This commit is contained in:
Zeffuro
2025-12-29 21:15:45 +01:00
parent 399c80d405
commit 9f1fb7f884
@@ -6,6 +6,7 @@ using AetherBags.Inventory;
using AetherBags.Nodes.Layout; using AetherBags.Nodes.Layout;
using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI;
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
using FFXIVClientStructs.FFXIV.Client.UI.Misc; using FFXIVClientStructs.FFXIV.Client.UI.Misc;
using FFXIVClientStructs.FFXIV.Component.GUI; using FFXIVClientStructs.FFXIV.Component.GUI;
using KamiToolKit.Classes; using KamiToolKit.Classes;
@@ -233,6 +234,7 @@ public class InventoryCategoryNode : SimpleComponentNode
Int2 = location.Slot, Int2 = location.Slot,
}, },
IsClickable = true, IsClickable = true,
OnDiscard = node => OnDiscard(node, data),
OnEnd = _ => System.AddonInventoryWindow.ManualInventoryRefresh(), OnEnd = _ => System.AddonInventoryWindow.ManualInventoryRefresh(),
OnPayloadAccepted = (node, payload) => OnPayloadAccepted(node, payload, data), OnPayloadAccepted = (node, payload) => OnPayloadAccepted(node, payload, data),
OnRollOver = node => OnRollOver = node =>
@@ -251,6 +253,12 @@ public class InventoryCategoryNode : SimpleComponentNode
}; };
} }
private unsafe void OnDiscard(DragDropNode node, ItemInfo item)
{
uint addonId = RaptureAtkUnitManager.Instance()->GetAddonByNode(node)->Id;
AgentInventoryContext.Instance()->DiscardItem(item.Item.GetLinkedItem(), item.Item.Container, item.Item.Slot, addonId);
}
private void OnPayloadAccepted(DragDropNode _, DragDropPayload payload, ItemInfo targetItemInfo) private void OnPayloadAccepted(DragDropNode _, DragDropPayload payload, ItemInfo targetItemInfo)
{ {
if (!payload.IsValidInventoryPayload) if (!payload.IsValidInventoryPayload)