Updated to Risa's changes
This commit is contained in:
@@ -6,20 +6,23 @@ using System.Collections.Frozen;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using CustomizePlus.GameData.ReverseSearchDictionaries.Bases;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Dalamud.Game.ClientState.Objects.Enums;
|
||||
|
||||
namespace CustomizePlus.GameData.ReverseSearchDictionaries;
|
||||
|
||||
#pragma warning disable SeStringEvaluator
|
||||
|
||||
/// <summary> A dictionary that matches names to battle npc ids. </summary>
|
||||
public sealed class ReverseSearchDictBNpc(IDalamudPluginInterface pluginInterface, Logger log, IDataManager gameData)
|
||||
: ReverseNameDictionary(pluginInterface, log, gameData, "ReverseSearchBNpcs", Penumbra.GameData.DataContainers.Version.DictBNpc, () => CreateBNpcData(gameData))
|
||||
public sealed class ReverseSearchDictBNpc(IDalamudPluginInterface pluginInterface, Logger log, IDataManager gameData, ISeStringEvaluator evaluator)
|
||||
: ReverseNameDictionary(pluginInterface, log, gameData, "ReverseSearchBNpcs", Penumbra.GameData.DataContainers.Version.DictBNpc, () => CreateBNpcData(gameData, evaluator))
|
||||
{
|
||||
/// <summary> Create the data. </summary>
|
||||
private static IReadOnlyDictionary<string, uint> CreateBNpcData(IDataManager gameData)
|
||||
private static IReadOnlyDictionary<string, uint> CreateBNpcData(IDataManager gameData, ISeStringEvaluator evaluator)
|
||||
{
|
||||
var sheet = gameData.GetExcelSheet<BNpcName>(gameData.Language)!;
|
||||
var dict = new Dictionary<string, uint>((int)sheet.Count);
|
||||
foreach (var n in sheet.Where(n => n.Singular.ByteLength > 0))
|
||||
dict.TryAdd(DataUtility.ToTitleCaseExtended(n.Singular, (Dalamud.Game.ClientLanguage)n.Article), n.RowId);
|
||||
dict.TryAdd(evaluator.EvaluateObjStr(ObjectKind.BattleNpc, n.RowId, gameData.Language), n.RowId);
|
||||
return dict.ToFrozenDictionary();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user