增加运行时标识
This commit is contained in:
@@ -18,7 +18,7 @@ namespace SpineViewer.Dialogs
|
|||||||
public BatchOpenSpineDialog()
|
public BatchOpenSpineDialog()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
comboBox_Version.DataSource = VersionHelper.Versions.ToList();
|
comboBox_Version.DataSource = VersionHelper.Names.ToList();
|
||||||
comboBox_Version.DisplayMember = "Value";
|
comboBox_Version.DisplayMember = "Value";
|
||||||
comboBox_Version.ValueMember = "Key";
|
comboBox_Version.ValueMember = "Key";
|
||||||
comboBox_Version.SelectedValue = Spine.Version.Auto;
|
comboBox_Version.SelectedValue = Spine.Version.Auto;
|
||||||
@@ -61,7 +61,7 @@ namespace SpineViewer.Dialogs
|
|||||||
|
|
||||||
if (version != Spine.Version.Auto && !Spine.Spine.ImplementedVersions.Contains(version))
|
if (version != Spine.Version.Auto && !Spine.Spine.ImplementedVersions.Contains(version))
|
||||||
{
|
{
|
||||||
MessageBox.Show($"{version.String()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show($"{version.GetName()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace SpineViewer.Dialogs
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
// XXX: 文件格式转换暂时不支持自动检测版本
|
// XXX: 文件格式转换暂时不支持自动检测版本
|
||||||
var impVersions = VersionHelper.Versions.ToDictionary();
|
var impVersions = VersionHelper.Names.ToDictionary();
|
||||||
impVersions.Remove(Spine.Version.Auto);
|
impVersions.Remove(Spine.Version.Auto);
|
||||||
|
|
||||||
comboBox_SourceVersion.DataSource = impVersions.ToList();
|
comboBox_SourceVersion.DataSource = impVersions.ToList();
|
||||||
@@ -77,13 +77,13 @@ namespace SpineViewer.Dialogs
|
|||||||
|
|
||||||
if (!SkeletonConverter.ImplementedVersions.Contains(sourceVersion))
|
if (!SkeletonConverter.ImplementedVersions.Contains(sourceVersion))
|
||||||
{
|
{
|
||||||
MessageBox.Show($"{sourceVersion.String()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show($"{sourceVersion.GetName()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!SkeletonConverter.ImplementedVersions.Contains(targetVersion))
|
if (!SkeletonConverter.ImplementedVersions.Contains(targetVersion))
|
||||||
{
|
{
|
||||||
MessageBox.Show($"{targetVersion.String()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show($"{targetVersion.GetName()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace SpineViewer.Dialogs
|
|||||||
public OpenSpineDialog()
|
public OpenSpineDialog()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
comboBox_Version.DataSource = VersionHelper.Versions.ToList();
|
comboBox_Version.DataSource = VersionHelper.Names.ToList();
|
||||||
comboBox_Version.DisplayMember = "Value";
|
comboBox_Version.DisplayMember = "Value";
|
||||||
comboBox_Version.ValueMember = "Key";
|
comboBox_Version.ValueMember = "Key";
|
||||||
comboBox_Version.SelectedValue = Spine.Version.Auto;
|
comboBox_Version.SelectedValue = Spine.Version.Auto;
|
||||||
@@ -78,7 +78,7 @@ namespace SpineViewer.Dialogs
|
|||||||
|
|
||||||
if (version != Spine.Version.Auto && !Spine.Spine.ImplementedVersions.Contains(version))
|
if (version != Spine.Version.Auto && !Spine.Spine.ImplementedVersions.Contains(version))
|
||||||
{
|
{
|
||||||
MessageBox.Show($"{version.String()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show($"{version.GetName()} 版本尚未实现(咕咕咕~)", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace SpineViewer.Spine
|
|||||||
if (destinationType == typeof(string) && value is Version version)
|
if (destinationType == typeof(string) && value is Version version)
|
||||||
{
|
{
|
||||||
// 调用自定义的 String() 方法
|
// 调用自定义的 String() 方法
|
||||||
return version.String();
|
return version.GetName();
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.ConvertTo(context, culture, value, destinationType);
|
return base.ConvertTo(context, culture, value, destinationType);
|
||||||
|
|||||||
@@ -12,10 +12,15 @@ namespace SpineViewer.Spine
|
|||||||
public static class VersionHelper
|
public static class VersionHelper
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 描述缓存
|
/// 版本名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly ReadOnlyDictionary<Version, string> Versions;
|
public static readonly ReadOnlyDictionary<Version, string> Names;
|
||||||
private static readonly Dictionary<Version, string> versions = [];
|
private static readonly Dictionary<Version, string> names = [];
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Runtime 版本字符串
|
||||||
|
/// </summary>
|
||||||
|
private static readonly Dictionary<Version, string> runtimes = [];
|
||||||
|
|
||||||
static VersionHelper()
|
static VersionHelper()
|
||||||
{
|
{
|
||||||
@@ -24,17 +29,33 @@ namespace SpineViewer.Spine
|
|||||||
{
|
{
|
||||||
var field = typeof(Version).GetField(value.ToString());
|
var field = typeof(Version).GetField(value.ToString());
|
||||||
var attribute = field?.GetCustomAttribute<DescriptionAttribute>();
|
var attribute = field?.GetCustomAttribute<DescriptionAttribute>();
|
||||||
versions[(Version)value] = attribute?.Description ?? value.ToString();
|
names[(Version)value] = attribute?.Description ?? value.ToString();
|
||||||
}
|
}
|
||||||
Versions = versions.AsReadOnly();
|
Names = names.AsReadOnly();
|
||||||
|
|
||||||
|
runtimes[Version.V21] = Assembly.GetAssembly(typeof(SpineRuntime21.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||||
|
runtimes[Version.V36] = Assembly.GetAssembly(typeof(SpineRuntime36.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||||
|
runtimes[Version.V37] = Assembly.GetAssembly(typeof(SpineRuntime37.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||||
|
runtimes[Version.V38] = Assembly.GetAssembly(typeof(SpineRuntime38.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||||
|
runtimes[Version.V40] = Assembly.GetAssembly(typeof(SpineRuntime40.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||||
|
runtimes[Version.V41] = Assembly.GetAssembly(typeof(SpineRuntime41.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||||
|
runtimes[Version.V42] = Assembly.GetAssembly(typeof(SpineRuntime42.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 版本号字符串
|
/// 版本字符串名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string String(this Version version)
|
public static string GetName(this Version version)
|
||||||
{
|
{
|
||||||
return Versions.TryGetValue(version, out var description) ? description : version.ToString();
|
return Names.TryGetValue(version, out var val) ? val : version.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Runtime 版本字符串名称
|
||||||
|
/// </summary>
|
||||||
|
public static string GetRuntime(this Version version)
|
||||||
|
{
|
||||||
|
return runtimes.TryGetValue(version, out var val) ? val : GetName(version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user