Add GetEventData expression.

This commit is contained in:
Davide Tantillo 2025-12-15 15:44:29 +01:00
parent 57363110c3
commit ed94892283
4 changed files with 54 additions and 10 deletions

View File

@ -554,6 +554,18 @@
"type": "number" "type": "number"
} }
] ]
},
{
"id": "get-event-data",
"expressionName": "GetEventData",
"highlight": false,
"returnType": "any",
"params": [
{
"id": "field",
"type": "string"
}
]
} }
] ]
} }

View File

@ -1,15 +1,15 @@
import type { SDKInstanceClass } from "./instance.ts"; import type { SDKInstanceClass as SpineC3Instance } from "./instance.ts";
const C3 = globalThis.C3; const C3 = globalThis.C3;
C3.Plugins.EsotericSoftware_SpineConstruct3.Exps = C3.Plugins.EsotericSoftware_SpineConstruct3.Exps =
{ {
Double (this: SDKInstanceClass, num: number) { Double (this: SpineC3Instance, num: number) {
return num * 2; return num * 2;
}, },
SlotAttachment (this: SDKInstanceClass, slotName: string) { SlotAttachment (this: SpineC3Instance, slotName: string) {
if (!this.skeleton) return ""; if (!this.skeleton) return "";
const slot = this.skeleton.findSlot(slotName); const slot = this.skeleton.findSlot(slotName);
if (!slot) return ""; if (!slot) return "";
@ -17,32 +17,44 @@ C3.Plugins.EsotericSoftware_SpineConstruct3.Exps =
return attachment ? attachment.name : ""; return attachment ? attachment.name : "";
}, },
BoneX (this: SDKInstanceClass, boneName: string) { BoneX (this: SpineC3Instance, boneName: string) {
return this.getBoneX(boneName); return this.getBoneX(boneName);
}, },
BoneY (this: SDKInstanceClass, boneName: string) { BoneY (this: SpineC3Instance, boneName: string) {
return this.getBoneY(boneName); return this.getBoneY(boneName);
}, },
BoneRotation (this: SDKInstanceClass, boneName: string) { BoneRotation (this: SpineC3Instance, boneName: string) {
return this.getBoneRotation(boneName); return this.getBoneRotation(boneName);
}, },
BoneWorldX (this: SDKInstanceClass, boneName: string) { BoneWorldX (this: SpineC3Instance, boneName: string) {
return this.getBoneWorldX(boneName); return this.getBoneWorldX(boneName);
}, },
BoneWorldY (this: SDKInstanceClass, boneName: string) { BoneWorldY (this: SpineC3Instance, boneName: string) {
return this.getBoneWorldY(boneName); return this.getBoneWorldY(boneName);
}, },
CurrentSkin (this: SDKInstanceClass) { CurrentSkin (this: SpineC3Instance) {
return this.getCurrentSkin(); return this.getCurrentSkin();
}, },
CurrentAnimation (this: SDKInstanceClass, trackIndex: number) { CurrentAnimation (this: SpineC3Instance, trackIndex: number) {
return this.getCurrentAnimation(trackIndex); return this.getCurrentAnimation(trackIndex);
},
GetEventData (this: SpineC3Instance, field: "float" | "int" | "string" | "balance" | "volume" | "audiopath" | "event" | "track" | "animation") {
if (field === "float") return this.triggeredEventData?.floatValue;
if (field === "int") return this.triggeredEventData?.intValue;
if (field === "string") return this.triggeredEventData?.stringValue;
if (field === "balance") return this.triggeredEventData?.balance;
if (field === "volume") return this.triggeredEventData?.volume;
if (field === "audiopath") return this.triggeredEventData?.data.audioPath;
if (field === "event") return this.triggeredEventData?.data.name;
if (field === "animation") return this.triggeredEventAnimation;
if (field === "track") return this.triggeredEventTrack;
return "";
} }
}; };

View File

@ -632,6 +632,16 @@
"desc": "Index of the track" "desc": "Index of the track"
} }
} }
},
"get-event-data": {
"description": "Get data from the last triggered animation event. Typically used within an 'On animation event' trigger. Valid fields: \"float\", \"int\", \"string\", \"balance\", \"volume\", \"audiopath\", \"event\", \"track\", \"animation\".",
"translated-name": "GetEventData",
"params": {
"field": {
"name": "\"float\"|\"int\"|\"string\"|\"balance\"|\"volume\"|\"audiopath\"|\"event\"|\"track\"|\"animation\"",
"desc": "The event data field to retrieve"
}
}
} }
} }
} }

View File

@ -632,6 +632,16 @@
"desc": "轨道的索引" "desc": "轨道的索引"
} }
} }
},
"get-event-data": {
"description": "获取最后触发的动画事件的数据。通常在""条件中使用。有效字段: \"float\", \"int\", \"string\", \"balance\", \"volume\", \"audiopath\", \"event\", \"track\", \"animation\"。",
"translated-name": "GetEventData",
"params": {
"field": {
"name": "\"float\"|\"int\"|\"string\"|\"balance\"|\"volume\"|\"audiopath\"|\"event\"|\"track\"|\"animation\"",
"desc": "要检索的事件数据字段"
}
}
} }
} }
} }