From 4d3c19e1d51fb7f82ec719b5944b205444c96aa5 Mon Sep 17 00:00:00 2001 From: bchevalier Date: Tue, 7 Mar 2023 10:43:57 +0900 Subject: [PATCH 1/2] * Configurable spine with custom sprite and mesh constructors --- packages/base/src/SpineBase.ts | 37 ++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/packages/base/src/SpineBase.ts b/packages/base/src/SpineBase.ts index f7e3041a..7a646a6b 100644 --- a/packages/base/src/SpineBase.ts +++ b/packages/base/src/SpineBase.ts @@ -18,7 +18,7 @@ import {DRAW_MODES} from '@pixi/constants'; import {Container, DisplayObject} from '@pixi/display'; import {Sprite} from '@pixi/sprite'; import {SimpleMesh} from '@pixi/mesh-extras'; -import {Graphics} from '@pixi/graphics' +import {Graphics} from '@pixi/graphics'; import {Rectangle, Polygon, Transform} from '@pixi/math'; import {hex2rgb, rgb2hex} from '@pixi/utils'; import type {Texture} from '@pixi/core'; @@ -33,26 +33,32 @@ let tempRgb = [0, 0, 0]; export interface ISpineDisplayObject extends DisplayObject { region?: TextureRegion; attachment?: IAttachment; + spineAnimation?: SpineBase; } -/** - * @public - */ -export class SpineSprite extends Sprite implements ISpineDisplayObject { + +export class SpineSprite extends Sprite { region?: TextureRegion = null; attachment?: IAttachment = null; + spineAnimation?: SpineBase = null; } + /** * @public */ export class SpineMesh extends SimpleMesh implements ISpineDisplayObject { region?: TextureRegion = null; attachment?: IAttachment = null; + spineAnimation?: SpineBase = null; +} - constructor(texture: Texture, vertices?: Float32Array, uvs?: Float32Array, indices?: Uint16Array, drawMode?: number) { - super(texture, vertices, uvs, indices, drawMode); - } +export interface SpineSpriteConstructor { + new (texture?: Texture): SpineSprite; +} + +export interface SpineMeshConstructor { + new (texture: Texture, vertices?: Float32Array, uvs?: Float32Array, indices?: Uint16Array, drawMode?: number): SpineMesh; } /** @@ -98,10 +104,12 @@ export abstract class SpineBase Date: Wed, 8 Mar 2023 09:01:40 +0900 Subject: [PATCH 2/2] * converted constructor options to a single option object --- packages/base/src/SpineBase.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/base/src/SpineBase.ts b/packages/base/src/SpineBase.ts index 7a646a6b..f23365ce 100644 --- a/packages/base/src/SpineBase.ts +++ b/packages/base/src/SpineBase.ts @@ -109,7 +109,7 @@ export abstract class SpineBase