diff --git a/SpineViewer/Controls/SpineViewPropertyGrid.Designer.cs b/SpineViewer/Controls/SpineViewPropertyGrid.Designer.cs
index 8074406..9467ba2 100644
--- a/SpineViewer/Controls/SpineViewPropertyGrid.Designer.cs
+++ b/SpineViewer/Controls/SpineViewPropertyGrid.Designer.cs
@@ -194,7 +194,7 @@
tabPage_Slot.Name = "tabPage_Slot";
tabPage_Slot.Size = new Size(364, 370);
tabPage_Slot.TabIndex = 6;
- tabPage_Slot.Text = "槽位";
+ tabPage_Slot.Text = "插槽";
//
// propertyGrid_Slot
//
diff --git a/SpineViewer/Spine/Implementations/SpineObject/SpineObject21.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject21.cs
index adaceed..6644e01 100644
--- a/SpineViewer/Spine/Implementations/SpineObject/SpineObject21.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject21.cs
@@ -64,7 +64,7 @@ namespace SpineViewer.Spine.Implementations.SpineObject
//private SkeletonClipping clipping = new();
///
- /// 所有槽位在所有皮肤中可用的附件集合
+ /// 所有插槽在所有皮肤中可用的附件集合
///
private readonly Dictionary> slotAttachments = [];
diff --git a/SpineViewer/Spine/Implementations/SpineObject/SpineObject36.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject36.cs
index bcbdc37..7ee6830 100644
--- a/SpineViewer/Spine/Implementations/SpineObject/SpineObject36.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject36.cs
@@ -63,7 +63,7 @@ namespace SpineViewer.Spine.Implementations.SpineObject
private readonly SkeletonClipping clipping = new();
///
- /// 所有槽位在所有皮肤中可用的附件集合
+ /// 所有插槽在所有皮肤中可用的附件集合
///
private readonly Dictionary> slotAttachments = [];
diff --git a/SpineViewer/Spine/Implementations/SpineObject/SpineObject37.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject37.cs
index d7e6dbf..457afd7 100644
--- a/SpineViewer/Spine/Implementations/SpineObject/SpineObject37.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject37.cs
@@ -60,7 +60,7 @@ namespace SpineViewer.Spine.Implementations.SpineObject
private readonly SkeletonClipping clipping = new();
///
- /// 所有槽位在所有皮肤中可用的附件集合
+ /// 所有插槽在所有皮肤中可用的附件集合
///
private readonly Dictionary> slotAttachments = [];
diff --git a/SpineViewer/Spine/Implementations/SpineObject/SpineObject38.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject38.cs
index 7bdd895..279bceb 100644
--- a/SpineViewer/Spine/Implementations/SpineObject/SpineObject38.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject38.cs
@@ -67,7 +67,7 @@ namespace SpineViewer.Spine.Implementations.SpineObject
private readonly SkeletonClipping clipping = new();
///
- /// 所有槽位在所有皮肤中可用的附件集合
+ /// 所有插槽在所有皮肤中可用的附件集合
///
private readonly Dictionary> slotAttachments = [];
diff --git a/SpineViewer/Spine/Implementations/SpineObject/SpineObject40.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject40.cs
index 740ca99..eb8078c 100644
--- a/SpineViewer/Spine/Implementations/SpineObject/SpineObject40.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject40.cs
@@ -62,7 +62,7 @@ namespace SpineViewer.Spine.Implementations.SpineObject
private readonly SkeletonClipping clipping = new();
///
- /// 所有槽位在所有皮肤中可用的附件集合
+ /// 所有插槽在所有皮肤中可用的附件集合
///
private readonly Dictionary> slotAttachments = [];
diff --git a/SpineViewer/Spine/Implementations/SpineObject/SpineObject41.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject41.cs
index ff10359..f4f5365 100644
--- a/SpineViewer/Spine/Implementations/SpineObject/SpineObject41.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject41.cs
@@ -62,7 +62,7 @@ namespace SpineViewer.Spine.Implementations.SpineObject
private readonly SkeletonClipping clipping = new();
///
- /// 所有槽位在所有皮肤中可用的附件集合
+ /// 所有插槽在所有皮肤中可用的附件集合
///
private readonly Dictionary> slotAttachments = [];
diff --git a/SpineViewer/Spine/Implementations/SpineObject/SpineObject42.cs b/SpineViewer/Spine/Implementations/SpineObject/SpineObject42.cs
index 06f3e7a..46cab74 100644
--- a/SpineViewer/Spine/Implementations/SpineObject/SpineObject42.cs
+++ b/SpineViewer/Spine/Implementations/SpineObject/SpineObject42.cs
@@ -62,7 +62,7 @@ namespace SpineViewer.Spine.Implementations.SpineObject
private readonly SkeletonClipping clipping = new();
///
- /// 所有槽位在所有皮肤中可用的附件集合
+ /// 所有插槽在所有皮肤中可用的附件集合
///
private readonly Dictionary> slotAttachments = [];
diff --git a/SpineViewer/Spine/SpineObject.cs b/SpineViewer/Spine/SpineObject.cs
index 4b670cc..135e9f0 100644
--- a/SpineViewer/Spine/SpineObject.cs
+++ b/SpineViewer/Spine/SpineObject.cs
@@ -325,7 +325,7 @@ namespace SpineViewer.Spine
protected bool debugClippings = false;
///
- /// 所有槽位下可用的附件名
+ /// 所有插槽下可用的附件名
///
public FrozenDictionary> SlotAttachmentNames { get; protected set; }
@@ -340,13 +340,13 @@ namespace SpineViewer.Spine
public ImmutableArray AnimationNames { get; protected set; }
///
- /// 获取某个槽位当前加载的附件
+ /// 获取某个插槽当前加载的附件
///
public string GetSlotAttachment(string slot) { lock (_lock) return getSlotAttachment(slot); }
protected abstract string getSlotAttachment(string slot);
///
- /// 设置某个槽位当前加载的附件
+ /// 设置某个插槽当前加载的附件
///
public void SetSlotAttachment(string slot, string name) { lock (_lock) setSlotAttachment(slot, name); }
protected abstract void setSlotAttachment(string slot, string name);
diff --git a/SpineViewer/Spine/SpineView/SpineAnimationProperty.cs b/SpineViewer/Spine/SpineView/SpineAnimationProperty.cs
index 2891e55..50dc67d 100644
--- a/SpineViewer/Spine/SpineView/SpineAnimationProperty.cs
+++ b/SpineViewer/Spine/SpineView/SpineAnimationProperty.cs
@@ -186,16 +186,12 @@ namespace SpineViewer.Spine.SpineView
{
return new StandardValuesCollection(tracks.Spine.AnimationNames);
}
- else if (context?.Instance is SpineAnimationProperty[] animTracks)
+ else if (context?.Instance is object[] instances)
{
- // XXX: 莫名其妙好了, 不是 object[] 类型是具体的类型了
- if (animTracks.Length > 0)
- {
- IEnumerable common = animTracks[0].Spine.AnimationNames;
- foreach (var t in animTracks.Skip(1))
- common = common.Union(t.Spine.AnimationNames);
- return new StandardValuesCollection(common.ToArray());
- }
+ IEnumerable common = [];
+ foreach (SpineAnimationProperty prop in instances.Where(inst => inst is SpineAnimationProperty))
+ common = common.Union(prop.Spine.AnimationNames);
+ return new StandardValuesCollection(common.ToArray());
}
return base.GetStandardValues(context);
}
diff --git a/SpineViewer/Spine/SpineView/SpineObjectProperty.cs b/SpineViewer/Spine/SpineView/SpineObjectProperty.cs
index 767985a..f08f2db 100644
--- a/SpineViewer/Spine/SpineView/SpineObjectProperty.cs
+++ b/SpineViewer/Spine/SpineView/SpineObjectProperty.cs
@@ -28,7 +28,7 @@ namespace SpineViewer.Spine.SpineView
public SpineSkinProperty Skin { get; } = new(spine);
[TypeConverter(typeof(ExpandableObjectConverter))]
- [DisplayName("皮肤")]
+ [DisplayName("插槽")]
public SpineSlotProperty Slot { get; } = new(spine);
[TypeConverter(typeof(ExpandableObjectConverter))]
diff --git a/SpineViewer/Spine/SpineView/SpineSlotProperty.cs b/SpineViewer/Spine/SpineView/SpineSlotProperty.cs
index 8cd79bb..7348b3a 100644
--- a/SpineViewer/Spine/SpineView/SpineSlotProperty.cs
+++ b/SpineViewer/Spine/SpineView/SpineSlotProperty.cs
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
namespace SpineViewer.Spine.SpineView
{
///
- /// 用于在 PropertyGrid 上显示槽位附件加载情况包装类
+ /// 用于在 PropertyGrid 上显示插槽附件加载情况包装类
///
public class SpineSlotProperty(SpineObject spine) : ICustomTypeDescriptor
{
@@ -18,7 +18,7 @@ namespace SpineViewer.Spine.SpineView
public SpineObject Spine { get; } = spine;
///
- /// 显示所有槽位集合
+ /// 显示所有插槽集合
///
public override string ToString() => $"[{string.Join(", ", Spine.SlotAttachmentNames.Keys)}]";
@@ -56,14 +56,14 @@ namespace SpineViewer.Spine.SpineView
foreach (var slotName in Spine.SlotAttachmentNames.Keys)
{
if (!pdCache.TryGetValue(slotName, out var pd))
- pdCache[slotName] = pd =new SlotPropertyDescriptor(slotName, [new DisplayNameAttribute($"{slotName}")]);
+ pdCache[slotName] = pd = new SlotPropertyDescriptor(slotName, [new DisplayNameAttribute($"{slotName}")]);
props.Add(pd);
}
return props;
}
///
- /// 槽位属性描述符, 实现对属性的读取和赋值
+ /// 插槽属性描述符, 实现对属性的读取和赋值
///
internal class SlotPropertyDescriptor(string name, Attribute[]? attributes) : PropertyDescriptor(name, attributes)
{
@@ -153,19 +153,15 @@ namespace SpineViewer.Spine.SpineView
if (slots.Spine.SlotAttachmentNames.TryGetValue(pd.Name, out var names))
return new StandardValuesCollection(names);
}
- else if (context?.Instance is SpineSlotProperty[] spinesSlots)
+ else if (context?.Instance is object[] instances)
{
- // XXX: 莫名其妙好了, 不是 object[] 类型是具体的类型了
- if (spinesSlots.Length > 0)
+ IEnumerable common = [];
+ foreach (SpineSlotProperty prop in instances.Where(inst => inst is SpineSlotProperty))
{
- IEnumerable common = [];
- foreach (var t in spinesSlots)
- {
- if (t.Spine.SlotAttachmentNames.TryGetValue(pd.Name, out var names))
- common = common.Union(names);
- }
- return new StandardValuesCollection(common.ToArray());
+ if (prop.Spine.SlotAttachmentNames.TryGetValue(pd.Name, out var names))
+ common = common.Union(names);
}
+ return new StandardValuesCollection(common.ToArray());
}
}
return base.GetStandardValues(context);