@galacean/engine-spine 0.0.0-experimental-c21bcd627b-20240711 → 0.0.0-experimental-2024071103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/package.json +1 -1
- package/types/SpineGenerator.d.ts +2 -5
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Animation.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Animation.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationState.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationState.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationStateData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationStateData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AssetManagerBase.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AssetManagerBase.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AtlasAttachmentLoader.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AtlasAttachmentLoader.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Bone.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Bone.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/BoneData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/BoneData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/ConstraintData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/ConstraintData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Event.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Event.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/EventData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/EventData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraint.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraint.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraintData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraintData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraint.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraint.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraint.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraint.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraintData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraintData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skeleton.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skeleton.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBounds.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBounds.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonJson.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonJson.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skin.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skin.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Slot.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Slot.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SlotData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SlotData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Texture.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Texture.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TextureAtlas.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TextureAtlas.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraint.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraint.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraintData.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraintData.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Triangulator.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Triangulator.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Utils.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Utils.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Attachment.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Attachment.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/BoundingBoxAttachment.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/BoundingBoxAttachment.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/ClippingAttachment.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/ClippingAttachment.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/MeshAttachment.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/MeshAttachment.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PathAttachment.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PathAttachment.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js.map +0 -1
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/polyfills.js +0 -2
- package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/polyfills.js.map +0 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js +0 -2
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/esm/src/SpineAnimation.js +0 -2
- package/dist/esm/src/SpineAnimation.js.map +0 -1
- package/dist/esm/src/SpineMaterial.js +0 -2
- package/dist/esm/src/SpineMaterial.js.map +0 -1
- package/dist/esm/src/core/SpineGenerator.js +0 -2
- package/dist/esm/src/core/SpineGenerator.js.map +0 -1
- package/dist/esm/src/core/SpinePrimitive.js +0 -2
- package/dist/esm/src/core/SpinePrimitive.js.map +0 -1
- package/dist/esm/src/index.js +0 -2
- package/dist/esm/src/index.js.map +0 -1
- package/dist/esm/src/loader/EditorSkeletonDataLoader.js +0 -2
- package/dist/esm/src/loader/EditorSkeletonDataLoader.js.map +0 -1
- package/dist/esm/src/loader/EditorSpineAtlasLoader.js +0 -2
- package/dist/esm/src/loader/EditorSpineAtlasLoader.js.map +0 -1
- package/dist/esm/src/loader/LoaderUtils.js +0 -2
- package/dist/esm/src/loader/LoaderUtils.js.map +0 -1
- package/dist/esm/src/loader/SpineLoader.js +0 -2
- package/dist/esm/src/loader/SpineLoader.js.map +0 -1
package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Color as t,MathUtils as o}from"../Utils.js";import{VertexAttachment as r}from"./Attachment.js";class s extends r{x=0;y=0;rotation=0;color=new t(.38,.94,0,1);constructor(t){super(t)}computeWorldPosition(t,o){return o.x=this.x*t.a+this.y*t.b+t.worldX,o.y=this.x*t.c+this.y*t.d+t.worldY,o}computeWorldRotation(t){const r=this.rotation*o.degRad,s=Math.cos(r),i=Math.sin(r),n=s*t.a+i*t.b,e=s*t.c+i*t.d;return o.atan2Deg(e,n)}copy(){let t=new s(this.name);return t.x=this.x,t.y=this.y,t.rotation=this.rotation,t.color.setFromColor(this.color),t}}export{s as PointAttachment};
|
|
2
|
-
//# sourceMappingURL=PointAttachment.js.map
|
package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PointAttachment.js","sources":["../../../../../../../node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js"],"sourcesContent":["/******************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\nimport { Color, MathUtils } from \"../Utils.js\";\nimport { VertexAttachment } from \"./Attachment.js\";\n/** An attachment which is a single point and a rotation. This can be used to spawn projectiles, particles, etc. A bone can be\n * used in similar ways, but a PointAttachment is slightly less expensive to compute and can be hidden, shown, and placed in a\n * skin.\n *\n * See [Point Attachments](http://esotericsoftware.com/spine-point-attachments) in the Spine User Guide. */\nexport class PointAttachment extends VertexAttachment {\n x = 0;\n y = 0;\n rotation = 0;\n /** The color of the point attachment as it was in Spine. Available only when nonessential data was exported. Point attachments\n * are not usually rendered at runtime. */\n color = new Color(0.38, 0.94, 0, 1);\n constructor(name) {\n super(name);\n }\n computeWorldPosition(bone, point) {\n point.x = this.x * bone.a + this.y * bone.b + bone.worldX;\n point.y = this.x * bone.c + this.y * bone.d + bone.worldY;\n return point;\n }\n computeWorldRotation(bone) {\n const r = this.rotation * MathUtils.degRad, cos = Math.cos(r), sin = Math.sin(r);\n const x = cos * bone.a + sin * bone.b;\n const y = cos * bone.c + sin * bone.d;\n return MathUtils.atan2Deg(y, x);\n }\n copy() {\n let copy = new PointAttachment(this.name);\n copy.x = this.x;\n copy.y = this.y;\n copy.rotation = this.rotation;\n copy.color.setFromColor(this.color);\n return copy;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnRBdHRhY2htZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F0dGFjaG1lbnRzL1BvaW50QXR0YWNobWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFHL0UsT0FBTyxFQUFFLEtBQUssRUFBVyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFjLE1BQU0saUJBQWlCLENBQUM7QUFFL0Q7Ozs7MkdBSTJHO0FBQzNHLE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQUNwRCxDQUFDLEdBQVcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQyxHQUFXLENBQUMsQ0FBQztJQUNkLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFFckI7OENBQzBDO0lBQzFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVwQyxZQUFhLElBQVk7UUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELG9CQUFvQixDQUFFLElBQVUsRUFBRSxLQUFjO1FBQy9DLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFELEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELG9CQUFvQixDQUFFLElBQVU7UUFDL0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUk7UUFDSCxJQUFJLElBQUksR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztDQUNEIn0="],"names":["PointAttachment","VertexAttachment","x","y","rotation","color","Color","constructor","name","super","computeWorldPosition","bone","point","this","a","b","worldX","c","d","worldY","computeWorldRotation","r","MathUtils","degRad","cos","Math","sin","atan2Deg","copy","setFromColor"],"mappings":"sGAmCO,MAAMA,UAAwBC,EACjCC,EAAI,EACJC,EAAI,EACJC,SAAW,EAGXC,MAAQ,IAAIC,EAAM,IAAM,IAAM,EAAG,GACjC,WAAAC,CAAYC,GACRC,MAAMD,EACT,CACD,oBAAAE,CAAqBC,EAAMC,GAGvB,OAFAA,EAAMV,EAAIW,KAAKX,EAAIS,EAAKG,EAAID,KAAKV,EAAIQ,EAAKI,EAAIJ,EAAKK,OACnDJ,EAAMT,EAAIU,KAAKX,EAAIS,EAAKM,EAAIJ,KAAKV,EAAIQ,EAAKO,EAAIP,EAAKQ,OAC5CP,CACV,CACD,oBAAAQ,CAAqBT,GACjB,MAAMU,EAAIR,KAAKT,SAAWkB,EAAUC,OAAQC,EAAMC,KAAKD,IAAIH,GAAIK,EAAMD,KAAKC,IAAIL,GACxEnB,EAAIsB,EAAMb,EAAKG,EAAIY,EAAMf,EAAKI,EAC9BZ,EAAIqB,EAAMb,EAAKM,EAAIS,EAAMf,EAAKO,EACpC,OAAOI,EAAUK,SAASxB,EAAGD,EAChC,CACD,IAAA0B,GACI,IAAIA,EAAO,IAAI5B,EAAgBa,KAAKL,MAKpC,OAJAoB,EAAK1B,EAAIW,KAAKX,EACd0B,EAAKzB,EAAIU,KAAKV,EACdyB,EAAKxB,SAAWS,KAAKT,SACrBwB,EAAKvB,MAAMwB,aAAahB,KAAKR,OACtBuB,CACV"}
|
package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Color as t,Utils as i,MathUtils as s}from"../Utils.js";import{Attachment as e}from"./Attachment.js";class a extends e{x=0;y=0;scaleX=1;scaleY=1;rotation=0;width=0;height=0;color=new t(1,1,1,1);path;region=null;sequence=null;offset=i.newFloatArray(8);uvs=i.newFloatArray(8);tempColor=new t(1,1,1,1);constructor(t,i){super(t),this.path=i}updateRegion(){if(!this.region)throw new Error("Region not set.");let t=this.region,i=this.uvs;if(null==t)return i[0]=0,i[1]=0,i[2]=0,i[3]=1,i[4]=1,i[5]=1,i[6]=1,void(i[7]=0);let e=this.width/this.region.originalWidth*this.scaleX,a=this.height/this.region.originalHeight*this.scaleY,h=-this.width/2*this.scaleX+this.region.offsetX*e,o=-this.height/2*this.scaleY+this.region.offsetY*a,c=h+this.region.width*e,r=o+this.region.height*a,n=this.rotation*s.degRad,l=Math.cos(n),u=Math.sin(n),g=this.x,C=this.y,f=h*l+g,d=h*u,p=o*l+C,w=o*u,v=c*l+g,y=c*u,X=r*l+C,Y=r*u,m=this.offset;m[0]=f-w,m[1]=p+d,m[2]=f-Y,m[3]=X+d,m[4]=v-Y,m[5]=X+y,m[6]=v-w,m[7]=p+y,90==t.degrees?(i[0]=t.u2,i[1]=t.v2,i[2]=t.u,i[3]=t.v2,i[4]=t.u,i[5]=t.v,i[6]=t.u2,i[7]=t.v):(i[0]=t.u,i[1]=t.v2,i[2]=t.u,i[3]=t.v,i[4]=t.u2,i[5]=t.v,i[6]=t.u2,i[7]=t.v2)}computeWorldVertices(t,i,s,e){null!=this.sequence&&this.sequence.apply(t,this);let a=t.bone,h=this.offset,o=a.worldX,c=a.worldY,r=a.a,n=a.b,l=a.c,u=a.d,g=0,C=0;g=h[0],C=h[1],i[s]=g*r+C*n+o,i[s+1]=g*l+C*u+c,s+=e,g=h[2],C=h[3],i[s]=g*r+C*n+o,i[s+1]=g*l+C*u+c,s+=e,g=h[4],C=h[5],i[s]=g*r+C*n+o,i[s+1]=g*l+C*u+c,s+=e,g=h[6],C=h[7],i[s]=g*r+C*n+o,i[s+1]=g*l+C*u+c}copy(){let t=new a(this.name,this.path);return t.region=this.region,t.x=this.x,t.y=this.y,t.scaleX=this.scaleX,t.scaleY=this.scaleY,t.rotation=this.rotation,t.width=this.width,t.height=this.height,i.arrayCopy(this.uvs,0,t.uvs,0,8),i.arrayCopy(this.offset,0,t.offset,0,8),t.color.setFromColor(this.color),t.sequence=null!=this.sequence?this.sequence.copy():null,t}static X1=0;static Y1=1;static C1R=2;static C1G=3;static C1B=4;static C1A=5;static U1=6;static V1=7;static X2=8;static Y2=9;static C2R=10;static C2G=11;static C2B=12;static C2A=13;static U2=14;static V2=15;static X3=16;static Y3=17;static C3R=18;static C3G=19;static C3B=20;static C3A=21;static U3=22;static V3=23;static X4=24;static Y4=25;static C4R=26;static C4G=27;static C4B=28;static C4A=29;static U4=30;static V4=31}export{a as RegionAttachment};
|
|
2
|
-
//# sourceMappingURL=RegionAttachment.js.map
|
package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RegionAttachment.js","sources":["../../../../../../../node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js"],"sourcesContent":["/******************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\nimport { Color, MathUtils, Utils } from \"../Utils.js\";\nimport { Attachment } from \"./Attachment.js\";\n/** An attachment that displays a textured quadrilateral.\n *\n * See [Region attachments](http://esotericsoftware.com/spine-regions) in the Spine User Guide. */\nexport class RegionAttachment extends Attachment {\n /** The local x translation. */\n x = 0;\n /** The local y translation. */\n y = 0;\n /** The local scaleX. */\n scaleX = 1;\n /** The local scaleY. */\n scaleY = 1;\n /** The local rotation. */\n rotation = 0;\n /** The width of the region attachment in Spine. */\n width = 0;\n /** The height of the region attachment in Spine. */\n height = 0;\n /** The color to tint the region attachment. */\n color = new Color(1, 1, 1, 1);\n /** The name of the texture region for this attachment. */\n path;\n region = null;\n sequence = null;\n /** For each of the 4 vertices, a pair of <code>x,y</code> values that is the local position of the vertex.\n *\n * See {@link #updateOffset()}. */\n offset = Utils.newFloatArray(8);\n uvs = Utils.newFloatArray(8);\n tempColor = new Color(1, 1, 1, 1);\n constructor(name, path) {\n super(name);\n this.path = path;\n }\n /** Calculates the {@link #offset} using the region settings. Must be called after changing region settings. */\n updateRegion() {\n if (!this.region)\n throw new Error(\"Region not set.\");\n let region = this.region;\n let uvs = this.uvs;\n if (region == null) {\n uvs[0] = 0;\n uvs[1] = 0;\n uvs[2] = 0;\n uvs[3] = 1;\n uvs[4] = 1;\n uvs[5] = 1;\n uvs[6] = 1;\n uvs[7] = 0;\n return;\n }\n let regionScaleX = this.width / this.region.originalWidth * this.scaleX;\n let regionScaleY = this.height / this.region.originalHeight * this.scaleY;\n let localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX;\n let localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY;\n let localX2 = localX + this.region.width * regionScaleX;\n let localY2 = localY + this.region.height * regionScaleY;\n let radians = this.rotation * MathUtils.degRad;\n let cos = Math.cos(radians);\n let sin = Math.sin(radians);\n let x = this.x, y = this.y;\n let localXCos = localX * cos + x;\n let localXSin = localX * sin;\n let localYCos = localY * cos + y;\n let localYSin = localY * sin;\n let localX2Cos = localX2 * cos + x;\n let localX2Sin = localX2 * sin;\n let localY2Cos = localY2 * cos + y;\n let localY2Sin = localY2 * sin;\n let offset = this.offset;\n offset[0] = localXCos - localYSin;\n offset[1] = localYCos + localXSin;\n offset[2] = localXCos - localY2Sin;\n offset[3] = localY2Cos + localXSin;\n offset[4] = localX2Cos - localY2Sin;\n offset[5] = localY2Cos + localX2Sin;\n offset[6] = localX2Cos - localYSin;\n offset[7] = localYCos + localX2Sin;\n if (region.degrees == 90) {\n uvs[0] = region.u2;\n uvs[1] = region.v2;\n uvs[2] = region.u;\n uvs[3] = region.v2;\n uvs[4] = region.u;\n uvs[5] = region.v;\n uvs[6] = region.u2;\n uvs[7] = region.v;\n }\n else {\n uvs[0] = region.u;\n uvs[1] = region.v2;\n uvs[2] = region.u;\n uvs[3] = region.v;\n uvs[4] = region.u2;\n uvs[5] = region.v;\n uvs[6] = region.u2;\n uvs[7] = region.v2;\n }\n }\n /** Transforms the attachment's four vertices to world coordinates. If the attachment has a {@link #sequence}, the region may\n * be changed.\n * <p>\n * See <a href=\"http://esotericsoftware.com/spine-runtime-skeletons#World-transforms\">World transforms</a> in the Spine\n * Runtimes Guide.\n * @param worldVertices The output world vertices. Must have a length >= <code>offset</code> + 8.\n * @param offset The <code>worldVertices</code> index to begin writing values.\n * @param stride The number of <code>worldVertices</code> entries between the value pairs written. */\n computeWorldVertices(slot, worldVertices, offset, stride) {\n if (this.sequence != null)\n this.sequence.apply(slot, this);\n let bone = slot.bone;\n let vertexOffset = this.offset;\n let x = bone.worldX, y = bone.worldY;\n let a = bone.a, b = bone.b, c = bone.c, d = bone.d;\n let offsetX = 0, offsetY = 0;\n offsetX = vertexOffset[0];\n offsetY = vertexOffset[1];\n worldVertices[offset] = offsetX * a + offsetY * b + x; // br\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n offset += stride;\n offsetX = vertexOffset[2];\n offsetY = vertexOffset[3];\n worldVertices[offset] = offsetX * a + offsetY * b + x; // bl\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n offset += stride;\n offsetX = vertexOffset[4];\n offsetY = vertexOffset[5];\n worldVertices[offset] = offsetX * a + offsetY * b + x; // ul\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n offset += stride;\n offsetX = vertexOffset[6];\n offsetY = vertexOffset[7];\n worldVertices[offset] = offsetX * a + offsetY * b + x; // ur\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n }\n copy() {\n let copy = new RegionAttachment(this.name, this.path);\n copy.region = this.region;\n copy.x = this.x;\n copy.y = this.y;\n copy.scaleX = this.scaleX;\n copy.scaleY = this.scaleY;\n copy.rotation = this.rotation;\n copy.width = this.width;\n copy.height = this.height;\n Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, 8);\n Utils.arrayCopy(this.offset, 0, copy.offset, 0, 8);\n copy.color.setFromColor(this.color);\n copy.sequence = this.sequence != null ? this.sequence.copy() : null;\n return copy;\n }\n static X1 = 0;\n static Y1 = 1;\n static C1R = 2;\n static C1G = 3;\n static C1B = 4;\n static C1A = 5;\n static U1 = 6;\n static V1 = 7;\n static X2 = 8;\n static Y2 = 9;\n static C2R = 10;\n static C2G = 11;\n static C2B = 12;\n static C2A = 13;\n static U2 = 14;\n static V2 = 15;\n static X3 = 16;\n static Y3 = 17;\n static C3R = 18;\n static C3G = 19;\n static C3B = 20;\n static C3A = 21;\n static U3 = 22;\n static V3 = 23;\n static X4 = 24;\n static Y4 = 25;\n static C4R = 26;\n static C4G = 27;\n static C4B = 28;\n static C4A = 29;\n static U4 = 30;\n static V4 = 31;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uQXR0YWNobWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdHRhY2htZW50cy9SZWdpb25BdHRhY2htZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUkvRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBbUIsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUs3Qzs7a0dBRWtHO0FBQ2xHLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBQy9DLCtCQUErQjtJQUMvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRU4sK0JBQStCO0lBQy9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFTix3QkFBd0I7SUFDeEIsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVYLHdCQUF3QjtJQUN4QixNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRVgsMEJBQTBCO0lBQzFCLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFYixtREFBbUQ7SUFDbkQsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVWLG9EQUFvRDtJQUNwRCxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRVgsK0NBQStDO0lBQy9DLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5QiwwREFBMEQ7SUFDMUQsSUFBSSxDQUFTO0lBRWIsTUFBTSxHQUF5QixJQUFJLENBQUM7SUFDcEMsUUFBUSxHQUFvQixJQUFJLENBQUM7SUFFakM7O3NDQUVrQztJQUNsQyxNQUFNLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoQyxHQUFHLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QixTQUFTLEdBQUcsSUFB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LENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsTUFBTSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsTUFBTSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsTUFBTSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUVmLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNoQixNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNoQixNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNoQixNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNoQixNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDIn0="],"names":["RegionAttachment","Attachment","x","y","scaleX","scaleY","rotation","width","height","color","Color","path","region","sequence","offset","Utils","newFloatArray","uvs","tempColor","constructor","name","super","this","updateRegion","Error","regionScaleX","originalWidth","regionScaleY","originalHeight","localX","offsetX","localY","offsetY","localX2","localY2","radians","MathUtils","degRad","cos","Math","sin","localXCos","localXSin","localYCos","localYSin","localX2Cos","localX2Sin","localY2Cos","localY2Sin","degrees","u2","v2","u","v","computeWorldVertices","slot","worldVertices","stride","apply","bone","vertexOffset","worldX","worldY","a","b","c","d","copy","arrayCopy","setFromColor","static"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Utils as e}from"../Utils.js";class t{static _nextID=0;id=t.nextID();regions;start=0;digits=0;setupIndex=0;constructor(e){this.regions=new Array(e)}copy(){let n=new t(this.regions.length);return e.arrayCopy(this.regions,0,n.regions,0,this.regions.length),n.start=this.start,n.digits=this.digits,n.setupIndex=this.setupIndex,n}apply(e,t){let n=e.sequenceIndex;-1==n&&(n=this.setupIndex),n>=this.regions.length&&(n=this.regions.length-1);let s=this.regions[n];t.region!=s&&(t.region=s,t.updateRegion())}getPath(e,t){let n=e,s=(this.start+t).toString();for(let e=this.digits-s.length;e>0;e--)n+="0";return n+=s,n}static nextID(){return t._nextID++}}var n;!function(e){e[e.hold=0]="hold",e[e.once=1]="once",e[e.loop=2]="loop",e[e.pingpong=3]="pingpong",e[e.onceReverse=4]="onceReverse",e[e.loopReverse=5]="loopReverse",e[e.pingpongReverse=6]="pingpongReverse"}(n||(n={}));const s=[n.hold,n.once,n.loop,n.pingpong,n.onceReverse,n.loopReverse,n.pingpongReverse];export{t as Sequence,n as SequenceMode,s as SequenceModeValues};
|
|
2
|
-
//# sourceMappingURL=Sequence.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sequence.js","sources":["../../../../../../../node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js"],"sourcesContent":["/******************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\nimport { Utils } from \"../Utils.js\";\nexport class Sequence {\n static _nextID = 0;\n id = Sequence.nextID();\n regions;\n start = 0;\n digits = 0;\n /** The index of the region to show for the setup pose. */\n setupIndex = 0;\n constructor(count) {\n this.regions = new Array(count);\n }\n copy() {\n let copy = new Sequence(this.regions.length);\n Utils.arrayCopy(this.regions, 0, copy.regions, 0, this.regions.length);\n copy.start = this.start;\n copy.digits = this.digits;\n copy.setupIndex = this.setupIndex;\n return copy;\n }\n apply(slot, attachment) {\n let index = slot.sequenceIndex;\n if (index == -1)\n index = this.setupIndex;\n if (index >= this.regions.length)\n index = this.regions.length - 1;\n let region = this.regions[index];\n if (attachment.region != region) {\n attachment.region = region;\n attachment.updateRegion();\n }\n }\n getPath(basePath, index) {\n let result = basePath;\n let frame = (this.start + index).toString();\n for (let i = this.digits - frame.length; i > 0; i--)\n result += \"0\";\n result += frame;\n return result;\n }\n static nextID() {\n return Sequence._nextID++;\n }\n}\nexport var SequenceMode;\n(function (SequenceMode) {\n SequenceMode[SequenceMode[\"hold\"] = 0] = \"hold\";\n SequenceMode[SequenceMode[\"once\"] = 1] = \"once\";\n SequenceMode[SequenceMode[\"loop\"] = 2] = \"loop\";\n SequenceMode[SequenceMode[\"pingpong\"] = 3] = \"pingpong\";\n SequenceMode[SequenceMode[\"onceReverse\"] = 4] = \"onceReverse\";\n SequenceMode[SequenceMode[\"loopReverse\"] = 5] = \"loopReverse\";\n SequenceMode[SequenceMode[\"pingpongReverse\"] = 6] = \"pingpongReverse\";\n})(SequenceMode || (SequenceMode = {}));\nexport const SequenceModeValues = [\n SequenceMode.hold,\n SequenceMode.once,\n SequenceMode.loop,\n SequenceMode.pingpong,\n SequenceMode.onceReverse,\n SequenceMode.loopReverse,\n SequenceMode.pingpongReverse\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXR0YWNobWVudHMvU2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBSy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHcEMsTUFBTSxPQUFPLFFBQVE7SUFDWixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUUzQixFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBa0I7SUFDekIsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNWLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWCwwREFBMEQ7SUFDMUQsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUVmLFlBQWEsS0FBYTtRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksS0FBSyxDQUFnQixLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSTtRQUNILElBQUksSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBRSxJQUFVLEVBQUUsVUFBNEI7UUFDOUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMvQixJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7WUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLE1BQU0sRUFBRTtZQUNoQyxVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUMzQixVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDMUI7SUFDRixDQUFDO0lBRUQsT0FBTyxDQUFFLFFBQWdCLEVBQUUsS0FBYTtRQUN2QyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2xELE1BQU0sSUFBSSxHQUFHLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDO1FBQ2hCLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVPLE1BQU0sQ0FBQyxNQUFNO1FBQ3BCLE9BQU8sUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7O0FBR0YsTUFBTSxDQUFOLElBQVksWUFRWDtBQVJELFdBQVksWUFBWTtJQUN2QiwrQ0FBUSxDQUFBO0lBQ1IsK0NBQVEsQ0FBQTtJQUNSLCtDQUFRLENBQUE7SUFDUix1REFBWSxDQUFBO0lBQ1osNkRBQWUsQ0FBQTtJQUNmLDZEQUFlLENBQUE7SUFDZixxRUFBbUIsQ0FBQTtBQUNwQixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkI7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNqQyxZQUFZLENBQUMsSUFBSTtJQUNqQixZQUFZLENBQUMsSUFBSTtJQUNqQixZQUFZLENBQUMsSUFBSTtJQUNqQixZQUFZLENBQUMsUUFBUTtJQUNyQixZQUFZLENBQUMsV0FBVztJQUN4QixZQUFZLENBQUMsV0FBVztJQUN4QixZQUFZLENBQUMsZUFBZTtDQUM1QixDQUFDIn0="],"names":["Sequence","static","id","nextID","regions","start","digits","setupIndex","constructor","count","this","Array","copy","length","Utils","arrayCopy","apply","slot","attachment","index","sequenceIndex","region","updateRegion","getPath","basePath","result","frame","toString","i","_nextID","SequenceMode","SequenceModeValues","hold","once","loop","pingpong","onceReverse","loopReverse","pingpongReverse"],"mappings":"oCA6BO,MAAMA,EACTC,eAAiB,EACjBC,GAAKF,EAASG,SACdC,QACAC,MAAQ,EACRC,OAAS,EAETC,WAAa,EACb,WAAAC,CAAYC,GACRC,KAAKN,QAAU,IAAIO,MAAMF,EAC5B,CACD,IAAAG,GACI,IAAIA,EAAO,IAAIZ,EAASU,KAAKN,QAAQS,QAKrC,OAJAC,EAAMC,UAAUL,KAAKN,QAAS,EAAGQ,EAAKR,QAAS,EAAGM,KAAKN,QAAQS,QAC/DD,EAAKP,MAAQK,KAAKL,MAClBO,EAAKN,OAASI,KAAKJ,OACnBM,EAAKL,WAAaG,KAAKH,WAChBK,CACV,CACD,KAAAI,CAAMC,EAAMC,GACR,IAAIC,EAAQF,EAAKG,eACH,GAAVD,IACAA,EAAQT,KAAKH,YACbY,GAAST,KAAKN,QAAQS,SACtBM,EAAQT,KAAKN,QAAQS,OAAS,GAClC,IAAIQ,EAASX,KAAKN,QAAQe,GACtBD,EAAWG,QAAUA,IACrBH,EAAWG,OAASA,EACpBH,EAAWI,eAElB,CACD,OAAAC,CAAQC,EAAUL,GACd,IAAIM,EAASD,EACTE,GAAShB,KAAKL,MAAQc,GAAOQ,WACjC,IAAK,IAAIC,EAAIlB,KAAKJ,OAASoB,EAAMb,OAAQe,EAAI,EAAGA,IAC5CH,GAAU,IAEd,OADAA,GAAUC,EACHD,CACV,CACD,aAAOtB,GACH,OAAOH,EAAS6B,SACnB,EAEK,IAACC,GACX,SAAWA,GACPA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAAuB,SAAI,GAAK,WAC7CA,EAAaA,EAA0B,YAAI,GAAK,cAChDA,EAAaA,EAA0B,YAAI,GAAK,cAChDA,EAAaA,EAA8B,gBAAI,GAAK,iBACvD,CARD,CAQGA,IAAiBA,EAAe,CAAE,IACzB,MAACC,EAAqB,CAC9BD,EAAaE,KACbF,EAAaG,KACbH,EAAaI,KACbJ,EAAaK,SACbL,EAAaM,YACbN,EAAaO,YACbP,EAAaQ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polyfills.js","sources":["../../../../../../node_modules/@esotericsoftware/spine-core/dist/polyfills.js"],"sourcesContent":["/******************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n(() => {\n if (typeof Math.fround === \"undefined\") {\n Math.fround = (function (array) {\n return function (x) {\n return array[0] = x, array[0];\n };\n })(new Float32Array(1));\n }\n})();\nexport {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWZpbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BvbHlmaWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFFL0UsQ0FBQyxHQUFHLEVBQUU7SUFDTCxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLFVBQVUsS0FBSztZQUM3QixPQUFPLFVBQVUsQ0FBUztnQkFDekIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyJ9"],"names":["array","Math","fround","Float32Array","x"],"mappings":"AA4BA,IAEiCA,OADF,IAAhBC,KAAKC,SACZD,KAAKC,QAAoBF,EAItB,IAAIG,aAAa,GAHT,SAAUC,GACb,OAAOJ,EAAM,GAAKI,EAAGJ,EAAM,EAC3C"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function e(e,r,t,o){var c,f=arguments.length,n=f<3?r:null===o?o=Object.getOwnPropertyDescriptor(r,t):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,r,t,o);else for(var p=e.length-1;p>=0;p--)(c=e[p])&&(n=(f<3?c(n):f>3?c(r,t,n):c(r,t))||n);return f>3&&n&&Object.defineProperty(r,t,n),n}"function"==typeof SuppressedError&&SuppressedError;export{e as __decorate};
|
|
2
|
-
//# sourceMappingURL=tslib.es6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tslib.es6.js","sources":["../../../../node_modules/tslib/tslib.es6.js"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","SuppressedError"],"mappings":"AAsDO,SAASA,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,iBAAZQ,SAAoD,mBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,CAChE,CAoQkD,mBAApBO,iBAAiCA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__decorate as e}from"../node_modules/tslib/tslib.es6.js";import"../node_modules/@esotericsoftware/spine-core/dist/Animation.js";import{AnimationState as t}from"../node_modules/@esotericsoftware/spine-core/dist/AnimationState.js";import{AnimationStateData as s}from"../node_modules/@esotericsoftware/spine-core/dist/AnimationStateData.js";import{Vector2 as o}from"../node_modules/@esotericsoftware/spine-core/dist/Utils.js";import"../node_modules/@esotericsoftware/spine-core/dist/Texture.js";import"../node_modules/@esotericsoftware/spine-core/dist/BoneData.js";import"../node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js";import{Skeleton as i,Physics as r}from"../node_modules/@esotericsoftware/spine-core/dist/Skeleton.js";import"../node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js";import"../node_modules/@esotericsoftware/spine-core/dist/SlotData.js";import"../node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js";import"../node_modules/@esotericsoftware/spine-core/dist/polyfills.js";import{SpineGenerator as n}from"./core/SpineGenerator.js";import{Renderer as a,ShaderMacro as l,Logger as d,BoundingBox as p,ignoreClone as _}from"@galacean/engine";import{SpineMaterial as m}from"./SpineMaterial.js";class c extends a{static{this._uvMacro=l.getByName("RENDERER_HAS_UV")}static{this._enableVertexColorMacro=l.getByName("RENDERER_ENABLE_VERTEXCOLOR")}static{this._tempOffset=new o}static{this._tempSize=new o}static{this._tempArray=[0,0]}static getDefaultMaterial(e){let t=this._defaultMaterial;if(t){if(t.engine===e)return t.clone();t.destroy(!0),t=null}return t=new m(e),t.isGCIgnored=!0,this._defaultMaterial=t,t.clone()}get animationName(){return this._animationName}set animationName(e){this._animationName=e,this.state&&(e?this.state.setAnimation(0,e,this.loop):this.state.setEmptyAnimation(0,0))}get loop(){return this._loop}set loop(e){const t=this.state&&this.state.getCurrent(0);this._loop=e,t&&(t.loop=e)}get state(){return this._state}get skeleton(){return this._skeleton}constructor(e){super(e),this._loop=!1,this._spineGenerator=new n(this.engine,this)}initialize(e){const{skeletonData:o}=this;if(!o)return void d.error("No spine skeleton data");e&&(this.setting=e),this._skeleton=new i(o);const r=new s(o);this._state=new t(r),this._spineGenerator.initialize(o,this.setting);const{_skeleton:n,_state:a,initialSkinName:l}=this;l&&(n.setSkinByName(this.initialSkinName),n.setSlotsToSetupPose(),a.apply(n))}addSeparateSlot(e){this._skeleton||console.error("Skeleton not found!");this._skeleton.findSlot(e)?this._spineGenerator.addSeparateSlot(e):console.warn(`Slot: ${e} not find.`)}hackSeparateSlotTexture(e,t){const{separateSlots:s}=this._spineGenerator;0!==s.length?s.includes(e)?this._spineGenerator.addSeparateSlotTexture(e,t):console.warn(`Slot ${e} is not separated. You should use addSeparateSlot to separate it`):console.warn("You need add separate slot")}update(e){if(!this._skeleton||!this._state)return;const t=this._state,s=this._skeleton;t.update(e),t.apply(s),s.update(e),s.updateWorldTransform(r.update)}_updateRendererShaderData(e){super._updateRendererShaderData(e),this._skeleton&&this._spineGenerator.buildPrimitive(this._skeleton)}_render(e){const t=this._primitive,s=this._subPrimitives;if(2&this._dirtyUpdateFlag){const e=this.shaderData,s=t.vertexElements;e.disableMacro(c._uvMacro),e.disableMacro(c._enableVertexColorMacro);for(let t=0,o=s.length;t<o;t++)switch(s[t].attribute){case"TEXCOORD_0":e.enableMacro(c._uvMacro);break;case"COLOR_0":e.enableMacro(c._enableVertexColorMacro)}this._dirtyUpdateFlag&=-3}const{_materials:o,_engine:i}=this,r=i._renderElementPool.get();r.set(this.priority,this._distanceForSort);const n=i._subRenderElementPool;if(s){for(let e=0,i=s.length;e<i;e++){let i=o[e];if(!i)continue;(i.destroyed||i.shader.destroyed)&&(i=this.engine._meshMagentaMaterial);const a=n.get();a.set(this,i,t,s[e]),r.addSubRenderElement(a)}e.camera._renderPipeline.pushRenderElement(e,r)}}_updateBounds(e){const t=e,s=c._tempOffset,o=c._tempSize,i=c._tempArray,r=this.setting?.zSpacing||.01,n=this._skeleton;n.getBounds(s,o,i);const{x:a,y:l}=s;t.min.set(a,l,0),t.max.set(a+o.x,l+o.y,n.drawOrder.length*r),p.transform(t,this.entity.transform.worldMatrix,t)}_cloneTo(e,t,s){super._cloneTo(e,t,s),e.skeletonData=this.skeletonData;const o={...this.setting};e.setting=o,e.initialize(e.setting)}_onDestroy(){const e=this._primitive,t=this._subPrimitives;e&&(e.destroyed||this._addResourceReferCount(e,-1),this._primitive=null),t&&(this._subPrimitives.length=0),this.skeletonData=null,this._skeleton=null,this._spineGenerator=null,this.setting=null,super._onDestroy()}}var h;e([_],c.prototype,"setting",void 0),e([_],c.prototype,"skeletonData",void 0),e([_],c.prototype,"initialSkinName",void 0),e([_],c.prototype,"_primitive",void 0),e([_],c.prototype,"_subPrimitives",void 0),e([_],c.prototype,"_skeleton",void 0),e([_],c.prototype,"_state",void 0),e([_],c.prototype,"_spineGenerator",void 0),e([_],c.prototype,"_animationName",void 0),e([_],c.prototype,"_loop",void 0),function(e){e[e.VertexElementMacro=2]="VertexElementMacro"}(h||(h={}));export{c as SpineAnimation};
|
|
2
|
-
//# sourceMappingURL=SpineAnimation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpineAnimation.js","sources":["../../../src/SpineAnimation.ts"],"sourcesContent":["import { Skeleton, SkeletonData, AnimationState, AnimationStateData, Physics, Vector2 } from \"@esotericsoftware/spine-core\";\nimport { SpineGenerator } from \"./core/SpineGenerator\";\nimport { SpineRenderSetting } from \"./types\";\nimport {\n Renderer,\n Entity,\n ignoreClone,\n Texture2D,\n Material,\n Engine,\n BoundingBox,\n ShaderMacro,\n Primitive,\n Logger,\n} from \"@galacean/engine\";\nimport { SpineMaterial } from \"./SpineMaterial\";\nimport { SubPrimitive } from \"./core/SpinePrimitive\";\n\nexport class SpineAnimation extends Renderer {\n private static _defaultMaterial: Material;\n private static _uvMacro = ShaderMacro.getByName(\"RENDERER_HAS_UV\");\n private static _enableVertexColorMacro = ShaderMacro.getByName(\"RENDERER_ENABLE_VERTEXCOLOR\");\n private static _tempOffset: Vector2 = new Vector2();\n private static _tempSize: Vector2 = new Vector2();\n private static _tempArray: Array<number> = [0, 0];\n\n static getDefaultMaterial(engine: Engine): Material {\n let defaultMaterial = this._defaultMaterial;\n if (defaultMaterial) {\n if (defaultMaterial.engine === engine) {\n return defaultMaterial.clone();\n } else {\n defaultMaterial.destroy(true);\n defaultMaterial = null;\n }\n }\n defaultMaterial = new SpineMaterial(engine);\n defaultMaterial.isGCIgnored = true;\n this._defaultMaterial = defaultMaterial;\n return defaultMaterial.clone();\n }\n\n @ignoreClone\n setting: SpineRenderSetting;\n @ignoreClone\n skeletonData: SkeletonData;\n @ignoreClone\n initialSkinName: string;\n /* @internal */\n @ignoreClone\n _primitive: Primitive;\n /* @internal */\n @ignoreClone\n _subPrimitives: SubPrimitive[];\n @ignoreClone\n protected _skeleton: Skeleton;\n @ignoreClone\n protected _state: AnimationState;\n @ignoreClone\n protected _spineGenerator: SpineGenerator;\n @ignoreClone\n private _animationName: string;\n @ignoreClone\n private _loop: boolean = false;\n\n get animationName() {\n return this._animationName;\n }\n\n set animationName(value: string) {\n this._animationName = value;\n if (this.state) {\n if (value) {\n this.state.setAnimation(0, value, this.loop);\n } else {\n this.state.setEmptyAnimation(0, 0);\n }\n }\n }\n\n get loop() {\n return this._loop;\n }\n\n set loop(value: boolean) {\n const entry = this.state && this.state.getCurrent(0);\n this._loop = value;\n if (entry) {\n entry.loop = value;\n }\n }\n\n get state() {\n return this._state;\n }\n\n get skeleton() {\n return this._skeleton;\n }\n\n constructor(entity: Entity) {\n super(entity);\n this._spineGenerator = new SpineGenerator(this.engine, this);\n }\n\n initialize(setting?: SpineRenderSetting) {\n const { skeletonData } = this;\n if (!skeletonData) {\n Logger.error('No spine skeleton data');\n return;\n }\n if (setting) this.setting = setting;\n this._skeleton = new Skeleton(skeletonData);\n const animationData = new AnimationStateData(skeletonData);\n this._state = new AnimationState(animationData);\n this._spineGenerator.initialize(skeletonData, this.setting);\n const { _skeleton, _state, initialSkinName } = this;\n if (initialSkinName) {\n _skeleton.setSkinByName(this.initialSkinName);\n _skeleton.setSlotsToSetupPose();\n _state.apply(_skeleton);\n }\n }\n\n /**\n * Separate slot by slot name. This will add a new sub primitive, and new materials.\n */\n addSeparateSlot(slotName: string) {\n if (!this._skeleton) {\n console.error(\"Skeleton not found!\");\n }\n const slot = this._skeleton.findSlot(slotName);\n if (slot) {\n this._spineGenerator.addSeparateSlot(slotName);\n } else {\n console.warn(`Slot: ${slotName} not find.`);\n }\n }\n\n /**\n * Change texture of a separated slot by name.\n */\n hackSeparateSlotTexture(slotName: string, texture: Texture2D) {\n const { separateSlots } = this._spineGenerator;\n if (separateSlots.length === 0) {\n console.warn(\"You need add separate slot\");\n return;\n }\n if (separateSlots.includes(slotName)) {\n this._spineGenerator.addSeparateSlotTexture(slotName, texture);\n } else {\n console.warn(\n `Slot ${slotName} is not separated. You should use addSeparateSlot to separate it`\n );\n }\n }\n\n /**\n * @internal\n */\n override update(delta: number): void {\n if (!this._skeleton || !this._state) return;\n const state = this._state;\n const skeleton = this._skeleton;\n state.update(delta);\n state.apply(skeleton);\n skeleton.update(delta);\n skeleton.updateWorldTransform(Physics.update);\n }\n\n /**\n * @internal\n */\n override _updateRendererShaderData(context: any): void {\n super._updateRendererShaderData(context);\n if (this._skeleton) {\n this._spineGenerator.buildPrimitive(this._skeleton);\n }\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n protected override _render(context: any): void {\n const primitive = this._primitive;\n const subPrimitives = this._subPrimitives;\n if (this._dirtyUpdateFlag & SpineAnimationUpdateFlags.VertexElementMacro) {\n const shaderData = this.shaderData;\n const vertexElements = primitive.vertexElements;\n\n shaderData.disableMacro(SpineAnimation._uvMacro);\n shaderData.disableMacro(SpineAnimation._enableVertexColorMacro);\n\n for (let i = 0, n = vertexElements.length; i < n; i++) {\n switch (vertexElements[i].attribute) {\n case \"TEXCOORD_0\":\n shaderData.enableMacro(SpineAnimation._uvMacro);\n break;\n case \"COLOR_0\":\n shaderData.enableMacro(SpineAnimation._enableVertexColorMacro);\n break;\n }\n }\n this._dirtyUpdateFlag &= ~SpineAnimationUpdateFlags.VertexElementMacro;\n }\n\n const { _materials: materials, _engine: engine } = this;\n // @ts-ignore\n const renderElement = engine._renderElementPool.get();\n // @ts-ignore\n renderElement.set(this.priority, this._distanceForSort);\n // @ts-ignore\n const subRenderElementPool = engine._subRenderElementPool;\n if (!subPrimitives) return;\n for (let i = 0, n = subPrimitives.length; i < n; i++) {\n let material = materials[i];\n if (!material) {\n continue;\n }\n if (material.destroyed || material.shader.destroyed) {\n // @ts-ignore\n material = this.engine._meshMagentaMaterial;\n }\n\n const subRenderElement = subRenderElementPool.get();\n // @ts-ignore\n subRenderElement.set(this, material, primitive, subPrimitives[i]);\n renderElement.addSubRenderElement(subRenderElement);\n }\n // @ts-ignore\n context.camera._renderPipeline.pushRenderElement(context, renderElement);\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n protected override _updateBounds(worldBounds: BoundingBox): void {\n const bounds = worldBounds;\n const offset = SpineAnimation._tempOffset;\n const size = SpineAnimation._tempSize;\n const temp = SpineAnimation._tempArray;\n const zSpacing = this.setting?.zSpacing || 0.01;\n const skeleton = this._skeleton;\n skeleton.getBounds(offset, size, temp);\n const { x, y } = offset;\n bounds.min.set(x, y, 0);\n bounds.max.set(x + size.x, y + size.y, skeleton.drawOrder.length * zSpacing);\n BoundingBox.transform(\n bounds,\n this.entity.transform.worldMatrix,\n bounds,\n );\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _cloneTo(target: SpineAnimation, srcRoot: Entity, targetRoot: Entity): void {\n // @ts-ignore\n super._cloneTo(target, srcRoot, targetRoot);\n target.skeletonData = this.skeletonData;\n const _cloneSetting = { ...this.setting };\n target.setting = _cloneSetting;\n target.initialize(target.setting);\n }\n\n /**\n * @internal\n */\n protected override _onDestroy(): void {\n const primitive = this._primitive;\n const subPrimitives = this._subPrimitives;\n if (primitive) {\n primitive.destroyed || this._addResourceReferCount(primitive, -1);\n this._primitive = null;\n }\n if (subPrimitives) {\n this._subPrimitives.length = 0;\n }\n this.skeletonData = null;\n this._skeleton = null;\n this._spineGenerator = null;\n this.setting = null;\n super._onDestroy();\n }\n}\n\n/**\n * @remarks Extends `RendererUpdateFlag`.\n */\nenum SpineAnimationUpdateFlags {\n /** VertexElementMacro. */\n VertexElementMacro = 0x2,\n}\n"],"names":["SpineAnimation","Renderer","_uvMacro","ShaderMacro","getByName","_enableVertexColorMacro","_tempOffset","Vector2","_tempSize","_tempArray","getDefaultMaterial","engine","defaultMaterial","this","_defaultMaterial","clone","destroy","SpineMaterial","isGCIgnored","animationName","_animationName","value","state","setAnimation","loop","setEmptyAnimation","_loop","entry","getCurrent","_state","skeleton","_skeleton","constructor","entity","super","_spineGenerator","SpineGenerator","initialize","setting","skeletonData","Logger","error","Skeleton","animationData","AnimationStateData","AnimationState","initialSkinName","setSkinByName","setSlotsToSetupPose","apply","addSeparateSlot","slotName","console","findSlot","warn","hackSeparateSlotTexture","texture","separateSlots","length","includes","addSeparateSlotTexture","update","delta","updateWorldTransform","Physics","_updateRendererShaderData","context","buildPrimitive","_render","primitive","_primitive","subPrimitives","_subPrimitives","_dirtyUpdateFlag","shaderData","vertexElements","disableMacro","i","n","attribute","enableMacro","_materials","materials","_engine","renderElement","_renderElementPool","get","set","priority","_distanceForSort","subRenderElementPool","_subRenderElementPool","material","destroyed","shader","_meshMagentaMaterial","subRenderElement","addSubRenderElement","camera","_renderPipeline","pushRenderElement","_updateBounds","worldBounds","bounds","offset","size","temp","zSpacing","getBounds","x","y","min","max","drawOrder","BoundingBox","transform","worldMatrix","_cloneTo","target","srcRoot","targetRoot","_cloneSetting","_onDestroy","_addResourceReferCount","SpineAnimationUpdateFlags"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Material as e,Shader as n,BlendFactor as r,BlendOperation as a,CullMode as t,RenderQueueType as o}from"@galacean/engine";class i extends e{static{this._spineVS="\n uniform mat4 renderer_MVPMat;\n\n attribute vec3 POSITION;\n attribute vec2 TEXCOORD_0;\n attribute vec4 COLOR_0;\n \n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n \n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n }\n "}static{this._spineFS="\n uniform sampler2D material_SpineTexture;\n\n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n vec4 baseColor = texture2D(material_SpineTexture, v_uv);\n gl_FragColor = baseColor * v_color;\n }\n "}constructor(e){super(e,n.find("galacean-spine-shader")||n.create("galacean-spine-shader",i._spineVS,i._spineFS));const l=this.renderState,c=l.blendState.targetBlendState;c.enabled=!0,c.sourceColorBlendFactor=r.SourceAlpha,c.destinationColorBlendFactor=r.OneMinusSourceAlpha,c.sourceAlphaBlendFactor=r.One,c.destinationAlphaBlendFactor=r.OneMinusSourceAlpha,c.colorBlendOperation=c.alphaBlendOperation=a.Add,l.depthState.writeEnabled=!1,l.rasterState.cullMode=t.Off,l.renderQueueType=o.Transparent}}export{i as SpineMaterial};
|
|
2
|
-
//# sourceMappingURL=SpineMaterial.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpineMaterial.js","sources":["../../../src/SpineMaterial.ts"],"sourcesContent":["import {\n BlendFactor,\n BlendOperation,\n CullMode,\n Engine,\n Material,\n RenderQueueType,\n Shader,\n} from \"@galacean/engine\";\n\nexport class SpineMaterial extends Material {\n private static _spineVS = `\n uniform mat4 renderer_MVPMat;\n\n attribute vec3 POSITION;\n attribute vec2 TEXCOORD_0;\n attribute vec4 COLOR_0;\n \n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n \n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n }\n `;\n\n private static _spineFS = `\n uniform sampler2D material_SpineTexture;\n\n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n vec4 baseColor = texture2D(material_SpineTexture, v_uv);\n gl_FragColor = baseColor * v_color;\n }\n `;\n constructor(engine: Engine) {\n const shader =\n Shader.find(\"galacean-spine-shader\") ||\n Shader.create(\n \"galacean-spine-shader\",\n SpineMaterial._spineVS,\n SpineMaterial._spineFS\n );\n super(engine, shader);\n const renderState = this.renderState;\n const target = renderState.blendState.targetBlendState;\n target.enabled = true;\n target.sourceColorBlendFactor = BlendFactor.SourceAlpha;\n target.destinationColorBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.sourceAlphaBlendFactor = BlendFactor.One;\n target.destinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.colorBlendOperation = target.alphaBlendOperation =\n BlendOperation.Add;\n renderState.depthState.writeEnabled = false;\n renderState.rasterState.cullMode = CullMode.Off;\n renderState.renderQueueType = RenderQueueType.Transparent;\n }\n}\n"],"names":["SpineMaterial","Material","_spineVS","_spineFS","constructor","engine","super","Shader","find","create","renderState","this","target","blendState","targetBlendState","enabled","sourceColorBlendFactor","BlendFactor","SourceAlpha","destinationColorBlendFactor","OneMinusSourceAlpha","sourceAlphaBlendFactor","One","destinationAlphaBlendFactor","colorBlendOperation","alphaBlendOperation","BlendOperation","Add","depthState","writeEnabled","rasterState","cullMode","CullMode","Off","renderQueueType","RenderQueueType","Transparent"],"mappings":"gIAUO,MAAMA,UAAsBC,SAClBC,KAAAA,SAAW,kWAmBXC,KAAAA,SAAW,+PAY1BC,WAAAA,CAAYC,GAQVC,MAAMD,EANJE,EAAOC,KAAK,0BACZD,EAAOE,OACL,wBACAT,EAAcE,SACdF,EAAcG,WAGlB,MAAMO,EAAcC,KAAKD,YACnBE,EAASF,EAAYG,WAAWC,iBACtCF,EAAOG,SAAU,EACjBH,EAAOI,uBAAyBC,EAAYC,YAC5CN,EAAOO,4BAA8BF,EAAYG,oBACjDR,EAAOS,uBAAyBJ,EAAYK,IAC5CV,EAAOW,4BAA8BN,EAAYG,oBACjDR,EAAOY,oBAAsBZ,EAAOa,oBAClCC,EAAeC,IACjBjB,EAAYkB,WAAWC,cAAe,EACtCnB,EAAYoB,YAAYC,SAAWC,EAASC,IAC5CvB,EAAYwB,gBAAkBC,EAAgBC,WAChD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{BlendFactor as e,BlendOperation as t}from"@galacean/engine";import"../../node_modules/@esotericsoftware/spine-core/dist/Animation.js";import"../../node_modules/@esotericsoftware/spine-core/dist/AnimationState.js";import{Color as i}from"../../node_modules/@esotericsoftware/spine-core/dist/Utils.js";import{ClippingAttachment as o}from"../../node_modules/@esotericsoftware/spine-core/dist/attachments/ClippingAttachment.js";import{MeshAttachment as s}from"../../node_modules/@esotericsoftware/spine-core/dist/attachments/MeshAttachment.js";import{RegionAttachment as r}from"../../node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js";import"../../node_modules/@esotericsoftware/spine-core/dist/BoneData.js";import"../../node_modules/@esotericsoftware/spine-core/dist/Texture.js";import"../../node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js";import"../../node_modules/@esotericsoftware/spine-core/dist/Skeleton.js";import"../../node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js";import{SkeletonClipping as n}from"../../node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js";import{BlendMode as l}from"../../node_modules/@esotericsoftware/spine-core/dist/SlotData.js";import"../../node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js";import"../../node_modules/@esotericsoftware/spine-core/dist/polyfills.js";import{SpinePrimitive as a,SubPrimitive as d}from"./SpinePrimitive.js";import{SpineAnimation as c}from"../SpineAnimation.js";class p{static{this.QUAD_TRIANGLES=[0,1,2,2,3,0]}static{this.VERTEX_SIZE=8}static{this.VERTEX_STRIDE=9}static{this.tempColor=new i}static{this.tempDark=new i}static{this.tempBlendMode=null}static{this.tempTexture=null}get subRenderItems(){return this._subRenderItems}constructor(e,t){this._clipper=new n,this._spinePrimitive=new a,this._needResize=!1,this._subRenderItems=[],this.separateSlots=[],this.separateSlotTextureMap=new Map,this._engine=e,this._renderer=t}initialize(e,t){t&&(this._setting=t);const{defaultSkin:{attachments:i}}=e;let o=0;const n=p.QUAD_TRIANGLES.length;for(let e=0,t=i.length;e<t;e++){const t=i[e];for(let e in t){const i=t[e];if(i)if(i instanceof r)o+=n;else{if(!(i instanceof s))continue;o+=i.triangles.length}}}this._vertexCount=o,this._prepareBufferData(this._vertexCount);const{_spinePrimitive:l}=this;l.initialize(this._engine,this._vertexCount),this._renderer._primitive=l.primitive}buildPrimitive(e){const{useClipping:t=!0,zSpacing:i=.01}=this._setting||{};let n=0,a=0;const u=e.drawOrder,h=u.length,{_clipper:m,_spinePrimitive:f}=this,_=this._subRenderItems;_.length=0;let S,g,B=this._vertices,v=0,w=0,M=l.Normal,x=null;p.tempBlendMode=null,p.tempTexture=null;for(let e=0;e<h;++e){const l=u[e];if(!l.bone.active){m.clipEndWithSlot(l);continue}const c=l.getAttachment();let h=null;const f=i*e;let A=0;const b=m.isClipping();let T=b?2:p.VERTEX_SIZE;if(c instanceof r){let e=c;h=e.color,A=4*T,e.computeWorldVertices(l,B,0,T),S=p.QUAD_TRIANGLES,g=e.uvs,x=e.region.texture}else if(c instanceof s){let e=c;h=e.color,A=(e.worldVerticesLength>>1)*T,A>B.length&&(B=this._vertices=new Float32Array(A)),e.computeWorldVertices(l,0,e.worldVerticesLength,B,0,T),S=e.triangles,g=e.uvs,x=e.region.texture}else if(c instanceof o){if(t){let e=c;m.clipStart(l,e);continue}}else if(t){m.clipEndWithSlot(l);continue}if(null!=x){let e,t,i,o,s=l.bone.skeleton.color,r=l.color,c=s.a*r.a*h.a,u=p.tempColor,C=p.tempDark;if(u.set(s.r*r.r*h.r,s.g*r.g*h.g,s.b*r.b*h.b,c),b){m.clipTriangles(B,S,S.length,g,u,C,!1);let s=m.clippedVertices,r=m.clippedTriangles;e=s,t=s.length,i=r,o=r.length}else{let s=B;const{r:r,g:n,b:l,a:a}=u;for(let e=2,t=0,i=A;e<i;e+=T,t+=2)s[e]=r,s[e+1]=n,s[e+2]=l,s[e+3]=a,s[e+4]=g[t],s[e+5]=g[t+1];e=B,t=A,i=S,o=S.length}if(0==t||0==o){m.clipEndWithSlot(l);continue}let E=n/p.VERTEX_STRIDE,R=this._verticesWithZ,O=n,D=0;for(;D<t;)R[O++]=e[D++],R[O++]=e[D++],R[O++]=f,R[O++]=e[D++],R[O++]=e[D++],R[O++]=e[D++],R[O++]=e[D++],R[O++]=e[D++],R[O++]=e[D++];n=O;let F=this._indices;for(O=a,D=0;D<o;O++,D++)F[O]=i[D]+E;a+=o;const j=l.data,P=j.name;M=j.blendMode;const I=null!==p.tempBlendMode&&p.tempBlendMode!==j.blendMode,V=null!==p.tempTexture&&p.tempTexture!==x,k=this.separateSlots.includes(P);if(k||I||V){if(w>0){const e=new d;e.start=v,e.count=w,_.push({subPrimitive:e,texture:p.tempTexture,blendMode:p.tempBlendMode}),v+=w,w=0}if(k){const e=this.separateSlotTextureMap.get(P);if(e){const t=x.texture;e.filterMode=t.filterMode,e.wrapModeU=t.wrapModeU,e.wrapModeV=t.wrapModeV}const t=new d;t.start=v,t.count=o,_.push({blendMode:M,subPrimitive:t,texture:x,slotName:P}),v+=o,w=0}else w+=o}else w+=o;p.tempBlendMode=M,p.tempTexture=x}m.clipEndWithSlot(l)}if(w>0){const e=new d;e.start=v,e.count=w,_.push({blendMode:M,subPrimitive:e,texture:x}),w=0}if(m.clipEnd(),_.sort(((e,t)=>e.subPrimitive.start-t.subPrimitive.start)),a>0&&a!==this._vertexCount&&a>this._vertexCount)return this._vertexCount=a,this._prepareBufferData(this._vertexCount),void(this._needResize=!0);f.clearSubPrimitive();const A=this._renderer;for(let e=0,t=_.length;e<t;++e){const t=_[e],{slotName:i,blendMode:o,texture:s}=t;f.addSubPrimitive(t.subPrimitive);let r=A.getMaterial(e);r||(r=c.getDefaultMaterial(this._engine));let n=s.texture;this.separateSlotTextureMap.has(i)&&(n=this.separateSlotTextureMap.get(i)),r.shaderData.setTexture("material_SpineTexture",n),this.setBlendMode(r,o),A.setMaterial(e,r)}this._renderer._subPrimitives=f.subPrimitive,this._needResize&&(f.changeBuffer(this._engine,this._vertexCount),this._needResize=!1),f.vertexBuffer.setData(this._verticesWithZ),f.indexBuffer.setData(this._indices)}addSeparateSlot(e){this.separateSlots.push(e)}addSeparateSlotTexture(e,t){this.separateSlotTextureMap.set(e,t)}_prepareBufferData(e){this._vertices=new Float32Array(e*p.VERTEX_SIZE),this._verticesWithZ=new Float32Array(e*p.VERTEX_STRIDE),this._indices=new Uint16Array(e)}setBlendMode(i,o){const s=i.renderState.blendState.targetBlendState;switch(o){case l.Additive:s.sourceColorBlendFactor=e.SourceAlpha,s.destinationColorBlendFactor=e.One,s.sourceAlphaBlendFactor=e.One,s.destinationAlphaBlendFactor=e.One,s.colorBlendOperation=s.alphaBlendOperation=t.Add;break;case l.Multiply:s.sourceColorBlendFactor=e.DestinationColor,s.destinationColorBlendFactor=e.Zero,s.sourceAlphaBlendFactor=e.One,s.destinationAlphaBlendFactor=e.Zero,s.colorBlendOperation=s.alphaBlendOperation=t.Add;break;case l.Screen:s.sourceColorBlendFactor=e.One,s.destinationColorBlendFactor=e.OneMinusSourceColor,s.sourceAlphaBlendFactor=e.One,s.destinationAlphaBlendFactor=e.OneMinusSourceColor,s.colorBlendOperation=s.alphaBlendOperation=t.Add;break;default:s.sourceColorBlendFactor=e.SourceAlpha,s.destinationColorBlendFactor=e.OneMinusSourceAlpha,s.sourceAlphaBlendFactor=e.One,s.destinationAlphaBlendFactor=e.OneMinusSourceAlpha,s.colorBlendOperation=s.alphaBlendOperation=t.Add}}}export{p as SpineGenerator};
|
|
2
|
-
//# sourceMappingURL=SpineGenerator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpineGenerator.js","sources":["../../../../src/core/SpineGenerator.ts"],"sourcesContent":["import {\n BlendFactor,\n BlendOperation,\n Engine,\n Material,\n Texture2D,\n} from \"@galacean/engine\";\nimport {\n Skeleton,\n SkeletonData,\n SkeletonClipping,\n RegionAttachment,\n MeshAttachment,\n ClippingAttachment,\n ArrayLike,\n Color,\n BlendMode,\n} from \"@esotericsoftware/spine-core\";\nimport { SpinePrimitive, SubPrimitive } from \"./SpinePrimitive\";\nimport { SpineRenderSetting } from \"../types\";\nimport { AdaptiveTexture } from \"../loader/LoaderUtils\";\nimport { SpineAnimation } from \"../SpineAnimation\";\n\n\ntype subRenderItems = {\n subPrimitive: SubPrimitive;\n blendMode: BlendMode;\n texture: any;\n slotName?: string;\n};\n\nexport class SpineGenerator {\n static QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0];\n static VERTEX_SIZE = 8; // 2 2 4 position without z, uv, color\n static VERTEX_STRIDE = 9; // 3 2 4 position with z, uv, color\n static tempColor: Color = new Color();\n static tempDark: Color = new Color();\n static tempBlendMode: BlendMode | null = null;\n static tempTexture: AdaptiveTexture | null = null;\n\n private _setting: SpineRenderSetting;\n private _engine: Engine;\n private _clipper: SkeletonClipping = new SkeletonClipping();\n private _spinePrimitive: SpinePrimitive = new SpinePrimitive();\n private _renderer: SpineAnimation;\n\n private _vertexCount: number;\n private _vertices: Float32Array;\n private _verticesWithZ: Float32Array;\n private _indices: Uint16Array;\n private _needResize: boolean = false;\n private _subRenderItems: subRenderItems[] = [];\n readonly separateSlots: string[] = [];\n readonly separateSlotTextureMap: Map<string, Texture2D> = new Map();\n\n\n get subRenderItems() {\n return this._subRenderItems;\n }\n\n constructor(engine: Engine, renderer: SpineAnimation) {\n this._engine = engine;\n this._renderer = renderer;\n }\n\n initialize(skeletonData: SkeletonData, setting?: SpineRenderSetting) {\n if (setting) {\n this._setting = setting;\n }\n // Prepare buffer by using all attachment data but clippingAttachment\n const {\n defaultSkin: { attachments },\n } = skeletonData;\n let vertexCount: number = 0;\n const QUAD_TRIANGLE_LENGTH = SpineGenerator.QUAD_TRIANGLES.length;\n for (let i = 0, n = attachments.length; i < n; i++) {\n const slotAttachment = attachments[i];\n for (let key in slotAttachment) {\n const attachment = slotAttachment[key];\n if (!attachment) {\n continue;\n } else if (attachment instanceof RegionAttachment) {\n vertexCount += QUAD_TRIANGLE_LENGTH;\n } else if (attachment instanceof MeshAttachment) {\n let mesh = attachment;\n vertexCount += mesh.triangles.length;\n } else continue;\n }\n }\n this._vertexCount = vertexCount;\n this._prepareBufferData(this._vertexCount);\n const { _spinePrimitive } = this;\n _spinePrimitive.initialize(this._engine, this._vertexCount);\n this._renderer._primitive = _spinePrimitive.primitive;\n }\n\n buildPrimitive(skeleton: Skeleton) {\n const { useClipping = true, zSpacing = 0.01 } = this._setting || {};\n\n let verticesLength = 0;\n let indicesLength = 0;\n\n const drawOrder = skeleton.drawOrder;\n const maxSlotCount = drawOrder.length;\n const { _clipper, _spinePrimitive } = this;\n const subRenderItems = this._subRenderItems;\n subRenderItems.length = 0;\n let vertices: ArrayLike<number> = this._vertices;\n let triangles: Array<number>;\n let uvs: ArrayLike<number>;\n // 记录当前\n let start = 0;\n let count = 0;\n let blend = BlendMode.Normal;\n let texture = null;\n SpineGenerator.tempBlendMode = null;\n SpineGenerator.tempTexture = null;\n for (let slotIndex = 0; slotIndex < maxSlotCount; ++slotIndex) {\n const slot = drawOrder[slotIndex];\n if (!slot.bone.active) {\n _clipper.clipEndWithSlot(slot);\n continue;\n }\n const attachment = slot.getAttachment();\n let attachmentColor: Color = null;\n const z = zSpacing * slotIndex;\n let numFloats = 0;\n const isClipping = _clipper.isClipping();\n let vertexSize = isClipping ? 2 : SpineGenerator.VERTEX_SIZE;\n if (attachment instanceof RegionAttachment) {\n let regionAttachment = <RegionAttachment>attachment;\n attachmentColor = regionAttachment.color;\n numFloats = vertexSize * 4;\n regionAttachment.computeWorldVertices(\n slot,\n vertices,\n 0,\n vertexSize,\n );\n triangles = SpineGenerator.QUAD_TRIANGLES;\n uvs = regionAttachment.uvs;\n texture = regionAttachment.region.texture;\n } else if (attachment instanceof MeshAttachment) {\n let meshAttachment = <MeshAttachment>attachment;\n attachmentColor = meshAttachment.color;\n numFloats = (meshAttachment.worldVerticesLength >> 1) * vertexSize;\n if (numFloats > vertices.length) {\n vertices = this._vertices = new Float32Array(numFloats);\n }\n meshAttachment.computeWorldVertices(\n slot,\n 0,\n meshAttachment.worldVerticesLength,\n vertices,\n 0,\n vertexSize,\n );\n triangles = meshAttachment.triangles;\n uvs = meshAttachment.uvs;\n texture = meshAttachment.region.texture;\n } else if (attachment instanceof ClippingAttachment) {\n if (useClipping) {\n let clip = <ClippingAttachment>attachment;\n _clipper.clipStart(slot, clip);\n continue;\n }\n } else if (useClipping) {\n // attachment might be null or BoundingBoxAttachment\n _clipper.clipEndWithSlot(slot);\n continue;\n }\n\n if (texture != null) {\n let finalVertices: ArrayLike<number>;\n let finalVerticesLength: number;\n let finalIndices: ArrayLike<number>;\n let finalIndicesLength: number;\n\n let skeleton = slot.bone.skeleton;\n let skeletonColor = skeleton.color;\n let slotColor = slot.color;\n let alpha = skeletonColor.a * slotColor.a * attachmentColor.a;\n let color = SpineGenerator.tempColor;\n let dark = SpineGenerator.tempDark;\n color.set(\n skeletonColor.r * slotColor.r * attachmentColor.r,\n skeletonColor.g * slotColor.g * attachmentColor.g,\n skeletonColor.b * slotColor.b * attachmentColor.b,\n alpha\n );\n\n if (isClipping) {\n _clipper.clipTriangles(\n vertices,\n triangles,\n triangles.length,\n uvs,\n color,\n dark,\n false,\n );\n let clippedVertices = _clipper.clippedVertices;\n let clippedTriangles = _clipper.clippedTriangles;\n finalVertices = clippedVertices;\n finalVerticesLength = clippedVertices.length;\n finalIndices = clippedTriangles;\n finalIndicesLength = clippedTriangles.length;\n } else {\n let verts = vertices;\n const { r, g, b, a } = color;\n for (\n let v = 2, u = 0, n = numFloats;\n v < n;\n v += vertexSize, u += 2\n ) {\n verts[v] = r;\n verts[v + 1] = g;\n verts[v + 2] = b;\n verts[v + 3] = a;\n verts[v + 4] = uvs[u];\n verts[v + 5] = uvs[u + 1];\n }\n finalVertices = vertices;\n finalVerticesLength = numFloats;\n finalIndices = triangles;\n finalIndicesLength = triangles.length;\n }\n\n if (finalVerticesLength == 0 || finalIndicesLength == 0) {\n\t\t\t\t\t_clipper.clipEndWithSlot(slot);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n let indexStart = verticesLength / SpineGenerator.VERTEX_STRIDE;\n let verticesWithZ = this._verticesWithZ;\n let i = verticesLength;\n let j = 0;\n for (; j < finalVerticesLength; ) {\n verticesWithZ[i++] = finalVertices[j++];\n verticesWithZ[i++] = finalVertices[j++];\n verticesWithZ[i++] = z;\n verticesWithZ[i++] = finalVertices[j++];\n verticesWithZ[i++] = finalVertices[j++];\n verticesWithZ[i++] = finalVertices[j++];\n verticesWithZ[i++] = finalVertices[j++];\n verticesWithZ[i++] = finalVertices[j++];\n verticesWithZ[i++] = finalVertices[j++];\n }\n verticesLength = i;\n\n let indicesArray = this._indices;\n for (i = indicesLength, j = 0; j < finalIndicesLength; i++, j++) {\n indicesArray[i] = finalIndices[j] + indexStart;\n }\n indicesLength += finalIndicesLength;\n\n const slotData = slot.data;\n const slotName = slotData.name;\n blend = slotData.blendMode;\n const blendModeChanged = SpineGenerator.tempBlendMode !== null &&\n SpineGenerator.tempBlendMode !== slotData.blendMode;\n const textureChanged = SpineGenerator.tempTexture !== null && \n SpineGenerator.tempTexture !== texture;\n const slotNeedSeparate = this.separateSlots.includes(slotName);\n \n if (slotNeedSeparate || blendModeChanged || textureChanged) {\n // Finish accumulated count first\n if (count > 0) {\n const subPrimitive = new SubPrimitive();\n subPrimitive.start = start;\n subPrimitive.count = count;\n subRenderItems.push({\n subPrimitive,\n texture: SpineGenerator.tempTexture,\n blendMode: SpineGenerator.tempBlendMode,\n });\n start += count;\n count = 0;\n }\n if (slotNeedSeparate) {\n // If separatedTexture exist, set texture params\n const separateTexture = this.separateSlotTextureMap.get(slotName);\n if (separateTexture) {\n const oldTexture = texture.texture;\n separateTexture.filterMode = oldTexture.filterMode;\n separateTexture.wrapModeU = oldTexture.wrapModeU;\n separateTexture.wrapModeV = oldTexture.wrapModeV;\n }\n const subPrimitive = new SubPrimitive();\n subPrimitive.start = start;\n subPrimitive.count = finalIndicesLength;\n subRenderItems.push({\n blendMode: blend,\n subPrimitive,\n texture,\n slotName,\n });\n start += finalIndicesLength;\n count = 0;\n } else {\n count += finalIndicesLength;\n }\n } else {\n count += finalIndicesLength;\n }\n SpineGenerator.tempBlendMode = blend;\n SpineGenerator.tempTexture = texture;\n }\n\n _clipper.clipEndWithSlot(slot);\n } // slot traverse end\n\n // add reset sub primitive\n if (count > 0) {\n const subPrimitive = new SubPrimitive();\n subPrimitive.start = start;\n subPrimitive.count = count;\n subRenderItems.push({\n blendMode: blend,\n subPrimitive,\n texture,\n });\n count = 0;\n }\n\n _clipper.clipEnd();\n\n // sort sub primitive\n subRenderItems.sort((a, b) => a.subPrimitive.start - b.subPrimitive.start);\n\n // update buffer when vertex count change\n if (indicesLength > 0 && indicesLength !== this._vertexCount) {\n if (indicesLength > this._vertexCount) {\n this._vertexCount = indicesLength;\n this._prepareBufferData(this._vertexCount);\n this._needResize = true;\n return;\n }\n }\n\n // update sub primitive\n _spinePrimitive.clearSubPrimitive();\n const renderer = this._renderer;\n for (let i = 0, l = subRenderItems.length; i < l; ++i) {\n const item = subRenderItems[i];\n const { slotName, blendMode, texture } = item;\n _spinePrimitive.addSubPrimitive(item.subPrimitive);\n let material = renderer.getMaterial(i);\n if (!material) {\n material = SpineAnimation.getDefaultMaterial(this._engine);\n }\n let subTexture = texture.texture;\n if (this.separateSlotTextureMap.has(slotName)) {\n subTexture = this.separateSlotTextureMap.get(slotName);\n }\n material.shaderData.setTexture(\"material_SpineTexture\", subTexture);\n this.setBlendMode(material, blendMode);\n renderer.setMaterial(i, material);\n }\n this._renderer._subPrimitives = _spinePrimitive.subPrimitive;\n\n if (this._needResize) {\n _spinePrimitive.changeBuffer(this._engine, this._vertexCount);\n this._needResize = false;\n }\n _spinePrimitive.vertexBuffer.setData(this._verticesWithZ);\n _spinePrimitive.indexBuffer.setData(this._indices);\n }\n\n addSeparateSlot(slotName: string) {\n this.separateSlots.push(slotName);\n }\n\n addSeparateSlotTexture(slotName: string, texture: Texture2D) {\n this.separateSlotTextureMap.set(slotName, texture);\n }\n\n private _prepareBufferData(vertexCount: number) {\n this._vertices = new Float32Array(vertexCount * SpineGenerator.VERTEX_SIZE);\n this._verticesWithZ = new Float32Array(\n vertexCount * SpineGenerator.VERTEX_STRIDE\n );\n this._indices = new Uint16Array(vertexCount);\n }\n\n private setBlendMode(material: Material, blendMode: BlendMode) {\n const target = material.renderState.blendState.targetBlendState;\n switch (blendMode) {\n case BlendMode.Additive:\n target.sourceColorBlendFactor = BlendFactor.SourceAlpha;\n target.destinationColorBlendFactor = BlendFactor.One;\n target.sourceAlphaBlendFactor = BlendFactor.One;\n target.destinationAlphaBlendFactor = BlendFactor.One;\n target.colorBlendOperation = target.alphaBlendOperation =\n BlendOperation.Add;\n break;\n case BlendMode.Multiply:\n target.sourceColorBlendFactor = BlendFactor.DestinationColor;\n target.destinationColorBlendFactor = BlendFactor.Zero;\n target.sourceAlphaBlendFactor = BlendFactor.One;\n target.destinationAlphaBlendFactor = BlendFactor.Zero;\n target.colorBlendOperation = target.alphaBlendOperation =\n BlendOperation.Add;\n break;\n case BlendMode.Screen:\n target.sourceColorBlendFactor = BlendFactor.One;\n target.destinationColorBlendFactor = BlendFactor.OneMinusSourceColor;\n target.sourceAlphaBlendFactor = BlendFactor.One;\n target.destinationAlphaBlendFactor = BlendFactor.OneMinusSourceColor;\n target.colorBlendOperation = target.alphaBlendOperation =\n BlendOperation.Add;\n break;\n default: // Normal 混合模式,还不支持的混合模式都走这个\n target.sourceColorBlendFactor = BlendFactor.SourceAlpha;\n target.destinationColorBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.sourceAlphaBlendFactor = BlendFactor.One;\n target.destinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.colorBlendOperation = target.alphaBlendOperation =\n BlendOperation.Add;\n break;\n }\n }\n}\n"],"names":["SpineGenerator","QUAD_TRIANGLES","VERTEX_SIZE","VERTEX_STRIDE","tempColor","Color","tempDark","tempBlendMode","tempTexture","subRenderItems","this","_subRenderItems","constructor","engine","renderer","_clipper","SkeletonClipping","_spinePrimitive","SpinePrimitive","_needResize","separateSlots","separateSlotTextureMap","Map","_engine","_renderer","initialize","skeletonData","setting","_setting","defaultSkin","attachments","vertexCount","QUAD_TRIANGLE_LENGTH","length","i","n","slotAttachment","key","attachment","RegionAttachment","MeshAttachment","triangles","_vertexCount","_prepareBufferData","_primitive","primitive","buildPrimitive","skeleton","useClipping","zSpacing","verticesLength","indicesLength","drawOrder","maxSlotCount","uvs","vertices","_vertices","start","count","blend","BlendMode","Normal","texture","slotIndex","slot","bone","active","clipEndWithSlot","getAttachment","attachmentColor","z","numFloats","isClipping","vertexSize","regionAttachment","color","computeWorldVertices","region","meshAttachment","worldVerticesLength","Float32Array","ClippingAttachment","clip","clipStart","finalVertices","finalVerticesLength","finalIndices","finalIndicesLength","skeletonColor","slotColor","alpha","a","dark","set","r","g","b","clipTriangles","clippedVertices","clippedTriangles","verts","v","u","indexStart","verticesWithZ","_verticesWithZ","j","indicesArray","_indices","slotData","data","slotName","name","blendMode","blendModeChanged","textureChanged","slotNeedSeparate","includes","subPrimitive","SubPrimitive","push","separateTexture","get","oldTexture","filterMode","wrapModeU","wrapModeV","clipEnd","sort","clearSubPrimitive","l","item","addSubPrimitive","material","getMaterial","SpineAnimation","getDefaultMaterial","subTexture","has","shaderData","setTexture","setBlendMode","setMaterial","_subPrimitives","changeBuffer","vertexBuffer","setData","indexBuffer","addSeparateSlot","addSeparateSlotTexture","Uint16Array","target","renderState","blendState","targetBlendState","Additive","sourceColorBlendFactor","BlendFactor","SourceAlpha","destinationColorBlendFactor","One","sourceAlphaBlendFactor","destinationAlphaBlendFactor","colorBlendOperation","alphaBlendOperation","BlendOperation","Add","Multiply","DestinationColor","Zero","Screen","OneMinusSourceColor","OneMinusSourceAlpha"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{MeshTopology as e,Primitive as t,VertexElement as i,VertexElementFormat as r,Buffer as n,BufferBindFlag as s,BufferUsage as f,VertexBufferBinding as u,IndexBufferBinding as c,IndexFormat as o}from"@galacean/engine";import{SpineGenerator as m}from"./SpineGenerator.js";class d{constructor(){this.topology=e.Triangles}}class B{get primitive(){return this._primitive}get subPrimitive(){return this._subPrimitive}get indexBuffer(){return this._indexBuffer}get vertexBuffer(){return this._vertexBuffer}initialize(e,B){const a=new t(e);this._primitive=a,a.addVertexElement(new i("POSITION",0,r.Vector3,0)),a.addVertexElement(new i("COLOR_0",12,r.Vector4,0)),a.addVertexElement(new i("TEXCOORD_0",28,r.Vector2,0));const x=4*m.VERTEX_STRIDE,h=x*B,_=new n(e,s.VertexBuffer,h,f.Dynamic),v=new n(e,s.IndexBuffer,2*B,f.Dynamic);this._indexBuffer=v,this._vertexBuffer=_;const g=new u(_,x);a.setVertexBufferBinding(0,g);const w=new c(v,o.UInt16);a.setIndexBufferBinding(w);const V=new d;V.start=0,V.count=B,this.addSubPrimitive(V)}addSubPrimitive(e){this._subPrimitive.push(e)}clearSubPrimitive(){this._subPrimitive.length=0}changeBuffer(e,t){const i=4*m.VERTEX_STRIDE,r=i*t,d=new n(e,s.VertexBuffer,r,f.Dynamic),B=new n(e,s.IndexBuffer,2*t,f.Dynamic),a=this._primitive;this._indexBuffer=B,this._vertexBuffer=d;const x=new u(d,i);a.setVertexBufferBinding(0,x);const h=new c(B,o.UInt16);a.setIndexBufferBinding(h)}constructor(){this._subPrimitive=[]}}export{B as SpinePrimitive,d as SubPrimitive};
|
|
2
|
-
//# sourceMappingURL=SpinePrimitive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpinePrimitive.js","sources":["../../../../src/core/SpinePrimitive.ts"],"sourcesContent":["import {\n BufferMesh,\n Engine,\n Buffer,\n VertexElement,\n VertexElementFormat,\n BufferBindFlag,\n IndexFormat,\n BufferUsage,\n Primitive,\n MeshTopology,\n VertexBufferBinding,\n IndexBufferBinding,\n} from '@galacean/engine';\nimport { SpineGenerator } from './SpineGenerator';\n\nexport class SubPrimitive {\n /** Start drawing offset. */\n start: number;\n /** Drawing count. */\n count: number;\n /** Drawing topology. */\n topology?: MeshTopology = MeshTopology.Triangles;\n}\n\nexport class SpinePrimitive {\n private _primitive: Primitive;\n private _subPrimitive: SubPrimitive[] = [];\n\n private _indexBuffer: Buffer;\n private _vertexBuffer: Buffer;\n\n get primitive() {\n return this._primitive;\n }\n\n get subPrimitive() {\n return this._subPrimitive;\n }\n\n get indexBuffer() {\n return this._indexBuffer;\n }\n\n get vertexBuffer() {\n return this._vertexBuffer;\n }\n\n initialize(engine: Engine, vertexCount: number) {\n const primitive = new Primitive(engine);\n this._primitive = primitive;\n primitive.addVertexElement(new VertexElement('POSITION', 0, VertexElementFormat.Vector3, 0));\n primitive.addVertexElement(new VertexElement('COLOR_0', 12, VertexElementFormat.Vector4, 0));\n primitive.addVertexElement(new VertexElement('TEXCOORD_0', 28, VertexElementFormat.Vector2, 0));\n const vertexStride = (SpineGenerator.VERTEX_STRIDE) * 4; // position + color + uv * Float32 byteLen\n const byteLength = vertexStride * vertexCount;\n const vertexBuffer = new Buffer(\n engine,\n BufferBindFlag.VertexBuffer,\n byteLength,\n BufferUsage.Dynamic\n );\n const indexBuffer = new Buffer(\n engine,\n BufferBindFlag.IndexBuffer,\n vertexCount * 2,\n BufferUsage.Dynamic\n );\n this._indexBuffer = indexBuffer;\n this._vertexBuffer = vertexBuffer;\n const vertexBufferBinding = new VertexBufferBinding(vertexBuffer, vertexStride);\n primitive.setVertexBufferBinding(0, vertexBufferBinding);\n const indexBufferBinding = new IndexBufferBinding(indexBuffer, IndexFormat.UInt16);\n primitive.setIndexBufferBinding(indexBufferBinding);\n const subPrimitive = new SubPrimitive();\n subPrimitive.start = 0;\n subPrimitive.count = vertexCount;\n this.addSubPrimitive(subPrimitive);\n }\n\n addSubPrimitive(subPrimitive: SubPrimitive) {\n this._subPrimitive.push(subPrimitive);\n }\n\n clearSubPrimitive() {\n this._subPrimitive.length = 0;\n }\n\n changeBuffer(engine: Engine, vertexCount: number) {\n const vertexStride = (SpineGenerator.VERTEX_STRIDE) * 4; // position + color + uv * Float32 byteLen\n const byteLength = vertexStride * vertexCount;\n const vertexBuffer = new Buffer(\n engine,\n BufferBindFlag.VertexBuffer,\n byteLength,\n BufferUsage.Dynamic\n );\n\n const indexBuffer = new Buffer(\n engine,\n BufferBindFlag.IndexBuffer,\n vertexCount * 2,\n BufferUsage.Dynamic\n );\n const primitive = this._primitive;\n this._indexBuffer = indexBuffer;\n this._vertexBuffer = vertexBuffer;\n const vertexBufferBinding = new VertexBufferBinding(vertexBuffer, vertexStride);\n primitive.setVertexBufferBinding(0, vertexBufferBinding);\n const indexBufferBinding = new IndexBufferBinding(indexBuffer, IndexFormat.UInt16);\n primitive.setIndexBufferBinding(indexBufferBinding);\n }\n}\n"],"names":["SubPrimitive","this","topology","MeshTopology","Triangles","SpinePrimitive","primitive","_primitive","subPrimitive","_subPrimitive","indexBuffer","_indexBuffer","vertexBuffer","_vertexBuffer","initialize","engine","vertexCount","Primitive","addVertexElement","VertexElement","VertexElementFormat","Vector3","Vector4","Vector2","vertexStride","SpineGenerator","VERTEX_STRIDE","byteLength","Buffer","BufferBindFlag","VertexBuffer","BufferUsage","Dynamic","IndexBuffer","vertexBufferBinding","VertexBufferBinding","setVertexBufferBinding","indexBufferBinding","IndexBufferBinding","IndexFormat","UInt16","setIndexBufferBinding","start","count","addSubPrimitive","push","clearSubPrimitive","length","changeBuffer"],"mappings":"mRAgBO,MAAMA,gBAKWC,KACtBC,SAA0BC,EAAaC,WAGlC,MAAMC,EAOX,aAAIC,GACF,OAAOL,KAAKM,UACd,CAEA,gBAAIC,GACF,OAAOP,KAAKQ,aACd,CAEA,eAAIC,GACF,OAAOT,KAAKU,YACd,CAEA,gBAAIC,GACF,OAAOX,KAAKY,aACd,CAEAC,UAAAA,CAAWC,EAAgBC,GACzB,MAAMV,EAAY,IAAIW,EAAUF,GAChCd,KAAKM,WAAaD,EAClBA,EAAUY,iBAAiB,IAAIC,EAAc,WAAY,EAAGC,EAAoBC,QAAS,IACzFf,EAAUY,iBAAiB,IAAIC,EAAc,UAAW,GAAIC,EAAoBE,QAAS,IACzFhB,EAAUY,iBAAiB,IAAIC,EAAc,aAAc,GAAIC,EAAoBG,QAAS,IAC5F,MAAMC,EAAgD,EAAjCC,EAAgBC,cAC/BC,EAAaH,EAAeR,EAC5BJ,EAAe,IAAIgB,EACvBb,EACAc,EAAeC,aACfH,EACAI,EAAYC,SAERtB,EAAc,IAAIkB,EACtBb,EACAc,EAAeI,YACD,EAAdjB,EACAe,EAAYC,SAEd/B,KAAKU,aAAeD,EACpBT,KAAKY,cAAgBD,EACrB,MAAMsB,EAAsB,IAAIC,EAAoBvB,EAAcY,GAClElB,EAAU8B,uBAAuB,EAAGF,GACpC,MAAMG,EAAqB,IAAIC,EAAmB5B,EAAa6B,EAAYC,QAC3ElC,EAAUmC,sBAAsBJ,GAChC,MAAM7B,EAAe,IAAIR,EACzBQ,EAAakC,MAAQ,EACrBlC,EAAamC,MAAQ3B,EACrBf,KAAK2C,gBAAgBpC,EACvB,CAEAoC,eAAAA,CAAgBpC,GACdP,KAAKQ,cAAcoC,KAAKrC,EAC1B,CAEAsC,iBAAAA,GACE7C,KAAKQ,cAAcsC,OAAS,CAC9B,CAEAC,YAAAA,CAAajC,EAAgBC,GAC3B,MAAMQ,EAAgD,EAAjCC,EAAgBC,cAC/BC,EAAaH,EAAeR,EAC5BJ,EAAe,IAAIgB,EACvBb,EACAc,EAAeC,aACfH,EACAI,EAAYC,SAGRtB,EAAc,IAAIkB,EACtBb,EACAc,EAAeI,YACD,EAAdjB,EACAe,EAAYC,SAER1B,EAAYL,KAAKM,WACvBN,KAAKU,aAAeD,EACpBT,KAAKY,cAAgBD,EACrB,MAAMsB,EAAsB,IAAIC,EAAoBvB,EAAcY,GAClElB,EAAU8B,uBAAuB,EAAGF,GACpC,MAAMG,EAAqB,IAAIC,EAAmB5B,EAAa6B,EAAYC,QAC3ElC,EAAUmC,sBAAsBJ,EAClC,eApFQ5B,KAAAA,cAAgC"}
|
package/dist/esm/src/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./loader/SpineLoader.js";import"./loader/EditorSkeletonDataLoader.js";import"./loader/EditorSpineAtlasLoader.js";export{SpineAnimation}from"./SpineAnimation.js";export{AlphaTimeline,Animation,AttachmentTimeline,CurveTimeline,CurveTimeline1,CurveTimeline2,DeformTimeline,DrawOrderTimeline,EventTimeline,IkConstraintTimeline,InheritTimeline,MixBlend,MixDirection,PathConstraintMixTimeline,PathConstraintPositionTimeline,PathConstraintSpacingTimeline,PhysicsConstraintDampingTimeline,PhysicsConstraintGravityTimeline,PhysicsConstraintInertiaTimeline,PhysicsConstraintMassTimeline,PhysicsConstraintMixTimeline,PhysicsConstraintResetTimeline,PhysicsConstraintStrengthTimeline,PhysicsConstraintTimeline,PhysicsConstraintWindTimeline,RGB2Timeline,RGBA2Timeline,RGBATimeline,RGBTimeline,RotateTimeline,ScaleTimeline,ScaleXTimeline,ScaleYTimeline,SequenceTimeline,ShearTimeline,ShearXTimeline,ShearYTimeline,Timeline,TransformConstraintTimeline,TranslateTimeline,TranslateXTimeline,TranslateYTimeline}from"../node_modules/@esotericsoftware/spine-core/dist/Animation.js";export{AnimationState,AnimationStateAdapter,CURRENT,EventQueue,EventType,FIRST,HOLD_FIRST,HOLD_MIX,HOLD_SUBSEQUENT,SETUP,SUBSEQUENT,TrackEntry}from"../node_modules/@esotericsoftware/spine-core/dist/AnimationState.js";export{AnimationStateData}from"../node_modules/@esotericsoftware/spine-core/dist/AnimationStateData.js";export{AtlasAttachmentLoader}from"../node_modules/@esotericsoftware/spine-core/dist/AtlasAttachmentLoader.js";export{Bone}from"../node_modules/@esotericsoftware/spine-core/dist/Bone.js";export{BoneData,Inherit}from"../node_modules/@esotericsoftware/spine-core/dist/BoneData.js";export{ConstraintData}from"../node_modules/@esotericsoftware/spine-core/dist/ConstraintData.js";export{AssetManagerBase,Downloader}from"../node_modules/@esotericsoftware/spine-core/dist/AssetManagerBase.js";export{Event}from"../node_modules/@esotericsoftware/spine-core/dist/Event.js";export{EventData}from"../node_modules/@esotericsoftware/spine-core/dist/EventData.js";export{IkConstraint}from"../node_modules/@esotericsoftware/spine-core/dist/IkConstraint.js";export{IkConstraintData}from"../node_modules/@esotericsoftware/spine-core/dist/IkConstraintData.js";export{PathConstraint}from"../node_modules/@esotericsoftware/spine-core/dist/PathConstraint.js";export{PathConstraintData,PositionMode,RotateMode,SpacingMode}from"../node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js";export{Physics,Skeleton}from"../node_modules/@esotericsoftware/spine-core/dist/Skeleton.js";export{BinaryInput,SkeletonBinary}from"../node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js";export{SkeletonBounds}from"../node_modules/@esotericsoftware/spine-core/dist/SkeletonBounds.js";export{SkeletonClipping}from"../node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js";export{SkeletonData}from"../node_modules/@esotericsoftware/spine-core/dist/SkeletonData.js";export{SkeletonJson}from"../node_modules/@esotericsoftware/spine-core/dist/SkeletonJson.js";export{Skin,SkinEntry}from"../node_modules/@esotericsoftware/spine-core/dist/Skin.js";export{Slot}from"../node_modules/@esotericsoftware/spine-core/dist/Slot.js";export{BlendMode,SlotData}from"../node_modules/@esotericsoftware/spine-core/dist/SlotData.js";export{FakeTexture,Texture,TextureFilter,TextureRegion,TextureWrap}from"../node_modules/@esotericsoftware/spine-core/dist/Texture.js";export{TextureAtlas,TextureAtlasPage,TextureAtlasRegion}from"../node_modules/@esotericsoftware/spine-core/dist/TextureAtlas.js";export{TransformConstraint}from"../node_modules/@esotericsoftware/spine-core/dist/TransformConstraint.js";export{TransformConstraintData}from"../node_modules/@esotericsoftware/spine-core/dist/TransformConstraintData.js";export{Triangulator}from"../node_modules/@esotericsoftware/spine-core/dist/Triangulator.js";export{Color,DebugUtils,IntSet,Interpolation,MathUtils,Pool,Pow,PowOut,StringSet,TimeKeeper,Utils,Vector2,WindowedMean}from"../node_modules/@esotericsoftware/spine-core/dist/Utils.js";import"../node_modules/@esotericsoftware/spine-core/dist/polyfills.js";export{Attachment,VertexAttachment}from"../node_modules/@esotericsoftware/spine-core/dist/attachments/Attachment.js";export{BoundingBoxAttachment}from"../node_modules/@esotericsoftware/spine-core/dist/attachments/BoundingBoxAttachment.js";export{ClippingAttachment}from"../node_modules/@esotericsoftware/spine-core/dist/attachments/ClippingAttachment.js";export{MeshAttachment}from"../node_modules/@esotericsoftware/spine-core/dist/attachments/MeshAttachment.js";export{PathAttachment}from"../node_modules/@esotericsoftware/spine-core/dist/attachments/PathAttachment.js";export{PointAttachment}from"../node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js";export{RegionAttachment}from"../node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js";export{generateTextureAtlas}from"./loader/LoaderUtils.js";const e="2.0.0";console.log(`Galacean spine version: ${e}`);export{e as version};
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":["import \"./loader/SpineLoader\";\nimport \"./loader/EditorSkeletonDataLoader\";\nimport \"./loader/EditorSpineAtlasLoader\";\nexport { SpineAnimation } from \"./SpineAnimation\";\nexport * from \"@esotericsoftware/spine-core\";\nexport { generateTextureAtlas } from \"./loader/LoaderUtils\";\nexport const version = `__buildVersion`;\n\nconsole.log(`Galacean spine version: ${version}`);\n"],"names":["version","console","log"],"mappings":"s3JAMaA,MAAAA,EAAU,QAEvBC,QAAQC,IAAI,2BAA2BF"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__decorate as e}from"../../node_modules/tslib/tslib.es6.js";import{resourceLoader as o,Loader as t,AssetPromise as l}from"@galacean/engine";console.log("regist EditorSkeletonData loader");class a extends t{load(e,o){return new l(((o,t)=>{console.log("skeleton data",e)}))}}a=e([o("EditorSkeletonData",[])],a);export{a as EditorSkeletonDataLoader};
|
|
2
|
-
//# sourceMappingURL=EditorSkeletonDataLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditorSkeletonDataLoader.js","sources":["../../../../src/loader/EditorSkeletonDataLoader.ts"],"sourcesContent":["import {\n AssetPromise,\n Loader,\n LoadItem,\n resourceLoader,\n ResourceManager,\n} from \"@galacean/engine\";\nimport { SkeletonData } from \"@esotericsoftware/spine-core\";\n\nconsole.log('regist EditorSkeletonData loader');\n\n@resourceLoader(\"EditorSkeletonData\", [])\nclass EditorSkeletonDataLoader extends Loader<SkeletonData> {\n load(\n item: any,\n resourceManager: ResourceManager\n ): AssetPromise<SkeletonData> {\n return new AssetPromise((resolve, reject) => {\n\n console.log('skeleton data', item);\n \n });\n }\n}\n\nexport { EditorSkeletonDataLoader };\n"],"names":["console","log","EditorSkeletonDataLoader","Loader","load","item","resourceManager","AssetPromise","resolve","reject"],"mappings":"mJASAA,QAAQC,IAAI,oCAEZ,MACMC,UAAiCC,EACrCC,IAAAA,CACEC,EACAC,GAEA,OAAO,IAAIC,GAAa,CAACC,EAASC,KAEhCT,QAAQC,IAAI,gBAAiBI,EAAAA,GAGjC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__decorate as e}from"../../node_modules/tslib/tslib.es6.js";import{resourceLoader as o,Loader as l,AssetPromise as s}from"@galacean/engine";console.log("regist EditorSpineAtlas loader");class t extends l{load(e,o){return new s(((o,l)=>{console.log("atlas data",e)}))}}t=e([o("EditorSpineAtlas",[])],t);export{t as EditorSpineAtlasLoader};
|
|
2
|
-
//# sourceMappingURL=EditorSpineAtlasLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditorSpineAtlasLoader.js","sources":["../../../../src/loader/EditorSpineAtlasLoader.ts"],"sourcesContent":["import {\n AssetPromise,\n Loader,\n LoadItem,\n resourceLoader,\n ResourceManager,\n} from \"@galacean/engine\";\nimport { SkeletonData } from \"@esotericsoftware/spine-core\";\n\n\nconsole.log('regist EditorSpineAtlas loader');\n\n@resourceLoader(\"EditorSpineAtlas\", [])\nclass EditorSpineAtlasLoader extends Loader<SkeletonData> {\n load(\n item: any,\n resourceManager: ResourceManager\n ): AssetPromise<SkeletonData> {\n return new AssetPromise((resolve, reject) => {\n\n console.log('atlas data', item);\n \n });\n }\n}\n\nexport { EditorSpineAtlasLoader };\n"],"names":["console","log","EditorSpineAtlasLoader","Loader","load","item","resourceManager","AssetPromise","resolve","reject"],"mappings":"mJAUAA,QAAQC,IAAI,kCAEZ,MACMC,UAA+BC,EACnCC,IAAAA,CACEC,EACAC,GAEA,OAAO,IAAIC,GAAa,CAACC,EAASC,KAEhCT,QAAQC,IAAI,aAAcI,EAAAA,GAG9B"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{AssetType as e,AssetPromise as t,request as r,TextureFilterMode as o,TextureWrapMode as s}from"@galacean/engine";import"../../node_modules/@esotericsoftware/spine-core/dist/Animation.js";import"../../node_modules/@esotericsoftware/spine-core/dist/AnimationState.js";import{AtlasAttachmentLoader as n}from"../../node_modules/@esotericsoftware/spine-core/dist/AtlasAttachmentLoader.js";import"../../node_modules/@esotericsoftware/spine-core/dist/BoneData.js";import"../../node_modules/@esotericsoftware/spine-core/dist/Utils.js";import{TextureAtlas as i}from"../../node_modules/@esotericsoftware/spine-core/dist/TextureAtlas.js";import"../../node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js";import"../../node_modules/@esotericsoftware/spine-core/dist/Skeleton.js";import{SkeletonBinary as a}from"../../node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js";import{SkeletonJson as c}from"../../node_modules/@esotericsoftware/spine-core/dist/SkeletonJson.js";import"../../node_modules/@esotericsoftware/spine-core/dist/SlotData.js";import{Texture as l,TextureFilter as u,TextureWrap as d}from"../../node_modules/@esotericsoftware/spine-core/dist/Texture.js";import"../../node_modules/@esotericsoftware/spine-core/dist/polyfills.js";async function p(r,o){const{skeletonPath:s,atlasPath:l,imagePaths:u,skeletonExtension:d,imageExtensions:p}=r,x="json"===d?m:f;let _,j;if(u.length>0){let r,n;const a=[x(s),m(l)],c=u.map(((t,r)=>{const s=p[r];let n=e.Texture2D;return"ktx"===s&&(n=e.KTX),"ktx2"===s&&(n=e.KTX2),w(t,o,n)}));a.push(t.all(c));try{[_,r,n]=await Promise.all(a),j=new i(r);let e=0;for(let t of j.pages)if(n[e]){const r=g(n[e]);t.setTexture(r),e++}}catch(e){throw e}}else try{[_,j]=await Promise.all([x(s),h(l,o)])}catch(e){throw e}const M=new n(j);return"json"===d?new c(M).readSkeletonData(_):new a(M).readSkeletonData(new Uint8Array(_))}function m(e){return r(e,{type:"text"})}function f(e){return r(e,{type:"arraybuffer"})}function w(t,r,o=e.Texture2D){return r.resourceManager.load({url:t,type:o})}async function h(e,t){const r=_(e);let o,s;const n={};try{o=await m(e)}catch(t){throw new Error(`Spine Atlas: ${e} load error: ${t}`)}const a=new i(o),c=[];for(let e of a.pages){const o=r+e.name;c.push(w(o,t))}try{s=await Promise.all(c)}catch(t){throw new Error(`Spine Texture: ${e} load error: ${t}`)}for(let e=0;e<s.length;e+=1){const t=s[e];n[r+t.name]=t}for(let e of a.pages){const t=g(n[r+e.name]);e.setTexture(t)}return a}function x(e,t){const r=new i(e);for(let e of r.pages){const r=g(t[e.name]);e.setTexture(r)}return r}function g(e){return new j(new Image,e)}function _(e){const t=new URL(e),r=t.origin+t.pathname;return r.endsWith("/")?r:r.substring(0,r.lastIndexOf("/")+1)}class j extends l{constructor(e,t){super(e),this.texture=t,this.texture.generateMipmaps()}getImage(){return this.texture}setFilters(e,t){e===u.Nearest?this.texture.filterMode=o.Point:t===u.MipMapLinearLinear?this.texture.filterMode=o.Trilinear:this.texture.filterMode=o.Bilinear}setWraps(e,t){this.texture.wrapModeU=this._convertWrapMode(e),this.texture.wrapModeV=this._convertWrapMode(t)}dispose(){}_convertWrapMode(e){switch(e){case d.ClampToEdge:return s.Clamp;case d.Repeat:return s.Repeat;case d.MirroredRepeat:return s.Mirror;default:throw new Error("Unsupported texture wrap mode.")}}}function M(e,t){if(t)return t;const r=e.match(/\/([^\/?#]+)\.([a-zA-Z0-9]+)(\?|#|$)|\?[^#]*\.([a-zA-Z0-9]+)(\?|#|$)/);return r?r[2]||r[4]:null}export{j as AdaptiveTexture,x as generateTextureAtlas,_ as getBaseUrl,M as getUrlExtension,p as loadAndCreateSpineSkeletonData};
|
|
2
|
-
//# sourceMappingURL=LoaderUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoaderUtils.js","sources":["../../../../src/loader/LoaderUtils.ts"],"sourcesContent":["import { \n AssetPromise, \n Engine, \n request, \n Texture2D, \n AssetType,\n TextureFilterMode,\n TextureWrapMode,\n} from \"@galacean/engine\";\nimport { \n TextureAtlas, \n AtlasAttachmentLoader,\n SkeletonJson,\n SkeletonBinary,\n SkeletonData,\n Texture,\n TextureFilter,\n TextureWrap,\n} from \"@esotericsoftware/spine-core\";\nimport { SpineAssetBundle } from \"./SpineLoader\";\n\nexport async function loadAndCreateSpineSkeletonData(\n bundle: SpineAssetBundle,\n engine: Engine,\n): Promise<SkeletonData> {\n const { skeletonPath, atlasPath, imagePaths, skeletonExtension, imageExtensions } = bundle;\n const skeletonLoadFunc = skeletonExtension === 'json' ? loadText : loadBinary;\n let skeletonTextData: string | ArrayBuffer;\n let textureAtlas: TextureAtlas;\n if (imagePaths.length > 0) {\n let atlasText: string;\n let textures: Texture2D[];\n const loadQueue: AssetPromise<any>[] = [\n skeletonLoadFunc(skeletonPath),\n loadText(atlasPath),\n ];\n const texturePromises: AssetPromise<any>[] = imagePaths.map((imagePath, index) => {\n const ext = imageExtensions[index];\n let imageLoaderType = AssetType.Texture2D;\n if (ext === 'ktx') imageLoaderType = AssetType.KTX;\n if (ext === 'ktx2') imageLoaderType = AssetType.KTX2;\n return loadTexture(imagePath, engine, imageLoaderType);\n });\n loadQueue.push(AssetPromise.all(texturePromises));\n try {\n [skeletonTextData, atlasText, textures] = await Promise.all(loadQueue);\n textureAtlas = new TextureAtlas(atlasText);\n let i = 0;\n for (let page of textureAtlas.pages) {\n if (textures[i]) {\n const texture = createAdaptiveTexture(textures[i]);\n page.setTexture(texture);\n i++;\n }\n }\n } catch (error) {\n throw error;\n }\n } else {\n try {\n [skeletonTextData, textureAtlas] = await Promise.all([\n skeletonLoadFunc(skeletonPath),\n loadTextureAtlas(atlasPath, engine),\n ]);\n } catch(error) {\n throw error;\n }\n }\n const atlasLoader = new AtlasAttachmentLoader(textureAtlas);\n if (skeletonExtension === 'json') {\n return new SkeletonJson(atlasLoader).readSkeletonData(skeletonTextData);\n } else {\n return new SkeletonBinary(atlasLoader).readSkeletonData(new Uint8Array(skeletonTextData as ArrayBuffer));\n }\n}\n\nfunction loadText(url: string): AssetPromise<string> {\n return request(url, { type: \"text\" });\n}\n\nfunction loadBinary(url: string): AssetPromise<ArrayBuffer> {\n return request(url, { type: \"arraybuffer\" });\n}\n\nfunction loadTexture(\n url: string, \n engine: Engine,\n imageLoaderType: string = AssetType.Texture2D\n): AssetPromise<Texture2D> {\n return engine.resourceManager.load<Texture2D>({ url, type: imageLoaderType });\n}\n\nasync function loadTextureAtlas(\n url: string, \n engine: Engine,\n): Promise<TextureAtlas> {\n const baseUrl = getBaseUrl(url);\n let atlasData: string;\n let textures: Texture2D[];\n const textureMap: { [key: string]: Texture2D } = {};\n try {\n atlasData = await loadText(url);\n } catch (err) {\n throw new Error(`Spine Atlas: ${url} load error: ${err}`); \n }\n const textureAtlas = new TextureAtlas(atlasData);\n const loadTexturePromises = [];\n for (let page of textureAtlas.pages) {\n const textureUrl = baseUrl + page.name;\n loadTexturePromises.push(loadTexture(textureUrl, engine));\n }\n try {\n textures = await Promise.all(loadTexturePromises);\n } catch (err) {\n throw new Error(`Spine Texture: ${url} load error: ${err}`);\n }\n for (let i = 0; i < textures.length; i += 1) {\n const texture = textures[i];\n const textureUrl = baseUrl + texture.name;\n textureMap[textureUrl] = texture;\n }\n for (let page of textureAtlas.pages) {\n const textureUrl = baseUrl + page.name;\n const texture = createAdaptiveTexture(textureMap[textureUrl]);\n page.setTexture(texture);\n }\n return textureAtlas;\n}\n\nexport function generateTextureAtlas(atlasText: string, textureMap: Record<string, Texture2D>) {\n const textureAtlas = new TextureAtlas(atlasText);\n for (let page of textureAtlas.pages) {\n const texture = createAdaptiveTexture(textureMap[page.name]);\n page.setTexture(texture);\n }\n return textureAtlas;\n}\n\nfunction createAdaptiveTexture(texture: Texture2D) {\n return new AdaptiveTexture(new Image(), texture);\n}\n\nexport function getBaseUrl(url: string): string {\n const parsedUrl = new URL(url);\n const basePath = parsedUrl.origin + parsedUrl.pathname;\n return basePath.endsWith('/') ? basePath : basePath.substring(0, basePath.lastIndexOf('/') + 1);\n}\n\nexport class AdaptiveTexture extends Texture {\n texture: Texture2D;\n constructor(image: HTMLImageElement | ImageBitmap, texture: Texture2D) {\n super(image);\n this.texture = texture;\n this.texture.generateMipmaps();\n }\n\n // rewrite getImage function, return galacean texture2D, then attachment can get size of texture\n getImage(): any {\n return this.texture;\n }\n\n setFilters(minFilter: TextureFilter, magFilter: TextureFilter) {\n if (minFilter === TextureFilter.Nearest) {\n this.texture.filterMode = TextureFilterMode.Point;\n } else if (magFilter === TextureFilter.MipMapLinearLinear) {\n this.texture.filterMode = TextureFilterMode.Trilinear;\n } else {\n this.texture.filterMode = TextureFilterMode.Bilinear;\n }\n }\n\n setWraps(uWrap: TextureWrap, vWrap: TextureWrap) {\n this.texture.wrapModeU = this._convertWrapMode(uWrap);\n this.texture.wrapModeV = this._convertWrapMode(vWrap);\n }\n\n dispose() {}\n\n private _convertWrapMode(wrap: TextureWrap): TextureWrapMode {\n switch (wrap) {\n case TextureWrap.ClampToEdge:\n return TextureWrapMode.Clamp;\n case TextureWrap.Repeat:\n return TextureWrapMode.Repeat;\n case TextureWrap.MirroredRepeat:\n return TextureWrapMode.Mirror;\n default:\n throw new Error(\"Unsupported texture wrap mode.\");\n }\n }\n}\n\nexport function getUrlExtension(url: string, fileExtension: string): string | null {\n if (fileExtension) {\n return fileExtension;\n }\n const regex = /\\/([^\\/?#]+)\\.([a-zA-Z0-9]+)(\\?|#|$)|\\?[^#]*\\.([a-zA-Z0-9]+)(\\?|#|$)/;\n const match = url.match(regex);\n if (match) {\n return match[2] || match[4];\n }\n return null;\n}\n"],"names":["async","loadAndCreateSpineSkeletonData","bundle","engine","skeletonPath","atlasPath","imagePaths","skeletonExtension","imageExtensions","skeletonLoadFunc","loadText","loadBinary","skeletonTextData","textureAtlas","length","atlasText","textures","loadQueue","texturePromises","map","imagePath","index","ext","imageLoaderType","AssetType","Texture2D","KTX","KTX2","loadTexture","push","AssetPromise","all","Promise","TextureAtlas","i","page","pages","texture","createAdaptiveTexture","setTexture","error","loadTextureAtlas","atlasLoader","AtlasAttachmentLoader","SkeletonJson","readSkeletonData","SkeletonBinary","Uint8Array","url","request","type","resourceManager","load","baseUrl","getBaseUrl","atlasData","textureMap","err","Error","loadTexturePromises","textureUrl","name","generateTextureAtlas","AdaptiveTexture","Image","parsedUrl","URL","basePath","origin","pathname","endsWith","substring","lastIndexOf","Texture","constructor","image","super","this","generateMipmaps","getImage","setFilters","minFilter","magFilter","TextureFilter","Nearest","filterMode","TextureFilterMode","Point","MipMapLinearLinear","Trilinear","Bilinear","setWraps","uWrap","vWrap","wrapModeU","_convertWrapMode","wrapModeV","dispose","wrap","TextureWrap","ClampToEdge","TextureWrapMode","Clamp","Repeat","MirroredRepeat","Mirror","getUrlExtension","fileExtension","match"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__decorate as e}from"../../node_modules/tslib/tslib.es6.js";import{Loader as s,AssetPromise as t,resourceLoader as n}from"@galacean/engine";import{loadAndCreateSpineSkeletonData as o,getUrlExtension as i}from"./LoaderUtils.js";class l extends s{static{this.imageExtensions=["png","jpg","webp","jpeg","ktx","ktx2"]}static{this.skeletonExtensions=["skel","json","bin"]}load(e,s){return new t(((t,n)=>{let l={skeletonPath:"",skeletonExtension:"",atlasPath:"",imagePaths:[],imageExtensions:[]},{fileExtensions:c}=e.params||{};if(e.urls){c=r(c,!0);for(let s=0;s<e.urls.length;s+=1){a(e.urls[s],c&&c[s]||null,l)}}else{const s=r(c,!1);!function(e,s,t){const n=i(e,s);if(!n)return;t.skeletonPath=e,t.skeletonExtension=n;const o=/(\.(json|bin|skel))$/;let l;o.test(e)&&(l=e.replace(o,""));if(l){const e=l+".atlas";t.atlasPath=e}}(e.url,s,l)}const{skeletonPath:h,atlasPath:u}=l;h&&u?o(l,s.engine).then((e=>{t(e)})).catch((e=>{n(e)})):n("Failed to load spine assets. Please check the file path and ensure the file extension is included.")}))}}function a(e,s,t){const n=l.imageExtensions,o=l.skeletonExtensions,a=i(e,s);a&&(o.includes(a)&&(t.skeletonPath=e,t.skeletonExtension=a),"atlas"===a&&(t.atlasPath=e),n.includes(a)&&(t.imagePaths.push(e),t.imageExtensions.push(a)))}function r(e,s){return e?s&&!Array.isArray(e)?(console.error("Expect fileExtensions to be an array."),[]):s||"string"==typeof e?e:(console.error("Expect fileExtensions to be a string."),null):null}l=e([n("spine",["json","bin","skel"])],l);export{l as SpineLoader};
|
|
2
|
-
//# sourceMappingURL=SpineLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpineLoader.js","sources":["../../../../src/loader/SpineLoader.ts"],"sourcesContent":["import {\n AssetPromise,\n Loader,\n LoadItem,\n resourceLoader,\n ResourceManager,\n} from \"@galacean/engine\";\nimport { SkeletonData } from \"@esotericsoftware/spine-core\";\nimport { getUrlExtension, loadAndCreateSpineSkeletonData } from \"./LoaderUtils\";\n\nexport type SpineAssetBundle = {\n skeletonPath: string;\n skeletonExtension: string;\n atlasPath: string;\n imagePaths: string[];\n imageExtensions: string[];\n}\n\ntype SpineLoaderParams = {\n fileExtensions?: string | string[];\n}\n\ntype SpineLoadItem = LoadItem & { params?: SpineLoaderParams };\n\n@resourceLoader(\"spine\", [\"json\", \"bin\", \"skel\"])\nclass SpineLoader extends Loader<SkeletonData> {\n static imageExtensions = [\"png\", \"jpg\", \"webp\", \"jpeg\", \"ktx\", \"ktx2\"];\n static skeletonExtensions = [\"skel\", \"json\", \"bin\"];\n load(\n item: SpineLoadItem,\n resourceManager: ResourceManager\n ): AssetPromise<SkeletonData> {\n return new AssetPromise((resolve, reject) => {\n\n let spineAssetBundle: SpineAssetBundle = {\n skeletonPath: '',\n skeletonExtension: '',\n atlasPath: '',\n imagePaths: [],\n imageExtensions: [],\n };\n let { fileExtensions } = item.params || {};\n if (item.urls) {\n // multiple resource \n fileExtensions = verifyFileExtensions(fileExtensions, true);\n for (let i = 0; i < item.urls.length; i += 1) {\n const url = item.urls[i];\n const extension = fileExtensions && fileExtensions[i] || null;\n parseAndAssignSpineAsset(url, extension, spineAssetBundle);\n }\n } else {\n // single resource\n const fileExtension = verifyFileExtensions(fileExtensions, false);\n deriveAndAssignSpineAsset(item.url, fileExtension as string, spineAssetBundle);\n }\n const { skeletonPath, atlasPath } = spineAssetBundle;\n if (!skeletonPath || !atlasPath) {\n reject('Failed to load spine assets. Please check the file path and ensure the file extension is included.');\n return;\n }\n loadAndCreateSpineSkeletonData(spineAssetBundle, resourceManager.engine)\n .then((skeletonData) => {\n resolve(skeletonData);\n })\n .catch((err) => {\n reject(err);\n })\n });\n }\n}\n\nfunction parseAndAssignSpineAsset(url: string, fileExtension: string | null, bundle: SpineAssetBundle) {\n const imageExtension = SpineLoader.imageExtensions;\n const skeletonExtension = SpineLoader.skeletonExtensions;\n const ext = getUrlExtension(url, fileExtension);\n if (!ext) return;\n\n if (skeletonExtension.includes(ext)) {\n bundle.skeletonPath = url;\n bundle.skeletonExtension = ext;\n }\n if (ext === 'atlas') {\n bundle.atlasPath = url;\n }\n if (imageExtension.includes(ext)) {\n bundle.imagePaths.push(url);\n bundle.imageExtensions.push(ext);\n }\n}\n\nfunction deriveAndAssignSpineAsset(url: string, fileExtension: string | null, bundle: SpineAssetBundle) {\n const ext = getUrlExtension(url, fileExtension);\n if (!ext) return;\n bundle.skeletonPath = url;\n bundle.skeletonExtension = ext;\n const extensionPattern: RegExp = /(\\.(json|bin|skel))$/;\n let baseUrl;\n if (extensionPattern.test(url)) {\n baseUrl = url.replace(extensionPattern, '');\n }\n if (baseUrl) {\n const atlasUrl = baseUrl + '.atlas';\n bundle.atlasPath = atlasUrl;\n }\n}\n\nfunction verifyFileExtensions(fileExtensions: string | string[], expectArray: boolean): string | string[] | null {\n if (!fileExtensions) return null;\n if (expectArray && !Array.isArray(fileExtensions)) {\n console.error('Expect fileExtensions to be an array.');\n return [];\n } else if (!expectArray && typeof fileExtensions !== 'string') {\n console.error('Expect fileExtensions to be a string.');\n return null;\n }\n return fileExtensions;\n}\n\nexport { SpineLoader };\n"],"names":["SpineLoader","Loader","imageExtensions","skeletonExtensions","load","item","resourceManager","AssetPromise","resolve","reject","spineAssetBundle","skeletonPath","skeletonExtension","atlasPath","imagePaths","fileExtensions","params","urls","verifyFileExtensions","i","length","parseAndAssignSpineAsset","fileExtension","url","bundle","ext","getUrlExtension","extensionPattern","baseUrl","test","replace","atlasUrl","deriveAndAssignSpineAsset","loadAndCreateSpineSkeletonData","engine","then","skeletonData","catch","err","imageExtension","includes","push","expectArray","Array","isArray","console","error"],"mappings":"0OAwBA,MACMA,UAAoBC,cACjBC,gBAAkB,CAAC,MAAO,MAAO,OAAQ,OAAQ,MAAO,oBACxDC,mBAAqB,CAAC,OAAQ,OAAQ,OAC7CC,IAAAA,CACEC,EACAC,GAEA,OAAO,IAAIC,GAAa,CAACC,EAASC,KAEhC,IAAIC,EAAqC,CACvCC,aAAc,GACdC,kBAAmB,GACnBC,UAAW,GACXC,WAAY,GACZZ,gBAAiB,KAEfa,eAAEA,GAAmBV,EAAKW,QAAU,CAAA,EACxC,GAAIX,EAAKY,KAAM,CAEbF,EAAiBG,EAAqBH,GAAgB,GACtD,IAAK,IAAII,EAAI,EAAGA,EAAId,EAAKY,KAAKG,OAAQD,GAAK,EAAG,CAG5CE,EAFYhB,EAAKY,KAAKE,GACJJ,GAAkBA,EAAeI,IAAM,KAChBT,EAC3C,MACK,CAEL,MAAMY,EAAgBJ,EAAqBH,GAAgB,IAsCnE,SAAmCQ,EAAaD,EAA8BE,GAC5E,MAAMC,EAAMC,EAAgBH,EAAKD,GACjC,IAAKG,EAAK,OACVD,EAAOb,aAAeY,EACtBC,EAAOZ,kBAAoBa,EAC3B,MAAME,EAA2B,uBACjC,IAAIC,EACAD,EAAiBE,KAAKN,KACxBK,EAAUL,EAAIO,QAAQH,EAAkB,KAE1C,GAAIC,EAAS,CACX,MAAMG,EAAWH,EAAU,SAC3BJ,EAAOX,UAAYkB,CACrB,CACF,CAnDQC,CAA0B3B,EAAKkB,IAAKD,EAAyBZ,EAC/D,CACA,MAAMC,aAAEA,EAAYE,UAAEA,GAAcH,EAC/BC,GAAiBE,EAItBoB,EAA+BvB,EAAkBJ,EAAgB4B,QAChEC,MAAMC,IACL5B,EAAQ4B,EAAAA,IAETC,OAAOC,IACN7B,EAAO6B,EAAAA,IARP7B,EAAO,qGAST,GAEJ,EAGF,SAASY,EAAyBE,EAAaD,EAA8BE,GAC3E,MAAMe,EAAiBvC,EAAYE,gBAC7BU,EAAoBZ,EAAYG,mBAChCsB,EAAMC,EAAgBH,EAAKD,GAC5BG,IAEDb,EAAkB4B,SAASf,KAC7BD,EAAOb,aAAeY,EACtBC,EAAOZ,kBAAoBa,GAEjB,UAARA,IACFD,EAAOX,UAAYU,GAEjBgB,EAAeC,SAASf,KAC1BD,EAAOV,WAAW2B,KAAKlB,GACvBC,EAAOtB,gBAAgBuC,KAAKhB,IAEhC,CAkBA,SAASP,EAAqBH,EAAmC2B,GAC/D,OAAK3B,EACD2B,IAAgBC,MAAMC,QAAQ7B,IAChC8B,QAAQC,MAAM,yCACP,IACGJ,GAAyC,iBAAnB3B,EAI3BA,GAHL8B,QAAQC,MAAM,yCACP,MANmB,IAS9B,iBA5F0B,OAAQ,MAAO"}
|