Add compatibility with GI 4.0

This commit is contained in:
DismissedLight
2023-07-12 10:33:29 +08:00
parent f1a2a828c8
commit 72be37834d
5 changed files with 20 additions and 5 deletions

View File

@@ -69,7 +69,7 @@ internal sealed class DescriptionTextBlock : ContentControl
for (int i = 0; i < description.Length;) for (int i = 0; i < description.Length;)
{ {
// newline // newline
if (description.Slice(i, 2) is @"\n") if (description[i..].IndexOf(@"\n") is 0)
{ {
AppendText(text, description[last..i]); AppendText(text, description[last..i]);
AppendLineBreak(text); AppendLineBreak(text);
@@ -78,7 +78,7 @@ internal sealed class DescriptionTextBlock : ContentControl
} }
// color tag // color tag
else if (description.Slice(i, 2) is "<c") else if (description[i..].IndexOf("<c") is 0)
{ {
AppendText(text, description[last..i]); AppendText(text, description[last..i]);
Rgba32 color = new(description.Slice(i + 8, 8).ToString()); Rgba32 color = new(description.Slice(i + 8, 8).ToString());
@@ -90,7 +90,7 @@ internal sealed class DescriptionTextBlock : ContentControl
} }
// italic // italic
else if (description.Slice(i, 2) is "<i") else if (description[i..].IndexOf("<i") is 0)
{ {
AppendText(text, description[last..i]); AppendText(text, description[last..i]);

View File

@@ -15,8 +15,13 @@ internal sealed class FeatureOptions : IReadOnlyCollection<Feature>
/// </summary> /// </summary>
public Feature IsDailyNoteSilentVerificationEnabled { get; } = new("IsDailyNoteSilentVerificationEnabled", "启用实时便笺无感验证", "IsDailyNoteSilentVerificationEnabled", true); public Feature IsDailyNoteSilentVerificationEnabled { get; } = new("IsDailyNoteSilentVerificationEnabled", "启用实时便笺无感验证", "IsDailyNoteSilentVerificationEnabled", true);
/// <summary>
/// 元数据检查是否忽略
/// </summary>
public Feature IsMetadataUpdateCheckSuppressed { get; } = new("IsMetadataUpdateCheckSuppressed", "禁用元数据更新检查", "IsMetadataUpdateCheckSuppressed", false);
/// <inheritdoc/> /// <inheritdoc/>
public int Count { get => 1; } public int Count { get => 2; }
/// <inheritdoc/> /// <inheritdoc/>
public IEnumerator<Feature> GetEnumerator() public IEnumerator<Feature> GetEnumerator()

View File

@@ -18,6 +18,11 @@ internal sealed class ItemIconConverter : ValueConverter<string, Uri>
/// <returns>链接</returns> /// <returns>链接</returns>
public static Uri IconNameToUri(string name) public static Uri IconNameToUri(string name)
{ {
if (string.IsNullOrEmpty(name))
{
return default!;
}
return name.StartsWith("UI_RelicIcon_") return name.StartsWith("UI_RelicIcon_")
? RelicIconConverter.IconNameToUri(name) ? RelicIconConverter.IconNameToUri(name)
: Web.HutaoEndpoints.StaticFile("ItemIcon", $"{name}.png").ToUri(); : Web.HutaoEndpoints.StaticFile("ItemIcon", $"{name}.png").ToUri();

View File

@@ -13,6 +13,11 @@ namespace Snap.Hutao.Model.Metadata.Item;
/// </summary> /// </summary>
internal sealed class Material : DisplayItem internal sealed class Material : DisplayItem
{ {
public static readonly Material Default = new()
{
Name = "",
};
/// <summary> /// <summary>
/// 材料类型 /// 材料类型
/// </summary> /// </summary>

View File

@@ -111,7 +111,7 @@ internal sealed partial class WikiAvatarViewModel : Abstraction.ViewModel
{ {
avatar.Collocation = idCollocations.GetValueOrDefault(avatar.Id); avatar.Collocation = idCollocations.GetValueOrDefault(avatar.Id);
avatar.CookBonusView ??= CookBonusView.Create(avatar.FetterInfo.CookBonus, idMaterialMap); avatar.CookBonusView ??= CookBonusView.Create(avatar.FetterInfo.CookBonus, idMaterialMap);
avatar.CultivationItemsView ??= avatar.CultivationItems.SelectList(i => idMaterialMap[i]); avatar.CultivationItemsView ??= avatar.CultivationItems.SelectList(i => idMaterialMap.GetValueOrDefault(i, Material.Default)!);
} }
} }
} }