Skip to content

Commit bf3f54c

Browse files
committed
plugin version 1.4
1 parent 842ba36 commit bf3f54c

File tree

2 files changed

+606
-120
lines changed

2 files changed

+606
-120
lines changed

dist/@melonjs/spine-plugin.d.ts

Lines changed: 237 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,49 @@
11
export let assetManager: AssetManager;
2-
declare class Spine extends Renderable$1 {
3-
constructor(x: any, y: any, settings: any);
2+
/**
3+
* @classdesc
4+
* An object to display a Spine animated skeleton on screen.
5+
* @augments Renderable
6+
*/
7+
declare class Spine extends Renderable {
8+
/**
9+
* @param {number} x - the x coordinates of the Spine object
10+
* @param {number} y - the y coordinates of the Spine object
11+
* @param {object} settings - Configuration parameters for the Spine object
12+
* @param {number} [settings.atlasFile] - the name of the atlasFile to be used to create this spine animation
13+
* @param {number} [settings.jsonFile] - the name of the atlasFile to be used to create this spine animation
14+
* @param {number} [settings.mixTime = 0.2] - the default mix duration to use when no mix duration has been defined between two animations.
15+
* @example
16+
* import * as Spine from '@melonjs/spine-plugin';
17+
* import * as me from 'melonjs';
18+
*
19+
* // prepare/declare assets for the preloader
20+
* const DataManifest = [
21+
* {
22+
* "name": "alien-ess.json",
23+
* "type": "spine",
24+
* "src": "data/spine/alien-ess.json"
25+
* },
26+
* {
27+
* "name": "alien.atlas",
28+
* "type": "spine",
29+
* "src": "data/spine/alien.atlas"
30+
* },
31+
* ]
32+
*
33+
* // create a new Spine Renderable
34+
* let spineAlien = new Spine(100, 100, {atlasFile: "alien.atlas", jsonFile: "alien-ess.json"});
35+
*
36+
* // set default animation
37+
* spineAlien.setAnimation(0, "death", true);
38+
*
39+
* // add it to the game world
40+
* me.game.world.addChild(spineAlien);
41+
*/
42+
constructor(x: number, y: number, settings: {
43+
atlasFile?: number | undefined;
44+
jsonFile?: number | undefined;
45+
mixTime?: number | undefined;
46+
});
447
runtime: {
548
__proto__: null;
649
AlphaTimeline: typeof AlphaTimeline;
@@ -363,53 +406,208 @@ declare class Spine extends Renderable$1 {
363406
root: any;
364407
boneOffset: Vector2;
365408
boneSize: Vector2;
366-
scaleValue: {
367-
x: number;
368-
y: number;
369-
};
370-
mixTime: any;
371-
jsonFile: any;
372-
atlasFile: any;
409+
mixTime: number;
410+
jsonFile: number | undefined;
411+
atlasFile: number | undefined;
373412
set debugRendering(arg: boolean);
413+
/**
414+
* Whether to enabler the debug mode when rendering the spine object
415+
* @default false
416+
* @type {boolean}
417+
*/
374418
get debugRendering(): boolean;
375-
setSkeleton(atlasFile: any, jsonFile: any): void;
376-
loadSpineAssets(atlasFile: any, jsonFile: any): void;
377-
rotate(angle: any, v: any): void;
378-
scale(x: any, y?: any): void;
419+
/**
420+
* set and load the given skeleton atlas and json definition files
421+
* (use this if you did not specify any json or atlas through the constructor)
422+
* @param {number} [atlasFile] - the name of the atlasFile to be used to create this spine animation
423+
* @param {number} [jsonFile] - the name of the atlasFile to be used to create this spine animation
424+
* @example
425+
* // create a new Spine Renderable
426+
* let spineAlien = new Spine(100, 100);
427+
*
428+
* // set the skeleton
429+
* spineAlien.setSkeleton("alien.atlas", "alien-ess.json");
430+
*
431+
* // set default animation
432+
* spineAlien.setAnimation(0, "death", true);
433+
*
434+
* // add it to the game world
435+
* me.game.world.addChild(spineAlien);
436+
*/
437+
setSkeleton(atlasFile?: number | undefined, jsonFile?: number | undefined): void;
438+
isDirty: boolean | undefined;
439+
/**
440+
* Rotate this Spine object by the specified angle (in radians).
441+
* @param {number} angle - The angle to rotate (in radians)
442+
* @param {Vector2d|ObservableVector2d} [v] - an optional point to rotate around
443+
* @returns {Spine} Reference to this object for method chaining
444+
*/
445+
rotate(angle: number, v?: Vector2d | ObservableVector2d): Spine;
446+
/**
447+
* scale the Spine object around his anchor point. Scaling actually applies changes
448+
* to the currentTransform member wich is used by the renderer to scale the object
449+
* when rendering. It does not scale the object itself. For example if the renderable
450+
* is an image, the image.width and image.height properties are unaltered but the currentTransform
451+
* member will be changed.
452+
* @param {number} x - a number representing the abscissa of the scaling vector.
453+
* @param {number} [y=x] - a number representing the ordinate of the scaling vector.
454+
* @returns {Spine} Reference to this object for method chaining
455+
*/
456+
scale(x: number, y?: number | undefined): Spine;
457+
/**
458+
* update the bounding box for this spine object.
459+
* (this will automatically update the bounds of the entire skeleton animation)
460+
* @param {boolean} [absolute=true] - update the bounds size and position in (world) absolute coordinates
461+
* @returns {Bounds} this shape bounding box Rectangle object
462+
*/
463+
updateBounds(absolute?: boolean | undefined): Bounds;
464+
/**
465+
* update function (automatically called by melonJS).
466+
* @param {number} dt - time since the last update in milliseconds.
467+
* @returns {boolean} true if the renderable is dirty
468+
*/
469+
update(dt: number): boolean;
379470
/**
380471
* draw this spine object
381-
* @name draw
382-
* @memberof Spine
383-
* @protected
384472
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer instance
385473
* @param {Camera2d} [viewport] - the viewport to (re)draw
386474
*/
387-
protected draw(renderer: CanvasRenderer | WebGLRenderer): void;
388-
setAnimationByIndex(track_index: any, index: any, loop?: boolean): void;
389-
setAnimation(track_index: any, name: any, loop?: boolean): void;
390-
addAnimationByIndex(track_index: any, index: any, loop?: boolean, delay?: number): void;
475+
draw(renderer: CanvasRenderer | WebGLRenderer): void;
476+
/**
477+
* Sets the current animation for a track, discarding any queued animations.
478+
* @param {number} [track_index] - If the formerly current track entry was never applied to a skeleton, it is replaced (not mixed from). In either case trackEnd determines when the track is cleared.
479+
* @param {number} [index] - the animation index
480+
* @param {boolean} [loop= false] - If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its duration.
481+
* @returns A track entry to allow further customization of animation playback. References to the track entry must not be kept after the dispose event occurs.
482+
*/
483+
setAnimationByIndex(track_index?: number | undefined, index?: number | undefined, loop?: boolean | undefined): void;
484+
/**
485+
* Sets the current animation for a track, discarding any queued animations.
486+
* @param {number} [track_index] - If the formerly current track entry was never applied to a skeleton, it is replaced (not mixed from). In either case trackEnd determines when the track is cleared.
487+
* @param {string} [name] - the animation name
488+
* @param {boolean} [loop= false] - If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its duration.
489+
* @returns A track entry to allow further customization of animation playback. References to the track entry must not be kept after the dispose event occurs.
490+
* @example
491+
* // set the current animation
492+
* spineAlien.setAnimation(0, "death", true);
493+
*/
494+
setAnimation(track_index?: number | undefined, name?: string | undefined, loop?: boolean | undefined): void;
495+
/**
496+
* Adds an animation to be played after the current or last queued animation for a track, and sets the track entry's mixDuration.
497+
* @param {number} [delay=0] - If > 0, sets delay. If <= 0, the delay set is the duration of the previous track entry minus any mix duration plus the specified `delay` (ie the mix ends at (`delay` = 0) or before (`delay` < 0) the previous track entry duration). If the previous entry is looping, its next loop completion is used instead of its duration.
498+
* @return A track entry to allow further customization of animation playback. References to the track entry must not be kept after the dispose} event occurs.
499+
*/
500+
addAnimationByIndex(track_index: any, index: any, loop?: boolean, delay?: number | undefined): void;
391501
addAnimationByName(track_index: any, animationName: any, loop?: boolean, delay?: number): void;
392502
getSpinePosition(): Vector2d;
393503
setSpineSize(width: any, height: any): void;
504+
width: any;
505+
height: any;
394506
getSpineSize(): {
395-
width: number;
396-
height: number;
507+
width: any;
508+
height: any;
397509
};
398-
setDefaultMixTime(mixTime: any): void;
510+
/**
511+
* Set the default mix duration to use when no mix duration has been defined between two animations.
512+
* @param {number} mixTime
513+
*/
514+
setDefaultMixTime(mixTime: number): void;
515+
/**
516+
* Sets a mix duration by animation name.
517+
*/
399518
setTransitionMixTime(firstAnimation: any, secondAnimation: any, mixTime: any): void;
400-
setSkinByName(skinName: any): void;
519+
/**
520+
* Sets a skin by name.
521+
* @param {string} skinName
522+
* @example
523+
* // create a new Spine Renderable
524+
* let spineAlien = new Spine(100, 100, {atlasFile: "mix-and-match-pma.atlas", jsonFile: "mix-and-match-pro.json"});
525+
*
526+
* // set default animation
527+
* spineAlien.setAnimation(0, "dance", true);
528+
*
529+
* // set default skin
530+
* spineAlien.setSkinByName("full-skins/girl");
531+
*
532+
* // add it to the game world
533+
* me.game.world.addChild(spineAlien);
534+
*/
535+
setSkinByName(skinName: string): void;
536+
/**
537+
* Sets this slot to the setup pose.
538+
*/
401539
setToSetupPose(): void;
402540
}
541+
/**
542+
* @classdesc
543+
* An Asset Manager class to load spine assets
544+
*/
403545
declare class AssetManager {
404-
constructor(pathPrefix?: string);
546+
/**
547+
* @param {string} [pathPrefix=""] - a default path prefix for assets location
548+
*/
549+
constructor(pathPrefix?: string | undefined);
405550
asset_manager: any;
406-
pathPrefix: string;
407-
initAssetManager(): void;
408-
setPrefix(pathPrefix: any): void;
409-
loadAsset(atlas: any, skel: any): void;
551+
pathPrefix: any;
552+
/**
553+
* set a default path prefix for assets location
554+
* @see loadAsset
555+
* @param {string} pathPrefix
556+
*/
557+
setPrefix(pathPrefix: string): void;
558+
/**
559+
* define all spine assets to be loaded
560+
* @see setPrefix
561+
* @see loadAll
562+
* @param {string} atlas
563+
* @param {string} skel
564+
* @example
565+
* // load spine assets
566+
* Spine.assetManager.setPrefix("data/spine/");
567+
* Spine.assetManager.loadAsset("alien.atlas", "alien-ess.json");
568+
* await Spine.assetManager.loadAll();
569+
*/
570+
loadAsset(atlas: string, skel: string): void;
571+
/**
572+
* load all defined spine assets
573+
* @see loadAsset
574+
*/
410575
loadAll(): any;
411576
}
412-
import { Renderable as Renderable$1 } from 'melonjs';
577+
/******************************************************************************
578+
* Spine Runtimes License Agreement
579+
* Last updated July 28, 2023. Replaces all prior versions.
580+
*
581+
* Copyright (c) 2013-2023, Esoteric Software LLC
582+
*
583+
* Integration of the Spine Runtimes into software or otherwise creating
584+
* derivative works of the Spine Runtimes is permitted under the terms and
585+
* conditions of Section 2 of the Spine Editor License Agreement:
586+
* http://esotericsoftware.com/spine-editor-license
587+
*
588+
* Otherwise, it is permitted to integrate the Spine Runtimes into software or
589+
* otherwise create derivative works of the Spine Runtimes (collectively,
590+
* "Products"), provided that each user of the Products must obtain their own
591+
* Spine Editor license and redistribution of the Products in any form must
592+
* include this license and copyright notice.
593+
*
594+
* THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
595+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
596+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
597+
* DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
598+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
599+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
600+
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
601+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
602+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
603+
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
604+
*****************************************************************************/
605+
declare class Renderable {
606+
constructor(vertices: any, numVertices: any, numFloats: any);
607+
vertices: any;
608+
numVertices: any;
609+
numFloats: any;
610+
}
413611
/** Changes a bone's local {@link Bone#shearX} and {@link Bone#shearY}. */
414612
declare class AlphaTimeline extends CurveTimeline1 {
415613
slotIndex: any;
@@ -2213,9 +2411,10 @@ declare class PolygonBatcher {
22132411
mesh: Mesh;
22142412
srcColorBlend: any;
22152413
srcAlphaBlend: any;
2216-
dstBlend: any;
2414+
dstColorBlend: any;
2415+
dstAlphaBlend: any;
22172416
begin(shader: any): void;
2218-
setBlendMode(srcColorBlend: any, srcAlphaBlend: any, dstBlend: any): void;
2417+
setBlendMode(srcColorBlend: any, srcAlphaBlend: any, dstColorBlend: any, dstAlphaBlend: any): void;
22192418
draw(texture: any, vertices: any, indices: any): void;
22202419
flush(): void;
22212420
end(): void;
@@ -2582,9 +2781,10 @@ declare class ShapeRenderer {
25822781
mesh: Mesh;
25832782
srcColorBlend: any;
25842783
srcAlphaBlend: any;
2585-
dstBlend: any;
2784+
dstColorBlend: any;
2785+
dstAlphaBlend: any;
25862786
begin(shader: any): void;
2587-
setBlendMode(srcColorBlend: any, srcAlphaBlend: any, dstBlend: any): void;
2787+
setBlendMode(srcColorBlend: any, srcAlphaBlend: any, dstColorBlend: any, dstAlphaBlend: any): void;
25882788
setColor(color: any): void;
25892789
setColorWith(r: any, g: any, b: any, a: any): void;
25902790
point(x: any, y: any, color: any): void;
@@ -3150,40 +3350,6 @@ declare class SkeletonJson {
31503350
readVertices(map: any, attachment: any, verticesLength: any): void;
31513351
readAnimation(map: any, name: any, skeletonData: any): void;
31523352
}
3153-
/******************************************************************************
3154-
* Spine Runtimes License Agreement
3155-
* Last updated July 28, 2023. Replaces all prior versions.
3156-
*
3157-
* Copyright (c) 2013-2023, Esoteric Software LLC
3158-
*
3159-
* Integration of the Spine Runtimes into software or otherwise creating
3160-
* derivative works of the Spine Runtimes is permitted under the terms and
3161-
* conditions of Section 2 of the Spine Editor License Agreement:
3162-
* http://esotericsoftware.com/spine-editor-license
3163-
*
3164-
* Otherwise, it is permitted to integrate the Spine Runtimes into software or
3165-
* otherwise create derivative works of the Spine Runtimes (collectively,
3166-
* "Products"), provided that each user of the Products must obtain their own
3167-
* Spine Editor license and redistribution of the Products in any form must
3168-
* include this license and copyright notice.
3169-
*
3170-
* THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
3171-
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
3172-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
3173-
* DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
3174-
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
3175-
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
3176-
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
3177-
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3178-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
3179-
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3180-
*****************************************************************************/
3181-
declare class Renderable {
3182-
constructor(vertices: any, numVertices: any, numFloats: any);
3183-
vertices: any;
3184-
numVertices: any;
3185-
numFloats: any;
3186-
}
31873353
declare class Vector2 {
31883354
constructor(x?: number, y?: number);
31893355
x: number;
@@ -4021,8 +4187,10 @@ declare class VertexAttribute {
40214187
}
40224188
declare class WebGLBlendModeConverter {
40234189
static getDestGLBlendMode(blendMode: any): 1 | 771;
4190+
static getDestColorGLBlendMode(blendMode: any): 1 | 769 | 771;
4191+
static getDestAlphaGLBlendMode(blendMode: any, premultipliedAlpha?: boolean): 1 | 771;
40244192
static getSourceColorGLBlendMode(blendMode: any, premultipliedAlpha?: boolean): 1 | 770 | 774;
4025-
static getSourceAlphaGLBlendMode(blendMode: any): 1 | 769 | 771;
4193+
static getSourceAlphaGLBlendMode(blendMode: any, premultipliedAlpha?: boolean): 1 | 770;
40264194
}
40274195
declare class WindowedMean {
40284196
constructor(windowSize?: number);

0 commit comments

Comments
 (0)