Add autocomplete for player title
This commit is contained in:
parent
0e3a54eeef
commit
128f2834fe
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<MudGrid>
|
<MudGrid>
|
||||||
<MudItem xs="12" md="8">
|
<MudItem xs="12" md="8">
|
||||||
<MudTextField @bind-Value="@response.Title" Label="Title"></MudTextField>
|
<MudAutocomplete @bind-Value="@response.Title" Label="Title" SearchFunc="@SearchForTitle" CoerceValue="true" MaxItems="@GameDataService.PLAYER_TITLE_MAX" />
|
||||||
</MudItem>
|
</MudItem>
|
||||||
<MudItem xs="12" md="4">
|
<MudItem xs="12" md="4">
|
||||||
<MudSelect @bind-Value="@response.TitlePlateId" Label="Title Plate">
|
<MudSelect @bind-Value="@response.TitlePlateId" Label="Title Plate">
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using MudBlazor.Utilities;
|
using MudBlazor.Utilities;
|
||||||
|
using static MudBlazor.Colors;
|
||||||
|
|
||||||
namespace TaikoWebUI.Pages;
|
namespace TaikoWebUI.Pages;
|
||||||
|
|
||||||
@ -72,4 +73,15 @@ public partial class Profile
|
|||||||
isSavingOptions = false;
|
isSavingOptions = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task<IEnumerable<string>> SearchForTitle(string value)
|
||||||
|
{
|
||||||
|
var titles = GameDataService.titleMap;
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(value))
|
||||||
|
{
|
||||||
|
return titles.Values;
|
||||||
|
}
|
||||||
|
|
||||||
|
return titles.Values.Where(x => x.Contains(value, StringComparison.OrdinalIgnoreCase));
|
||||||
|
}
|
||||||
}
|
}
|
@ -13,19 +13,22 @@ public class GameDataService : IGameDataService
|
|||||||
|
|
||||||
private ImmutableDictionary<uint, DanData> danMap = null!;
|
private ImmutableDictionary<uint, DanData> danMap = null!;
|
||||||
|
|
||||||
public const uint COSTUME_HEAD_MAX = 140;
|
public const int COSTUME_HEAD_MAX = 140;
|
||||||
public const uint COSTUME_FACE_MAX = 59;
|
public const int COSTUME_FACE_MAX = 59;
|
||||||
public const uint COSTUME_BODY_MAX = 156;
|
public const int COSTUME_BODY_MAX = 156;
|
||||||
public const uint COSTUME_KIGURUMI_MAX = 154;
|
public const int COSTUME_KIGURUMI_MAX = 154;
|
||||||
public const uint COSTUME_PUCHI_MAX = 129;
|
public const int COSTUME_PUCHI_MAX = 129;
|
||||||
public const uint COSTUME_COLOR_MAX = 63;
|
public const int COSTUME_COLOR_MAX = 63;
|
||||||
|
public const int PLAYER_TITLE_MAX = 749;
|
||||||
|
|
||||||
public static string[] headMap = new string[COSTUME_HEAD_MAX];
|
public static string[] headMap = new string[COSTUME_HEAD_MAX];
|
||||||
public static string[] faceMap = new string[COSTUME_FACE_MAX];
|
public static string[] faceMap = new string[COSTUME_FACE_MAX];
|
||||||
public static string[] bodyMap = new string[COSTUME_BODY_MAX];
|
public static string[] bodyMap = new string[COSTUME_BODY_MAX];
|
||||||
public static string[] kigurumiMap = new string[COSTUME_KIGURUMI_MAX];
|
public static string[] kigurumiMap = new string[COSTUME_KIGURUMI_MAX];
|
||||||
public static string[] puchiMap = new string[COSTUME_PUCHI_MAX];
|
public static string[] puchiMap = new string[COSTUME_PUCHI_MAX];
|
||||||
|
|
||||||
|
public static Dictionary<int, string> titleMap = new();
|
||||||
|
|
||||||
public GameDataService(HttpClient client)
|
public GameDataService(HttpClient client)
|
||||||
{
|
{
|
||||||
this.client = client;
|
this.client = client;
|
||||||
@ -118,6 +121,22 @@ public class GameDataService : IGameDataService
|
|||||||
var costumeWordlistItem = dict.GetValueOrDefault(key, new WordListEntry());
|
var costumeWordlistItem = dict.GetValueOrDefault(key, new WordListEntry());
|
||||||
puchiMap[index] = costumeWordlistItem.JapaneseText;
|
puchiMap[index] = costumeWordlistItem.JapaneseText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var i = 1; i < PLAYER_TITLE_MAX; i++)
|
||||||
|
{
|
||||||
|
var index = i;
|
||||||
|
var key = $"syougou_{index}";
|
||||||
|
|
||||||
|
var titleWordlistItem = dict.GetValueOrDefault(key, new WordListEntry());
|
||||||
|
|
||||||
|
// prevent duplicate values with different keys
|
||||||
|
if (titleMap.ContainsValue(titleWordlistItem.JapaneseText))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
titleMap.TryAdd(index, titleWordlistItem.JapaneseText);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetMusicNameBySongId(uint songId)
|
public string GetMusicNameBySongId(uint songId)
|
||||||
|
Loading…
Reference in New Issue
Block a user