Files
SpineViewer/Spine/Interfaces/ISpineObjectData.cs
2025-10-01 16:35:51 +08:00

53 lines
1.4 KiB
C#

using Spine.Interfaces.Attachments;
using System;
using System.Collections.Frozen;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Interfaces
{
/// <summary>
/// 对 SkeletonData 和 AnimationStateData 的访问封装
/// </summary>
public interface ISpineObjectData
{
/// <summary>
/// skel 文件版本
/// </summary>
public string SkeletonVersion { get; }
/// <summary>
/// 所有皮肤
/// </summary>
public ImmutableArray<ISkin> Skins { get; }
/// <summary>
/// 所有皮肤按名称
/// </summary>
public FrozenDictionary<string, ISkin> SkinsByName { get; }
/// <summary>
/// 所有皮肤中所有插槽的可用附件集合, 并不保证所有插槽均在此处有键
/// </summary>
public FrozenDictionary<string, FrozenDictionary<string, IAttachment>> SlotAttachments { get; }
/// <summary>
/// 所有动画
/// </summary>
public ImmutableArray<IAnimation> Animations { get; }
/// <summary>
/// 所有动画按名称
/// </summary>
public FrozenDictionary<string, IAnimation> AnimationsByName { get; }
/// <summary>
/// 默认的动画过渡时长
/// </summary>
public float DefaultMix { get; set; }
}
}