Skip to content

Commit 1dd779e

Browse files
committed
update SpineGameObject.d.ts
- extends from Phaser.GameObjects.GameObject - implements interfaces for mixins - use Omit for setSize signature conflicts in ComputedSize - use @ts-ignore for state property conflict; spine.AnimationState significantly different than GameObject.state - added semi-colons to better match rest of defintion files
1 parent 57a022d commit 1dd779e

3 files changed

Lines changed: 163 additions & 121 deletions

File tree

types/SpineFile.d.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
declare namespace Phaser.Loader.FileTypes {
22
interface SpineFileConfig {
3-
key: string
4-
textureURL?: string
5-
textureExtension?: string
6-
textureXhrSettings?: Phaser.Types.Loader.XHRSettingsObject
7-
normalMap?: string
8-
atlasURL?: string
9-
atlasExtension?: string
10-
atlasXhrSettings?: Phaser.Types.Loader.XHRSettingsObject
3+
key: string;
4+
textureURL?: string;
5+
textureExtension?: string;
6+
textureXhrSettings?: Phaser.Types.Loader.XHRSettingsObject;
7+
normalMap?: string;
8+
atlasURL?: string;
9+
atlasExtension?: string;
10+
atlasXhrSettings?: Phaser.Types.Loader.XHRSettingsObject;
1111
}
1212

1313
class SpineFile extends Phaser.Loader.MultiFile {
1414
constructor(loader: Phaser.Loader.LoaderPlugin, key: string | Phaser.Loader.FileTypes.SpineFileConfig, jsonURL: string | string[], atlasURL: string, preMultipliedAlpha: boolean, jsonXhrSettings: Phaser.Types.Loader.XHRSettingsObject, atlasXhrSettings: Phaser.Types.Loader.XHRSettingsObject)
1515

16-
addToCache()
16+
addToCache();
1717
}
1818
}

types/SpineGameObject.d.ts

Lines changed: 112 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,125 @@
11
/// <reference path="./spine.d.ts" />
2+
/// <reference path="./SpinePlugin.d.ts" />
23

3-
declare class SpineGameObject {
4-
constructor(scene: Phaser.Scene, pluginManager: SpinePlugin, x: number, y: number, key?: string, animationName?: string, loop?: boolean)
4+
declare class SpineGameObject extends Phaser.GameObjects.GameObject implements Omit<Phaser.GameObjects.Components.ComputedSize, 'setSize'>, Phaser.GameObjects.Components.Depth, Phaser.GameObjects.Components.Flip, Phaser.GameObjects.Components.ScrollFactor, Phaser.GameObjects.Components.Transform, Phaser.GameObjects.Components.Visible {
5+
constructor(scene: Phaser.Scene, pluginManager: SpinePlugin, x: number, y: number, key?: string, animationName?: string, loop?: boolean);
56

6-
alpha: number
7+
alpha: number;
8+
angle: integer;
79

8-
readonly blendMode: number
10+
readonly blendMode: number;
911

10-
blue: number
11-
bounds: any
12-
displayOriginX: number
13-
displayOriginY: number
14-
drawDebug: boolean
15-
green: number
16-
plugin: SpinePlugin
17-
preMultipliedAlpha: boolean
18-
red: number
19-
root: spine.Bone
12+
blue: number;
13+
bounds: any;
14+
displayOriginX: number;
15+
displayOriginY: number;
16+
drawDebug: boolean;
17+
depth: number;
18+
displayWidth: number;
19+
displayHeight: number;
20+
flipX: boolean;
21+
flipY: boolean;
22+
green: number;
23+
height: number;
24+
plugin: SpinePlugin;
25+
preMultipliedAlpha: boolean;
26+
red: number;
27+
root: spine.Bone;
28+
rotation: number;
29+
scale: number;
2030
scaleX: number
2131
scaleY: number
22-
skeleton: spine.Skeleton
23-
skeletonData: spine.SkeletonData
24-
state: spine.AnimationState
25-
stateData: spine.AnimationStateData
26-
timeScale: number
32+
scrollFactorX: number;
33+
scrollFactorY: number;
34+
skeleton: spine.Skeleton;
35+
skeletonData: spine.SkeletonData;
36+
// @ts-ignore - spine.AnimationState significantly different than GameObject.state
37+
state: spine.AnimationState;
38+
stateData: spine.AnimationStateData;
39+
timeScale: number;
40+
visible: boolean;
41+
x: number;
42+
y: number;
43+
z: number;
44+
w: number;
45+
width: number;
2746

28-
addAnimation(trackIndex: integer, animationName: string, loop?: boolean, delay?: integer): spine.TrackEntry
29-
angleBoneToXY(bone: spine.Bone, worldX: number, worldY: number, offset?: number, minAngle?: number, maxAngle?: number): SpineGameObject
30-
clearTrack(trackIndex: integer): SpineGameObject
31-
clearTracks(): SpineGameObject
32-
findAnimation(animationName: string): spine.Animation
33-
findBone(boneName: string): spine.Bone
34-
findBoneIndex(boneName: string): number
35-
findEvent(eventDataName: string): spine.EventData
36-
findIkConstraint(constraintName: string): spine.IkConstraintData
37-
findPathConstraint(constraintName: string): spine.PathConstraintData
38-
findPathConstraintIndex(constraintName: string): number
39-
findSkin(skinName: string): spine.Skin
40-
findSlot(slotName: string): spine.Slot
41-
findSlotIndex(slotName: string): number
42-
findTransformConstraint(constraintName: string): spine.TransformConstraintData
43-
getAnimationList(): string[]
44-
getAttachment(slotIndex: integer, attachmentName: string): spine.Attachment
45-
getAttachmentByName(slotName: string, attachmentName: string): spine.Attachment
46-
getBoneList(): string[]
47-
getBounds(): any
48-
getCurrentAnimation(trackIndex?: integer): spine.Animation
49-
getRootBone(): spine.Bone
50-
getSkinList(): string[]
51-
getSlotList(): string[]
52-
play(animationName: string, loop?: boolean, ignoreIfPlaying?: boolean): SpineGameObject
47+
addAnimation(trackIndex: integer, animationName: string, loop?: boolean, delay?: integer): spine.TrackEntry;
48+
angleBoneToXY(bone: spine.Bone, worldX: number, worldY: number, offset?: number, minAngle?: number, maxAngle?: number): SpineGameObject;
49+
clearTrack(trackIndex: integer): SpineGameObject;
50+
clearTracks(): SpineGameObject;
51+
findAnimation(animationName: string): spine.Animation;
52+
findBone(boneName: string): spine.Bone;
53+
findBoneIndex(boneName: string): number;
54+
findEvent(eventDataName: string): spine.EventData;
55+
findIkConstraint(constraintName: string): spine.IkConstraintData;
56+
findPathConstraint(constraintName: string): spine.PathConstraintData;
57+
findPathConstraintIndex(constraintName: string): number;
58+
findSkin(skinName: string): spine.Skin;
59+
findSlot(slotName: string): spine.Slot;
60+
findSlotIndex(slotName: string): number;
61+
findTransformConstraint(constraintName: string): spine.TransformConstraintData;
62+
getAnimationList(): string[];
63+
getAttachment(slotIndex: integer, attachmentName: string): spine.Attachment;
64+
getAttachmentByName(slotName: string, attachmentName: string): spine.Attachment;
65+
getBoneList(): string[];
66+
getBounds(): any;
67+
getCurrentAnimation(trackIndex?: integer): spine.Animation;
68+
getLocalTransformMatrix(tempMatrix?: Phaser.GameObjects.Components.TransformMatrix): Phaser.GameObjects.Components.TransformMatrix;
69+
getParentRotation(): number;
70+
getRootBone(): spine.Bone;
71+
getSkinList(): string[];
72+
getSlotList(): string[];
73+
getWorldTransformMatrix(tempMatrix?: Phaser.GameObjects.Components.TransformMatrix, parentMatrix?: Phaser.GameObjects.Components.TransformMatrix): Phaser.GameObjects.Components.TransformMatrix;
74+
play(animationName: string, loop?: boolean, ignoreIfPlaying?: boolean): SpineGameObject;
5375

54-
protected preUpdate(time: number, delta: number): void
55-
protected preDestroy(): void
76+
protected preUpdate(time: number, delta: number): void;
77+
protected preDestroy(): void;
5678

57-
refresh(): SpineGameObject
58-
setAlpha(value?: number): SpineGameObject
59-
setAnimation(trackIndex: integer, animationName: string, loop?: boolean, ignoreIfPlaying?: boolean): spine.TrackEntry
60-
setAttachment(slotName: string, attachmentName: string): SpineGameObject
61-
setBonesToSetupPose(): SpineGameObject
62-
setColor(color?: integer, slotName?: string): SpineGameObject
63-
setEmptyAnimation(trackIndex: integer, mixDuration?: integer): spine.TrackEntry
64-
setMix(fromName: string, toName: string, duration?: number): SpineGameObject
65-
setOffset(offsetX?: number, offsetY?: number): SpineGameObject
66-
setSize(width?: number, height?: number, offsetX?: number, offsetY?: number): SpineGameObject
67-
setSkeleton(atlasDataKey: string, skeletonJSON: object, animationName?: string, loop?: boolean): SpineGameObject
68-
setSkeletonFromJSON(atlasDataKey: string, skeletonJSON: object, animationName?: string, loop?: boolean): SpineGameObject
69-
setSkin(newSkin: spine.Skin): SpineGameObject
70-
setSkinByName(skinName: string): SpineGameObject
71-
setSlotsToSetupPose(): SpineGameObject
72-
setToSetupPose(): SpineGameObject
73-
updateSize(): SpineGameObject
74-
willRender(): boolean
79+
refresh(): SpineGameObject;
80+
resetFlip(): this;
81+
setAlpha(value?: number): SpineGameObject;
82+
setAngle(degrees?: number): this;
83+
setAnimation(trackIndex: integer, animationName: string, loop?: boolean, ignoreIfPlaying?: boolean): spine.TrackEntry;
84+
setAttachment(slotName: string, attachmentName: string): SpineGameObject;
85+
setBonesToSetupPose(): SpineGameObject;
86+
setColor(color?: integer, slotName?: string): SpineGameObject;
87+
setDepth(value: integer): this;
88+
setDisplaySize(width: number, height: number): this;
89+
setEmptyAnimation(trackIndex: integer, mixDuration?: integer): spine.TrackEntry;
90+
setFlipX(value: boolean): this;
91+
setFlipY(value: boolean): this;
92+
setFlip(x: boolean, y: boolean): this;
93+
setMix(fromName: string, toName: string, duration?: number): SpineGameObject;
94+
setOffset(offsetX?: number, offsetY?: number): SpineGameObject;
95+
setPosition(x?: number, y?: number, z?: number, w?: number): this;
96+
setRandomPosition(x?: number, y?: number, width?: number, height?: number): this;
97+
setRotation(radians?: number): this;
98+
setScale(x: number, y?: number): this;
99+
setScrollFactor(x: number, y?: number): this;
100+
setSize(width?: number, height?: number, offsetX?: number, offsetY?: number): SpineGameObject;
101+
setSkeleton(atlasDataKey: string, skeletonJSON: object, animationName?: string, loop?: boolean): SpineGameObject;
102+
setSkeletonFromJSON(atlasDataKey: string, skeletonJSON: object, animationName?: string, loop?: boolean): SpineGameObject;
103+
setSkin(newSkin: spine.Skin): SpineGameObject;
104+
setSkinByName(skinName: string): SpineGameObject;
105+
setSlotsToSetupPose(): SpineGameObject;
106+
setToSetupPose(): SpineGameObject;
107+
setVisible(value: boolean): this;
108+
setX(value?: number): this;
109+
setY(value?: number): this;
110+
setZ(value?: number): this;
111+
setW(value?: number): this;
112+
toggleFlipX(): this;
113+
toggleFlipY(): this;
114+
updateSize(): SpineGameObject;
115+
willRender(): boolean;
75116
}
76117

77-
declare interface SpineGameObjectConfig extends Phaser.Types.GameObjects.GameObjectConfig
78-
{
79-
key?: string
80-
animationName?: string
81-
loop?: boolean
82-
skinName?: string
83-
slotName?: string
84-
attachmentName?: string
118+
declare interface SpineGameObjectConfig extends Phaser.Types.GameObjects.GameObjectConfig {
119+
key?: string;
120+
animationName?: string;
121+
loop?: boolean;
122+
skinName?: string;
123+
slotName?: string;
124+
attachmentName?: string;
85125
}

types/SpinePlugin.d.ts

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,59 @@
11
/// <reference path="./spine.d.ts" />
2+
/// <reference path="./SpineFile.d.ts" />
3+
/// <reference path="./SpineGameObject.d.ts" />
24

35
declare namespace Phaser.Loader {
46
interface LoaderPlugin extends Phaser.Events.EventEmitter {
5-
spine(key: string | Phaser.Loader.FileTypes.SpineFileConfig | Phaser.Loader.FileTypes.SpineFileConfig[], jsonURL: string, atlasURL: string | string[], preMultipliedAlpha?: boolean, textureXhrSettings?: Phaser.Types.Loader.XHRSettingsObject, atlasXhrSettings?: Phaser.Types.Loader.XHRSettingsObject): LoaderPlugin
7+
spine(key: string | Phaser.Loader.FileTypes.SpineFileConfig | Phaser.Loader.FileTypes.SpineFileConfig[], jsonURL: string, atlasURL: string | string[], preMultipliedAlpha?: boolean, textureXhrSettings?: Phaser.Types.Loader.XHRSettingsObject, atlasXhrSettings?: Phaser.Types.Loader.XHRSettingsObject): LoaderPlugin;
68
}
79
}
810

911
declare namespace Phaser.GameObjects {
1012
interface GameObjectFactory {
11-
spine(x: number, y: number, key?: string, aimationName?: string, loop?: boolean): SpineGameObject
13+
spine(x: number, y: number, key?: string, aimationName?: string, loop?: boolean): SpineGameObject;
1214
}
1315

1416
interface GameObjectCreator {
15-
spine(config: SpineGameObjectConfig, addToScene?: boolean): SpineGameObject
17+
spine(config: SpineGameObjectConfig, addToScene?: boolean): SpineGameObject;
1618
}
1719
}
1820

1921
declare class SpinePlugin extends Phaser.Plugins.ScenePlugin {
20-
constructor(scene: Phaser.Scene, pluginManager: Phaser.Plugins.PluginManager)
21-
22-
readonly isWebGL: boolean
23-
24-
cache: Phaser.Cache.BaseCache
25-
spineTextures: Phaser.Cache.BaseCache
26-
json: Phaser.Cache.BaseCache
27-
textures: Phaser.Textures.TextureManager
28-
drawDebug: boolean
29-
gl: WebGLRenderingContext
30-
renderer: Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer
31-
sceneRenderer: spine.webgl.SceneRenderer
32-
skeletonRenderer: spine.canvas.SkeletonRenderer | spine.webgl.SkeletonRenderer
33-
skeletonDebugRenderer: spine.webgl.SkeletonDebugRenderer
34-
35-
plugin: typeof spine
36-
37-
getAtlasCanvas(key: string): spine.TextureAtlas
38-
getAtlasWebGL(key: string): spine.TextureAtlas
39-
worldToLocal(x: number, y: number, skeleton: spine.Skeleton, bone?: spine.Bone): spine.Vector2
40-
getVector2(x: number, y: number): spine.Vector2
41-
getVector3(x: number, y: number, z: number): spine.Vector2
42-
setDebugBones(value?: boolean): SpinePlugin
43-
setDebugRegionAttachments(value?: boolean): SpinePlugin
44-
setDebugBoundingBoxes(value?: boolean): SpinePlugin
45-
setDebugMeshHull(value?: boolean): SpinePlugin
46-
setDebugMeshTriangles(value?: boolean): SpinePlugin
47-
setDebugPaths(value?: boolean): SpinePlugin
48-
setDebugSkeletonXY(value?: boolean): SpinePlugin
49-
setDebugClipping(value?: boolean): SpinePlugin
50-
setEffect(effect?: spine.VertexEffect): SpinePlugin
51-
createSkeleton(key: string, skeletonJSON?: object): any | null
52-
createAnimationState(skeleton: spine.Skeleton): any
53-
getBounds(skeleton: spine.Skeleton): any
54-
onResize(): void
55-
add(x: number, y: number, key?: string, animationName?: string, loop?: boolean): SpineGameObject
56-
make(config: SpineGameObjectConfig, addToScene?: boolean): SpineGameObject
22+
constructor(scene: Phaser.Scene, pluginManager: Phaser.Plugins.PluginManager);
23+
24+
readonly isWebGL: boolean;
25+
26+
cache: Phaser.Cache.BaseCache;
27+
spineTextures: Phaser.Cache.BaseCache;
28+
json: Phaser.Cache.BaseCache;
29+
textures: Phaser.Textures.TextureManager;
30+
drawDebug: boolean;
31+
gl: WebGLRenderingContext;
32+
renderer: Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer;
33+
sceneRenderer: spine.webgl.SceneRenderer;
34+
skeletonRenderer: spine.canvas.SkeletonRenderer | spine.webgl.SkeletonRenderer;
35+
skeletonDebugRenderer: spine.webgl.SkeletonDebugRenderer;
36+
37+
plugin: typeof spine;
38+
39+
getAtlasCanvas(key: string): spine.TextureAtlas;
40+
getAtlasWebGL(key: string): spine.TextureAtlas;
41+
worldToLocal(x: number, y: number, skeleton: spine.Skeleton, bone?: spine.Bone): spine.Vector2;
42+
getVector2(x: number, y: number): spine.Vector2;
43+
getVector3(x: number, y: number, z: number): spine.Vector2;
44+
setDebugBones(value?: boolean): SpinePlugin;
45+
setDebugRegionAttachments(value?: boolean): SpinePlugin;
46+
setDebugBoundingBoxes(value?: boolean): SpinePlugin;
47+
setDebugMeshHull(value?: boolean): SpinePlugin;
48+
setDebugMeshTriangles(value?: boolean): SpinePlugin;
49+
setDebugPaths(value?: boolean): SpinePlugin;
50+
setDebugSkeletonXY(value?: boolean): SpinePlugin;
51+
setDebugClipping(value?: boolean): SpinePlugin;
52+
setEffect(effect?: spine.VertexEffect): SpinePlugin;
53+
createSkeleton(key: string, skeletonJSON?: object): any | null;
54+
createAnimationState(skeleton: spine.Skeleton): any;
55+
getBounds(skeleton: spine.Skeleton): any;
56+
onResize(): void;
57+
add(x: number, y: number, key?: string, animationName?: string, loop?: boolean): SpineGameObject;
58+
make(config: SpineGameObjectConfig, addToScene?: boolean): SpineGameObject;
5759
}

0 commit comments

Comments
 (0)