using System.Collections.Immutable; using NahidaImpact.Common.Data.Excel; namespace NahidaImpact.Common.Data; public class DataHelper { private readonly ImmutableDictionary _avatarNameToIdTable; public DataHelper(ExcelTableCollection excelTables) { _avatarNameToIdTable = BuildAvatarNameToIdTable(excelTables); } public bool TryResolveAvatarIdByName(string avatarName, out uint id) { return _avatarNameToIdTable.TryGetValue(avatarName, out id); } private static ImmutableDictionary BuildAvatarNameToIdTable(ExcelTableCollection excelTables) { ImmutableDictionary.Builder builder = ImmutableDictionary.CreateBuilder(); ExcelTable avatarTable = excelTables.GetTable(ExcelType.Avatar); for (int i = 0; i < avatarTable.Count; i++) { AvatarExcel excel = avatarTable.GetItemAt(i); string avatarName = excel.IconName[(excel.IconName.LastIndexOf('_') + 1)..]; builder.TryAdd(avatarName, excel.Id); } return builder.ToImmutable(); } }