From bab3bf625cd0e3b5f79ebc788ec6eeb6a735d136 Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Mon, 26 Jan 2026 10:29:46 +0100 Subject: [PATCH] Add link property for animation selection (dummy). --- spine-ts/spine-construct3/src/instance.ts | 4 ++++ spine-ts/spine-construct3/src/lang/en-US.json | 5 +++++ spine-ts/spine-construct3/src/lang/zh-CN.json | 5 +++++ spine-ts/spine-construct3/src/plugin.ts | 7 +++++++ 4 files changed, 21 insertions(+) diff --git a/spine-ts/spine-construct3/src/instance.ts b/spine-ts/spine-construct3/src/instance.ts index bfebb4582..7ab0dd1b1 100644 --- a/spine-ts/spine-construct3/src/instance.ts +++ b/spine-ts/spine-construct3/src/instance.ts @@ -561,6 +561,10 @@ class SpineC3PluginInstance extends SDK.IWorldInstanceBase { if (!spriteType) await project.CreateObjectType("Sprite", collisionSpriteName); } + public async selectAnimation () { + console.log('[Spine] Select animation dialog called'); + } + private lang (stringKey: string, interpolate: (string | number)[] = []): string { const pluginContext = "plugins.esotericsoftware_spineconstruct3.custom_ui."; let intlString = globalThis.lang(`${pluginContext}${stringKey}`); diff --git a/spine-ts/spine-construct3/src/lang/en-US.json b/spine-ts/spine-construct3/src/lang/en-US.json index e0695e59c..f0ec763aa 100644 --- a/spine-ts/spine-construct3/src/lang/en-US.json +++ b/spine-ts/spine-construct3/src/lang/en-US.json @@ -22,6 +22,11 @@ "name": "Loader scale", "desc": "Loader scale" }, + "select-animation": { + "name": "Select animation", + "desc": "Open a dialog to select an animation from the skeleton", + "link-text": "Select" + }, "spine-animation": { "name": "animation", "desc": "animation" diff --git a/spine-ts/spine-construct3/src/lang/zh-CN.json b/spine-ts/spine-construct3/src/lang/zh-CN.json index c9477daee..61db94f3c 100644 --- a/spine-ts/spine-construct3/src/lang/zh-CN.json +++ b/spine-ts/spine-construct3/src/lang/zh-CN.json @@ -22,6 +22,11 @@ "name": "加载比例", "desc": "加载比例" }, + "select-animation": { + "name": "选择动画", + "desc": "打开对话框从骨架中选择动画", + "link-text": "选择" + }, "spine-animation": { "name": "动画", "desc": "动画" diff --git a/spine-ts/spine-construct3/src/plugin.ts b/spine-ts/spine-construct3/src/plugin.ts index ba4fdb1b1..0397e0d29 100644 --- a/spine-ts/spine-construct3/src/plugin.ts +++ b/spine-ts/spine-construct3/src/plugin.ts @@ -79,6 +79,13 @@ const PLUGIN_CLASS = class SpineC3Plugin extends SDK.IPluginBase { new SDK.PluginProperty("projectfile", SpineC3Plugin.PROP_SKELETON, { initialValue: "", filter: ".json,.skel" }), new SDK.PluginProperty("float", SpineC3Plugin.PROP_LOADER_SCALE, 1), new SDK.PluginProperty("text", SpineC3Plugin.PROP_SKIN, ""), + new SDK.PluginProperty("link", "select-animation", { + linkCallback: async (instance) => { + const sdkInst = instance as SDKEditorInstanceClass; + await sdkInst.selectAnimation(); + }, + callbackType: "for-each-instance" + }), new SDK.PluginProperty("text", SpineC3Plugin.PROP_ANIMATION, ""), new SDK.PluginProperty("check", SpineC3Plugin.PROP_DEBUG_SKELETON, false), new SDK.PluginProperty("check", SpineC3Plugin.PROP_ENABLE_COLLISION, false),