重命名SpineVersion
This commit is contained in:
@@ -219,11 +219,11 @@ namespace SpineViewer.Controls
|
||||
if (MessageBox.Quest($"共发现 {validPaths.Count} 个可加载骨骼,数量较多,是否一次性全部加载?") == DialogResult.Cancel)
|
||||
return;
|
||||
}
|
||||
BatchAdd(new Dialogs.BatchOpenSpineDialogResult(Spine.Version.Auto, validPaths.ToArray()));
|
||||
BatchAdd(new Dialogs.BatchOpenSpineDialogResult(SpineVersion.Auto, validPaths.ToArray()));
|
||||
}
|
||||
else if (validPaths.Count > 0)
|
||||
{
|
||||
Insert(new Dialogs.OpenSpineDialogResult(Spine.Version.Auto, validPaths[0]));
|
||||
Insert(new Dialogs.OpenSpineDialogResult(SpineVersion.Auto, validPaths[0]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,12 +24,12 @@ namespace SpineViewer.Dialogs
|
||||
comboBox_Version.DataSource = SpineHelper.Names.ToList();
|
||||
comboBox_Version.DisplayMember = "Value";
|
||||
comboBox_Version.ValueMember = "Key";
|
||||
comboBox_Version.SelectedValue = Spine.Version.Auto;
|
||||
comboBox_Version.SelectedValue = SpineVersion.Auto;
|
||||
}
|
||||
|
||||
private void button_Ok_Click(object sender, EventArgs e)
|
||||
{
|
||||
var version = (Spine.Version)comboBox_Version.SelectedValue;
|
||||
var version = (SpineVersion)comboBox_Version.SelectedValue;
|
||||
|
||||
var items = skelFileListBox.Items;
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace SpineViewer.Dialogs
|
||||
}
|
||||
}
|
||||
|
||||
if (version != Spine.Version.Auto && !Spine.Spine.HasImplementation(version))
|
||||
if (version != SpineVersion.Auto && !Spine.Spine.HasImplementation(version))
|
||||
{
|
||||
MessageBox.Info($"{version.GetName()} 版本尚未实现(咕咕咕~)");
|
||||
return;
|
||||
@@ -67,12 +67,12 @@ namespace SpineViewer.Dialogs
|
||||
/// <summary>
|
||||
/// 批量打开对话框结果
|
||||
/// </summary>
|
||||
public class BatchOpenSpineDialogResult(Spine.Version version, string[] skelPaths)
|
||||
public class BatchOpenSpineDialogResult(SpineVersion version, string[] skelPaths)
|
||||
{
|
||||
/// <summary>
|
||||
/// 版本
|
||||
/// </summary>
|
||||
public Spine.Version Version => version;
|
||||
public SpineVersion Version => version;
|
||||
|
||||
/// <summary>
|
||||
/// 路径列表
|
||||
|
||||
@@ -25,21 +25,21 @@ namespace SpineViewer.Dialogs
|
||||
comboBox_SourceVersion.DataSource = SpineHelper.Names.ToList();
|
||||
comboBox_SourceVersion.DisplayMember = "Value";
|
||||
comboBox_SourceVersion.ValueMember = "Key";
|
||||
comboBox_SourceVersion.SelectedValue = Spine.Version.Auto;
|
||||
comboBox_SourceVersion.SelectedValue = SpineVersion.Auto;
|
||||
|
||||
// 目标版本不包含自动
|
||||
var versionsWithoutAuto = SpineHelper.Names.ToDictionary();
|
||||
versionsWithoutAuto.Remove(Spine.Version.Auto);
|
||||
versionsWithoutAuto.Remove(SpineVersion.Auto);
|
||||
comboBox_TargetVersion.DataSource = versionsWithoutAuto.ToList();
|
||||
comboBox_TargetVersion.DisplayMember = "Value";
|
||||
comboBox_TargetVersion.ValueMember = "Key";
|
||||
comboBox_TargetVersion.SelectedValue = Spine.Version.V38;
|
||||
comboBox_TargetVersion.SelectedValue = SpineVersion.V38;
|
||||
}
|
||||
|
||||
private void button_Ok_Click(object sender, EventArgs e)
|
||||
{
|
||||
var sourceVersion = (Spine.Version)comboBox_SourceVersion.SelectedValue;
|
||||
var targetVersion = (Spine.Version)comboBox_TargetVersion.SelectedValue;
|
||||
var sourceVersion = (SpineVersion)comboBox_SourceVersion.SelectedValue;
|
||||
var targetVersion = (SpineVersion)comboBox_TargetVersion.SelectedValue;
|
||||
var jsonTarget = radioButton_JsonTarget.Checked;
|
||||
|
||||
var items = skelFileListBox.Items;
|
||||
@@ -59,7 +59,7 @@ namespace SpineViewer.Dialogs
|
||||
}
|
||||
}
|
||||
|
||||
if (sourceVersion != Spine.Version.Auto && !SkeletonConverter.HasImplementation(sourceVersion))
|
||||
if (sourceVersion != SpineVersion.Auto && !SkeletonConverter.HasImplementation(sourceVersion))
|
||||
{
|
||||
MessageBox.Info($"{sourceVersion.GetName()} 版本尚未实现(咕咕咕~)");
|
||||
return;
|
||||
@@ -84,7 +84,7 @@ namespace SpineViewer.Dialogs
|
||||
/// <summary>
|
||||
/// 文件格式转换对话框结果包装类
|
||||
/// </summary>
|
||||
public class ConvertFileFormatDialogResult(string[] skelPaths, Spine.Version sourceVersion, Spine.Version targetVersion, bool jsonTarget)
|
||||
public class ConvertFileFormatDialogResult(string[] skelPaths, SpineVersion sourceVersion, SpineVersion targetVersion, bool jsonTarget)
|
||||
{
|
||||
/// <summary>
|
||||
/// 骨骼文件路径列表
|
||||
@@ -94,12 +94,12 @@ namespace SpineViewer.Dialogs
|
||||
/// <summary>
|
||||
/// 源版本
|
||||
/// </summary>
|
||||
public Spine.Version SourceVersion => sourceVersion;
|
||||
public SpineVersion SourceVersion => sourceVersion;
|
||||
|
||||
/// <summary>
|
||||
/// 目标版本
|
||||
/// </summary>
|
||||
public Spine.Version TargetVersion => targetVersion;
|
||||
public SpineVersion TargetVersion => targetVersion;
|
||||
|
||||
/// <summary>
|
||||
/// 目标格式是否为 Json
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace SpineViewer.Dialogs
|
||||
comboBox_Version.DataSource = SpineHelper.Names.ToList();
|
||||
comboBox_Version.DisplayMember = "Value";
|
||||
comboBox_Version.ValueMember = "Key";
|
||||
comboBox_Version.SelectedValue = Spine.Version.Auto;
|
||||
comboBox_Version.SelectedValue = SpineVersion.Auto;
|
||||
}
|
||||
|
||||
private void OpenSpineDialog_Load(object sender, EventArgs e)
|
||||
@@ -53,7 +53,7 @@ namespace SpineViewer.Dialogs
|
||||
{
|
||||
var skelPath = textBox_SkelPath.Text;
|
||||
var atlasPath = textBox_AtlasPath.Text;
|
||||
var version = (Spine.Version)comboBox_Version.SelectedValue;
|
||||
var version = (SpineVersion)comboBox_Version.SelectedValue;
|
||||
|
||||
if (!File.Exists(skelPath))
|
||||
{
|
||||
@@ -79,7 +79,7 @@ namespace SpineViewer.Dialogs
|
||||
atlasPath = Path.GetFullPath(atlasPath);
|
||||
}
|
||||
|
||||
if (version != Spine.Version.Auto && !Spine.Spine.HasImplementation(version))
|
||||
if (version != SpineVersion.Auto && !Spine.Spine.HasImplementation(version))
|
||||
{
|
||||
MessageBox.Info($"{version.GetName()} 版本尚未实现(咕咕咕~)");
|
||||
return;
|
||||
@@ -98,12 +98,12 @@ namespace SpineViewer.Dialogs
|
||||
/// <summary>
|
||||
/// 打开骨骼对话框结果
|
||||
/// </summary>
|
||||
public class OpenSpineDialogResult(Spine.Version version, string skelPath, string? atlasPath = null)
|
||||
public class OpenSpineDialogResult(SpineVersion version, string skelPath, string? atlasPath = null)
|
||||
{
|
||||
/// <summary>
|
||||
/// 版本
|
||||
/// </summary>
|
||||
public Spine.Version Version => version;
|
||||
public SpineVersion Version => version;
|
||||
|
||||
/// <summary>
|
||||
/// skel 文件路径
|
||||
|
||||
@@ -183,7 +183,7 @@ namespace SpineViewer
|
||||
int success = 0;
|
||||
int error = 0;
|
||||
|
||||
SkeletonConverter srcCvter = srcVersion != Spine.Version.Auto ? SkeletonConverter.New(srcVersion) : null;
|
||||
SkeletonConverter srcCvter = srcVersion != SpineVersion.Auto ? SkeletonConverter.New(srcVersion) : null;
|
||||
SkeletonConverter tgtCvter = SkeletonConverter.New(tgtVersion);
|
||||
|
||||
worker.ReportProgress(0, $"已处理 0/{totalCount}");
|
||||
@@ -200,7 +200,7 @@ namespace SpineViewer
|
||||
|
||||
try
|
||||
{
|
||||
if (srcVersion == Spine.Version.Auto)
|
||||
if (srcVersion == SpineVersion.Auto)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Globalization;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
||||
{
|
||||
[SpineImplementation(Version.V38)]
|
||||
[SpineImplementation(SpineVersion.V38)]
|
||||
class SkeletonConverter38 : SpineViewer.Spine.SkeletonConverter
|
||||
{
|
||||
private BinaryReader reader = null;
|
||||
@@ -1286,11 +1286,11 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
||||
base.WriteJson(root, jsonPath);
|
||||
}
|
||||
|
||||
public override JsonObject ToVersion(JsonObject root, Version version)
|
||||
public override JsonObject ToVersion(JsonObject root, SpineVersion version)
|
||||
{
|
||||
root = version switch
|
||||
{
|
||||
Version.V38 => root.DeepClone().AsObject(),
|
||||
SpineVersion.V38 => root.DeepClone().AsObject(),
|
||||
_ => throw new NotImplementedException(),
|
||||
};
|
||||
return root;
|
||||
|
||||
@@ -10,7 +10,7 @@ using SpineRuntime21;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.Spine
|
||||
{
|
||||
[SpineImplementation(Version.V21)]
|
||||
[SpineImplementation(SpineVersion.V21)]
|
||||
internal class Spine21 : SpineViewer.Spine.Spine
|
||||
{
|
||||
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
|
||||
|
||||
@@ -10,7 +10,7 @@ using SpineRuntime36;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.Spine
|
||||
{
|
||||
[SpineImplementation(Version.V36)]
|
||||
[SpineImplementation(SpineVersion.V36)]
|
||||
internal class Spine36 : SpineViewer.Spine.Spine
|
||||
{
|
||||
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
|
||||
|
||||
@@ -7,7 +7,7 @@ using SpineRuntime37;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.Spine
|
||||
{
|
||||
[SpineImplementation(Version.V37)]
|
||||
[SpineImplementation(SpineVersion.V37)]
|
||||
internal class Spine37 : SpineViewer.Spine.Spine
|
||||
{
|
||||
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
|
||||
|
||||
@@ -10,7 +10,7 @@ using SpineRuntime38.Attachments;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.Spine
|
||||
{
|
||||
[SpineImplementation(Version.V38)]
|
||||
[SpineImplementation(SpineVersion.V38)]
|
||||
internal class Spine38 : SpineViewer.Spine.Spine
|
||||
{
|
||||
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
|
||||
|
||||
@@ -9,7 +9,7 @@ using SpineRuntime40;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.Spine
|
||||
{
|
||||
[SpineImplementation(Version.V40)]
|
||||
[SpineImplementation(SpineVersion.V40)]
|
||||
internal class Spine40 : SpineViewer.Spine.Spine
|
||||
{
|
||||
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
|
||||
|
||||
@@ -9,7 +9,7 @@ using SpineRuntime41;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.Spine
|
||||
{
|
||||
[SpineImplementation(Version.V41)]
|
||||
[SpineImplementation(SpineVersion.V41)]
|
||||
internal class Spine41 : SpineViewer.Spine.Spine
|
||||
{
|
||||
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
|
||||
|
||||
@@ -9,7 +9,7 @@ using SpineRuntime42;
|
||||
|
||||
namespace SpineViewer.Spine.Implementations.Spine
|
||||
{
|
||||
[SpineImplementation(Version.V42)]
|
||||
[SpineImplementation(SpineVersion.V42)]
|
||||
internal class Spine42 : SpineViewer.Spine.Spine
|
||||
{
|
||||
private static readonly Animation EmptyAnimation = new(EMPTY_ANIMATION, [], 0);
|
||||
|
||||
@@ -15,12 +15,12 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// SkeletonConverter 基类, 使用静态方法 New 来创建具体版本对象
|
||||
/// </summary>
|
||||
public abstract class SkeletonConverter : ImplementationResolver<SkeletonConverter, SpineImplementationAttribute, Version>
|
||||
public abstract class SkeletonConverter : ImplementationResolver<SkeletonConverter, SpineImplementationAttribute, SpineVersion>
|
||||
{
|
||||
/// <summary>
|
||||
/// 创建特定版本的 SkeletonConverter
|
||||
/// </summary>
|
||||
public static SkeletonConverter New(Version version) => New(version, []);
|
||||
public static SkeletonConverter New(SpineVersion version) => New(version, []);
|
||||
|
||||
/// <summary>
|
||||
/// Json 格式控制
|
||||
@@ -89,7 +89,7 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// 转换到目标版本
|
||||
/// </summary>
|
||||
public abstract JsonObject ToVersion(JsonObject root, Version version);
|
||||
public abstract JsonObject ToVersion(JsonObject root, SpineVersion version);
|
||||
|
||||
/// <summary>
|
||||
/// 二进制骨骼文件读
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// Spine 基类, 使用静态方法 New 来创建具体版本对象
|
||||
/// </summary>
|
||||
public abstract class Spine : ImplementationResolver<Spine, SpineImplementationAttribute, Version>, SFML.Graphics.Drawable, IDisposable
|
||||
public abstract class Spine : ImplementationResolver<Spine, SpineImplementationAttribute, SpineVersion>, SFML.Graphics.Drawable, IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// 常规骨骼文件后缀集合
|
||||
@@ -54,7 +54,7 @@ namespace SpineViewer.Spine
|
||||
/// <param name="skelPath"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="InvalidDataException"></exception>
|
||||
public static Version GetVersion(string skelPath)
|
||||
public static SpineVersion GetVersion(string skelPath)
|
||||
{
|
||||
string versionString = null;
|
||||
using var input = File.OpenRead(skelPath);
|
||||
@@ -105,9 +105,9 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// 创建特定版本的 Spine
|
||||
/// </summary>
|
||||
public static Spine New(Version version, string skelPath, string? atlasPath = null)
|
||||
public static Spine New(SpineVersion version, string skelPath, string? atlasPath = null)
|
||||
{
|
||||
if (version == Version.Auto) version = GetVersion(skelPath);
|
||||
if (version == SpineVersion.Auto) version = GetVersion(skelPath);
|
||||
var spine = New(version, [skelPath, atlasPath]);
|
||||
|
||||
// 统一初始化
|
||||
@@ -176,7 +176,7 @@ namespace SpineViewer.Spine
|
||||
/// </summary>
|
||||
[TypeConverter(typeof(VersionConverter))]
|
||||
[Category("[0] 基本信息"), DisplayName("运行时版本")]
|
||||
public Version Version { get; }
|
||||
public SpineVersion Version { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 资源所在完整目录
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// 支持的 Spine 版本
|
||||
/// </summary>
|
||||
public enum Version
|
||||
public enum SpineVersion
|
||||
{
|
||||
[Description("<Auto>")] Auto = 0x0000,
|
||||
[Description("2.1.x")] V21 = 0x0201,
|
||||
@@ -29,9 +29,9 @@ namespace SpineViewer.Spine
|
||||
/// Spine 实现类标记
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
|
||||
public class SpineImplementationAttribute(Version version) : Attribute, IImplementationKey<Version>
|
||||
public class SpineImplementationAttribute(SpineVersion version) : Attribute, IImplementationKey<SpineVersion>
|
||||
{
|
||||
public Version ImplementationKey { get; private set; } = version;
|
||||
public SpineVersion ImplementationKey { get; private set; } = version;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -42,38 +42,38 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// 版本名称
|
||||
/// </summary>
|
||||
public static readonly ReadOnlyDictionary<Version, string> Names;
|
||||
private static readonly Dictionary<Version, string> names = [];
|
||||
public static readonly ReadOnlyDictionary<SpineVersion, string> Names;
|
||||
private static readonly Dictionary<SpineVersion, string> names = [];
|
||||
|
||||
/// <summary>
|
||||
/// Runtime 版本字符串
|
||||
/// </summary>
|
||||
private static readonly Dictionary<Version, string> runtimes = [];
|
||||
private static readonly Dictionary<SpineVersion, string> runtimes = [];
|
||||
|
||||
static SpineHelper()
|
||||
{
|
||||
// 初始化缓存
|
||||
foreach (var value in Enum.GetValues(typeof(Version)))
|
||||
foreach (var value in Enum.GetValues(typeof(SpineVersion)))
|
||||
{
|
||||
var field = typeof(Version).GetField(value.ToString());
|
||||
var field = typeof(SpineVersion).GetField(value.ToString());
|
||||
var attribute = field?.GetCustomAttribute<DescriptionAttribute>();
|
||||
names[(Version)value] = attribute?.Description ?? value.ToString();
|
||||
names[(SpineVersion)value] = attribute?.Description ?? value.ToString();
|
||||
}
|
||||
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;
|
||||
runtimes[SpineVersion.V21] = Assembly.GetAssembly(typeof(SpineRuntime21.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
runtimes[SpineVersion.V36] = Assembly.GetAssembly(typeof(SpineRuntime36.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
runtimes[SpineVersion.V37] = Assembly.GetAssembly(typeof(SpineRuntime37.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
runtimes[SpineVersion.V38] = Assembly.GetAssembly(typeof(SpineRuntime38.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
runtimes[SpineVersion.V40] = Assembly.GetAssembly(typeof(SpineRuntime40.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
runtimes[SpineVersion.V41] = Assembly.GetAssembly(typeof(SpineRuntime41.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
runtimes[SpineVersion.V42] = Assembly.GetAssembly(typeof(SpineRuntime42.Skeleton)).GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 版本字符串名称
|
||||
/// </summary>
|
||||
public static string GetName(this Version version)
|
||||
public static string GetName(this SpineVersion version)
|
||||
{
|
||||
return Names.TryGetValue(version, out var val) ? val : version.ToString();
|
||||
}
|
||||
@@ -81,7 +81,7 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// Runtime 版本字符串名称
|
||||
/// </summary>
|
||||
public static string GetRuntime(this Version version)
|
||||
public static string GetRuntime(this SpineVersion version)
|
||||
{
|
||||
return runtimes.TryGetValue(version, out var val) ? val : GetName(version);
|
||||
}
|
||||
@@ -92,17 +92,17 @@ namespace SpineViewer.Spine
|
||||
/// <param name="versionString"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="InvalidDataException"></exception>
|
||||
public static Version GetVersion(string versionString)
|
||||
public static SpineVersion GetVersion(string versionString)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNullOrEmpty(versionString);
|
||||
if (versionString.StartsWith("2.1.")) return Version.V21;
|
||||
else if (versionString.StartsWith("3.6.")) return Version.V36;
|
||||
else if (versionString.StartsWith("3.7.")) return Version.V37;
|
||||
else if (versionString.StartsWith("3.8.")) return Version.V38;
|
||||
else if (versionString.StartsWith("4.0.")) return Version.V40;
|
||||
else if (versionString.StartsWith("4.1.")) return Version.V41;
|
||||
else if (versionString.StartsWith("4.2.")) return Version.V42;
|
||||
else if (versionString.StartsWith("4.3.")) return Version.V43;
|
||||
if (versionString.StartsWith("2.1.")) return SpineVersion.V21;
|
||||
else if (versionString.StartsWith("3.6.")) return SpineVersion.V36;
|
||||
else if (versionString.StartsWith("3.7.")) return SpineVersion.V37;
|
||||
else if (versionString.StartsWith("3.8.")) return SpineVersion.V38;
|
||||
else if (versionString.StartsWith("4.0.")) return SpineVersion.V40;
|
||||
else if (versionString.StartsWith("4.1.")) return SpineVersion.V41;
|
||||
else if (versionString.StartsWith("4.2.")) return SpineVersion.V42;
|
||||
else if (versionString.StartsWith("4.3.")) return SpineVersion.V43;
|
||||
else throw new InvalidDataException($"Unknown verison: {versionString}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,11 +11,11 @@ namespace SpineViewer.Spine
|
||||
{
|
||||
public class VersionConverter : EnumConverter
|
||||
{
|
||||
public VersionConverter() : base(typeof(Version)) { }
|
||||
public VersionConverter() : base(typeof(SpineVersion)) { }
|
||||
|
||||
public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type? destinationType)
|
||||
{
|
||||
if (destinationType == typeof(string) && value is Version version)
|
||||
if (destinationType == typeof(string) && value is SpineVersion version)
|
||||
return version.GetName();
|
||||
return base.ConvertTo(context, culture, value, destinationType);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user