@bscotch/gml-parser
Version:
A parser for GML (GameMaker Language) files for programmatic manipulation and analysis of GameMaker projects.
89 lines • 2.93 kB
TypeScript
export interface SpineJson<AnimationName extends string = string, SlotName extends string = string, BoneName extends string = string, EventName extends string = string, AttachmentName extends string = string> {
skeleton: SpineSkeleton;
bones: SpineBone<BoneName>[];
slots: SpineSlot<SlotName, BoneName, AttachmentName>[];
skins: SpineSkin<SlotName, AttachmentName>[];
events: SpineEvents<EventName>;
animations: SpineAnimations<AnimationName, SlotName, BoneName, EventName, AttachmentName>;
}
type SpineEvents<EventName extends string = string> = {
[eventName in EventName]: unknown;
};
interface SpineSkeleton {
hash: string;
/** Our version is 4.0.56 */
spine: string;
x: number;
y: number;
width: number;
height: number;
fps: number;
images: string;
audio: string;
}
interface SpineBone<BoneName extends string = string> {
name: BoneName;
parent?: string;
x?: number;
y?: number;
rotation?: number;
scaleX?: number;
}
interface SpineSlot<SlotName extends string = string, BoneName extends string = string, AttachmentName extends string = string> {
name: SlotName;
bone: BoneName;
attachment: AttachmentName;
}
interface SpineSkin<SlotName extends string = string, AttachmentName extends string = string> {
name: string;
attachments: {
[Slot in SlotName]?: {
[Attachment in AttachmentName]?: {
x: number;
y: number;
width: number;
height: number;
type?: string;
uvs?: number[];
triangles?: number[];
vertices?: number[];
hull?: number;
edges?: number[];
};
};
};
}
type SpineAnimations<AnimationName extends string = string, SlotName extends string = string, BoneName extends string = string, EventName extends string = string, AttachmentName extends string = string> = {
[name in AnimationName]: SpineAnimation<SlotName, BoneName, EventName, AttachmentName>;
};
export interface SpineAnimation<SlotName extends string = string, BoneName extends string = string, EventName extends string = string, AttachmentName extends string = string> {
slots: {
[slotName in SlotName]: {
attachment: {
name: AttachmentName | null;
time?: number;
}[];
rgba?: TimeConfig[];
};
};
bones: {
[boneName in BoneName]: {
rotate?: TimeConfig[];
translate?: TimeConfig[];
scale?: TimeConfig[];
shear?: TimeConfig[];
};
};
events: {
time: number;
name: EventName;
}[];
drawOrder?: TimeConfig[];
deform?: unknown;
}
type TimeConfig = {
time?: number;
[key: string]: unknown;
};
export {};
//# sourceMappingURL=spine.types.d.ts.map