简化时间标记
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user