简化时间标记

This commit is contained in:
ww-rm
2025-03-25 18:46:17 +08:00
parent aceb3b17c8
commit 7c4c53dcb0
4 changed files with 33 additions and 49 deletions

View File

@@ -8,12 +8,10 @@ using System.Text.Json;
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using SpineRuntime38.Attachments; using SpineRuntime38.Attachments;
using System.Globalization; using System.Globalization;
using static System.Runtime.InteropServices.JavaScript.JSType;
using System.IO;
namespace SpineViewer.Spine.Implementations.SkeletonConverter namespace SpineViewer.Spine.Implementations.SkeletonConverter
{ {
[SkeletonConverterImplementation(Version.V38)] [SpineImplementation(Version.V38)]
class SkeletonConverter38 : SpineViewer.Spine.SkeletonConverter class SkeletonConverter38 : SpineViewer.Spine.SkeletonConverter
{ {
private BinaryReader reader = null; private BinaryReader reader = null;

View File

@@ -12,20 +12,6 @@ using System.Text.Encodings.Web;
namespace SpineViewer.Spine namespace SpineViewer.Spine
{ {
/// <summary>
/// SkeletonConverter 实现类标记
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public class SkeletonConverterImplementationAttribute : Attribute
{
public Version Version { get; }
public SkeletonConverterImplementationAttribute(Version version)
{
Version = version;
}
}
/// <summary> /// <summary>
/// SkeletonConverter 基类, 使用静态方法 New 来创建具体版本对象 /// SkeletonConverter 基类, 使用静态方法 New 来创建具体版本对象
/// </summary> /// </summary>
@@ -42,11 +28,11 @@ namespace SpineViewer.Spine
/// </summary> /// </summary>
static SkeletonConverter() static SkeletonConverter()
{ {
// 遍历并缓存标记了 SkeletonConverterImplementationAttribute 的类型 // 遍历并缓存标记了 SpineImplementationAttribute 的类型
var impTypes = Assembly.GetExecutingAssembly().GetTypes().Where(t => typeof(SkeletonConverter).IsAssignableFrom(t) && !t.IsAbstract); var impTypes = Assembly.GetExecutingAssembly().GetTypes().Where(t => typeof(SkeletonConverter).IsAssignableFrom(t) && !t.IsAbstract);
foreach (var type in impTypes) foreach (var type in impTypes)
{ {
var attr = type.GetCustomAttribute<SkeletonConverterImplementationAttribute>(); var attr = type.GetCustomAttribute<SpineImplementationAttribute>();
if (attr is not null) if (attr is not null)
{ {
if (ImplementationTypes.ContainsKey(attr.Version)) if (ImplementationTypes.ContainsKey(attr.Version))

View File

@@ -18,20 +18,6 @@ using SpineViewer.Exporter;
namespace SpineViewer.Spine namespace SpineViewer.Spine
{ {
/// <summary>
/// Spine 实现类标记
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public class SpineImplementationAttribute : Attribute
{
public Version Version { get; }
public SpineImplementationAttribute(Version version)
{
Version = version;
}
}
/// <summary> /// <summary>
/// Spine 基类, 使用静态方法 New 来创建具体版本对象 /// Spine 基类, 使用静态方法 New 来创建具体版本对象
/// </summary> /// </summary>

View File

@@ -9,6 +9,36 @@ using System.Threading.Tasks;
namespace SpineViewer.Spine namespace SpineViewer.Spine
{ {
/// <summary>
/// 支持的 Spine 版本
/// </summary>
public enum Version
{
[Description("<Auto>")] Auto = 0x0000,
[Description("2.1.x")] V21 = 0x0201,
[Description("3.6.x")] V36 = 0x0306,
[Description("3.7.x")] V37 = 0x0307,
[Description("3.8.x")] V38 = 0x0308,
[Description("4.0.x")] V40 = 0x0400,
[Description("4.1.x")] V41 = 0x0401,
[Description("4.2.x")] V42 = 0x0402,
[Description("4.3.x")] V43 = 0x0403,
}
/// <summary>
/// Spine 实现类标记
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public class SpineImplementationAttribute : Attribute
{
public Version Version { get; }
public SpineImplementationAttribute(Version version)
{
Version = version;
}
}
/// <summary> /// <summary>
/// Spine 版本静态辅助类 /// Spine 版本静态辅助类
/// </summary> /// </summary>
@@ -61,20 +91,4 @@ namespace SpineViewer.Spine
return runtimes.TryGetValue(version, out var val) ? val : GetName(version); return runtimes.TryGetValue(version, out var val) ? val : GetName(version);
} }
} }
/// <summary>
/// 支持的 Spine 版本
/// </summary>
public enum Version
{
[Description("<Auto>")] Auto = 0x0000,
[Description("2.1.x")] V21 = 0x0201,
[Description("3.6.x")] V36 = 0x0306,
[Description("3.7.x")] V37 = 0x0307,
[Description("3.8.x")] V38 = 0x0308,
[Description("4.0.x")] V40 = 0x0400,
[Description("4.1.x")] V41 = 0x0401,
[Description("4.2.x")] V42 = 0x0402,
[Description("4.3.x")] V43 = 0x0403,
}
} }