qstbak/LLib/LLib.Gear/ExtendedBaseParam.cs
2025-10-09 07:47:19 +10:00

37 lines
1 KiB
C#

using Lumina.Excel;
using Lumina.Excel.Sheets;
namespace LLib.Gear;
[Sheet("BaseParam")]
public readonly struct ExtendedBaseParam : IExcelRow<ExtendedBaseParam>
{
private const int ParamCount = 23;
public uint RowId => _003Crow_003EP;
public BaseParam BaseParam => new BaseParam(_003Cpage_003EP, _003Coffset_003EP, _003Crow_003EP);
public unsafe Collection<ushort> EquipSlotCategoryPct => new Collection<ushort>(_003Cpage_003EP, _003Coffset_003EP, _003Coffset_003EP, (delegate*<ExcelPage, uint, uint, uint, ushort>)(&EquipSlotCategoryPctCtor), 23);
public ExtendedBaseParam(ExcelPage page, uint offset, uint row)
{
_003Cpage_003EP = page;
_003Coffset_003EP = offset;
_003Crow_003EP = row;
}
private static ushort EquipSlotCategoryPctCtor(ExcelPage page, uint parentOffset, uint offset, uint i)
{
if (i != 0)
{
return page.ReadUInt16(offset + 8 + (i - 1) * 2);
}
return 0;
}
public static ExtendedBaseParam Create(ExcelPage page, uint offset, uint row)
{
return new ExtendedBaseParam(page, offset, row);
}
}