Files
AetherBags/AetherBags/Addons/AddonCurrencyPicker.cs
T
2026-01-23 18:46:45 +01:00

28 lines
1.2 KiB
C#

using System;
using System.Linq;
using AetherBags.Currency;
using KamiToolKit.Premade.ListItemNodes;
using KamiToolKit.Premade.SearchAddons;
using Lumina.Excel.Sheets;
namespace AetherBags.Addons;
public class AddonCurrencyPicker : BaseSearchAddon<Item, ItemListItemNode> {
public AddonCurrencyPicker() {
var allItems = Services.DataManager.GetExcelSheet<Item>();
var obsoleteTomes = Services.DataManager.GetExcelSheet<TomestonesItem>()
.Where(t => t.Tomestones.RowId == 0)
.Select(t => t.Item.RowId).ToHashSet();
var currentTomestones = CurrencyState.GetCurrentTomestoneIds();
SearchOptions = allItems
.Where(i => (i.ItemUICategory.RowId == 100 || (i.RowId >= 1 && i.RowId < 100)) && !i.Name.IsEmpty)
.Where(i => !obsoleteTomes.Contains(i.RowId))
.Where(i => i.RowId != currentTomestones.Limited && i.RowId != currentTomestones.NonLimited)
.ToList();
}
protected override bool IsMatch(Item item, string search) => item.Name.ToString().Contains(search, StringComparison.OrdinalIgnoreCase);
protected override int Comparer(Item l, Item r, string s, bool rev) => string.CompareOrdinal(l.Name.ToString(), r.Name.ToString());
}