UNPKG

@bscotch/yy

Version:

Stringify, parse, read, and write GameMaker yy and yyp files.

1,475 lines 112 kB
import { z } from 'zod'; import { FixedNumber } from './utility.js'; export declare enum SpriteType { Default = 0, Spine = 2 } export declare enum SpriteLayerBlendMode { Normal = 0, Add = 1, Subtract = 2, Multiply = 3 } export declare enum SpriteCollisionKind { Precise = 0, Rectangle = 1, Ellipse = 2, Diamond = 3, PrecisePerFrame = 4, RectangleWithRotation = 5, SpineCollisionMesh = 6 } export declare enum SpriteBoundingBoxMode { /** what does this imply about bboxes? */ Automatic = 0, FullImage = 1, Manual = 2 } export declare enum SpriteOrigin { TopLeft = 0, TopCenter = 1, TopRight = 2, MiddleLeft = 3, MiddleCenter = 4, MiddleRight = 5, BottomLeft = 6, BottomCenter = 7, BottomRight = 8, Custom = 9 } export declare enum SpritePlaybackSpeedType { FramesPerSecond = 0, FramesPerGameFrame = 1 } export type SpriteImageBase = z.infer<typeof spriteImageBaseSchema>; declare const spriteImageBaseSchema: z.ZodObject<{ FrameId: z.ZodObject<{ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; resourceVersion: z.ZodDefault<z.ZodLiteral<"1.0">>; name: z.ZodDefault<z.ZodString>; /** Seems to always be empty */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteBitmap">>; }, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; tags?: string[] | undefined; }, { FrameId: { path: string; name: string; }; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }>; export type SpriteImage = z.infer<typeof spriteImageSchema>; declare const spriteImageSchema: z.ZodObject<z.objectUtil.extendShape<{ FrameId: z.ZodObject<{ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; resourceVersion: z.ZodDefault<z.ZodLiteral<"1.0">>; name: z.ZodDefault<z.ZodString>; /** Seems to always be empty */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteBitmap">>; }, { LayerId: z.ZodObject<{ /** * Name of the layer. Corresponds to an image in each layer folder, * and should be found in once in *each frame*. Must be found in the * sprite's root "layers" list. */ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; }>, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; tags?: string[] | undefined; }, { FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }>; export type SpriteCompositeImage = z.infer<typeof spriteCompositeImageSchema>; declare const spriteCompositeImageSchema: z.ZodObject<z.objectUtil.extendShape<{ FrameId: z.ZodObject<{ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; resourceVersion: z.ZodDefault<z.ZodLiteral<"1.0">>; name: z.ZodDefault<z.ZodString>; /** Seems to always be empty */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteBitmap">>; }, { LayerId: z.ZodNull; }>, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: null; tags?: string[] | undefined; }, { FrameId: { path: string; name: string; }; LayerId: null; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }>; export type SpriteFrame = z.input<typeof spriteFrameSchema>; declare const spriteFrameSchema: z.ZodObject<{ /** * Unique GUID. Matches the name of an image file (+'.png') * that sits alongside the .yy file. Also matches a corresponding * folder name inside the "layers" folder. The Composite image * and each one listed in 'images' all have the same value here * for their "FrameId.name" field. */ name: z.ZodDefault<z.ZodString>; tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteFrame">>; /** * Image created by flattening layers. * * Automatically generated by the IDE for resourceVersion 1.0, * removed in 1.1. */ compositeImage: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{ FrameId: z.ZodObject<{ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; resourceVersion: z.ZodDefault<z.ZodLiteral<"1.0">>; name: z.ZodDefault<z.ZodString>; /** Seems to always be empty */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteBitmap">>; }, { LayerId: z.ZodNull; }>, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: null; tags?: string[] | undefined; }, { FrameId: { path: string; name: string; }; LayerId: null; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }>>; /** * One image per layer. * * Automatically generated by the IDE for resourceVersion 1.0, * removed in 1.1. */ images: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{ FrameId: z.ZodObject<{ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; resourceVersion: z.ZodDefault<z.ZodLiteral<"1.0">>; name: z.ZodDefault<z.ZodString>; /** Seems to always be empty */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteBitmap">>; }, { LayerId: z.ZodObject<{ /** * Name of the layer. Corresponds to an image in each layer folder, * and should be found in once in *each frame*. Must be found in the * sprite's root "layers" list. */ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; }>, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; tags?: string[] | undefined; }, { FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }>, "many">>; /** * The parent sprite, same as the sprite's ID from the YYP. * * Automatically generated by the IDE for resourceVersion 1.0, * removed in 1.1. */ parent: z.ZodOptional<z.ZodObject<{ name: z.ZodString; path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>>; resourceVersion: z.ZodDefault<z.ZodString>; }, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteFrame"; resourceVersion: string; tags?: string[] | undefined; parent?: { path: string; name: string; } | undefined; compositeImage?: { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: null; tags?: string[] | undefined; } | undefined; images?: { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; tags?: string[] | undefined; }[] | undefined; }, { name?: string | undefined; resourceType?: "GMSpriteFrame" | undefined; tags?: string[] | undefined; parent?: { path: string; name: string; } | undefined; resourceVersion?: string | undefined; compositeImage?: { FrameId: { path: string; name: string; }; LayerId: null; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; } | undefined; images?: { FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }[] | undefined; }>; export type SpriteImageLayer = z.input<typeof spriteImageLayerSchema>; declare const spriteImageLayerSchema: z.ZodObject<{ visible: z.ZodDefault<z.ZodBoolean>; isLocked: z.ZodDefault<z.ZodBoolean>; blendMode: z.ZodDefault<z.ZodNativeEnum<typeof SpriteLayerBlendMode>>; opacity: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; displayName: z.ZodDefault<z.ZodString>; resourceVersion: z.ZodDefault<z.ZodString>; /** * The unique GUID for this layer, used by Frames in their LayerId field. */ name: z.ZodDefault<z.ZodString>; /** Seems to be unused -- always an empty array. */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMImageLayer">>; }, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMImageLayer"; resourceVersion: string; visible: boolean; isLocked: boolean; blendMode: SpriteLayerBlendMode; opacity: FixedNumber; displayName: string; tags?: string[] | undefined; }, { name?: string | undefined; resourceType?: "GMImageLayer" | undefined; tags?: string[] | undefined; resourceVersion?: string | undefined; visible?: boolean | undefined; isLocked?: boolean | undefined; blendMode?: SpriteLayerBlendMode | undefined; opacity?: number | FixedNumber | undefined; displayName?: string | undefined; }>; export type SpriteFolderLayer = z.input<typeof spriteFolderLayerSchema>; declare const spriteFolderLayerSchema: z.ZodObject<{ resourceType: z.ZodDefault<z.ZodLiteral<"GMImageFolderLayer">>; resourceVersion: z.ZodDefault<z.ZodString>; name: z.ZodDefault<z.ZodString>; blendMode: z.ZodDefault<z.ZodNativeEnum<typeof SpriteLayerBlendMode>>; displayName: z.ZodDefault<z.ZodString>; isLocked: z.ZodDefault<z.ZodBoolean>; opacity: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; visible: z.ZodDefault<z.ZodBoolean>; layers: z.ZodDefault<z.ZodArray<z.ZodObject<{ visible: z.ZodDefault<z.ZodBoolean>; isLocked: z.ZodDefault<z.ZodBoolean>; blendMode: z.ZodDefault<z.ZodNativeEnum<typeof SpriteLayerBlendMode>>; opacity: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; displayName: z.ZodDefault<z.ZodString>; resourceVersion: z.ZodDefault<z.ZodString>; /** * The unique GUID for this layer, used by Frames in their LayerId field. */ name: z.ZodDefault<z.ZodString>; /** Seems to be unused -- always an empty array. */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMImageLayer">>; }, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMImageLayer"; resourceVersion: string; visible: boolean; isLocked: boolean; blendMode: SpriteLayerBlendMode; opacity: FixedNumber; displayName: string; tags?: string[] | undefined; }, { name?: string | undefined; resourceType?: "GMImageLayer" | undefined; tags?: string[] | undefined; resourceVersion?: string | undefined; visible?: boolean | undefined; isLocked?: boolean | undefined; blendMode?: SpriteLayerBlendMode | undefined; opacity?: number | FixedNumber | undefined; displayName?: string | undefined; }>, "many">>; }, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMImageFolderLayer"; resourceVersion: string; visible: boolean; layers: { name: string; resourceType: "GMImageLayer"; resourceVersion: string; visible: boolean; isLocked: boolean; blendMode: SpriteLayerBlendMode; opacity: FixedNumber; displayName: string; tags?: string[] | undefined; }[]; isLocked: boolean; blendMode: SpriteLayerBlendMode; opacity: FixedNumber; displayName: string; }, { name?: string | undefined; resourceType?: "GMImageFolderLayer" | undefined; resourceVersion?: string | undefined; visible?: boolean | undefined; layers?: { name?: string | undefined; resourceType?: "GMImageLayer" | undefined; tags?: string[] | undefined; resourceVersion?: string | undefined; visible?: boolean | undefined; isLocked?: boolean | undefined; blendMode?: SpriteLayerBlendMode | undefined; opacity?: number | FixedNumber | undefined; displayName?: string | undefined; }[] | undefined; isLocked?: boolean | undefined; blendMode?: SpriteLayerBlendMode | undefined; opacity?: number | FixedNumber | undefined; displayName?: string | undefined; }>; export type SpriteSequenceTrackKeyframe = z.input<typeof spriteSequenceTrackKeyframeSchema>; declare const spriteSequenceTrackKeyframeSchema: z.ZodIntersection<z.ZodObject<{ /** * Unique GUID for the keyframe. */ id: z.ZodDefault<z.ZodString>; /** * Appears to be the index position within the keyframes array */ Key: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; /** Seems to always be 1? */ Length: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; Stretch: z.ZodDefault<z.ZodBoolean>; Disabled: z.ZodDefault<z.ZodBoolean>; IsCreationKey: z.ZodDefault<z.ZodBoolean>; Channels: z.ZodDefault<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{ Id: z.ZodDefault<z.ZodObject<{ /** Frame/subimage GUID */ name: z.ZodString; /** Sprite .yy file (e.g. sprites/sprites/thisSprite.yy) */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>>; resourceVersion: z.ZodDefault<z.ZodString>; resourceType: z.ZodDefault<z.ZodLiteral<"SpriteFrameKeyframe">>; }, "strip", z.ZodTypeAny, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }, { resourceType?: "SpriteFrameKeyframe" | undefined; resourceVersion?: string | undefined; Id?: { path: string; name: string; } | undefined; }>>, Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>, unknown>>; resourceVersion: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; }, { resourceVersion?: string | undefined; id?: string | undefined; Channels?: unknown; Key?: number | FixedNumber | undefined; Length?: number | FixedNumber | undefined; Stretch?: boolean | undefined; Disabled?: boolean | undefined; IsCreationKey?: boolean | undefined; }>, z.ZodDiscriminatedUnion<"resourceType", [z.ZodObject<{ resourceType: z.ZodLiteral<"Keyframe`1">; elementType: z.ZodLiteral<"SpriteFrameKeyframe">; }, "strip", z.ZodTypeAny, { resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; }, { resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; }>, z.ZodObject<{ resourceType: z.ZodLiteral<"Keyframe<SpriteFrameKeyframe>">; }, "strip", z.ZodTypeAny, { resourceType: "Keyframe<SpriteFrameKeyframe>"; }, { resourceType: "Keyframe<SpriteFrameKeyframe>"; }>]>>; export type SpriteSequenceEventType = z.infer<typeof spriteSequenceEventTypeSchema>; declare const spriteSequenceEventTypeSchema: z.ZodDiscriminatedUnion<"resourceType", [z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore<MessageEventKeyframe>">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore<MessageEventKeyframe>"; }, { resourceType: "KeyframeStore<MessageEventKeyframe>"; }>, z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore`1">; elementType: z.ZodLiteral<"MessageEventKeyframe">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore`1"; elementType: "MessageEventKeyframe"; }, { resourceType: "KeyframeStore`1"; elementType: "MessageEventKeyframe"; }>]>; export type SpriteSequenceTrack = z.infer<typeof spriteSequenceTrackSchema>; declare const spriteSequenceTrackSchema: z.ZodObject<{ name: z.ZodDefault<z.ZodString>; spriteId: z.ZodDefault<z.ZodNullable<z.ZodUnknown>>; trackColour: z.ZodDefault<z.ZodNumber>; inheritsTrackColour: z.ZodDefault<z.ZodBoolean>; builtinName: z.ZodDefault<z.ZodNumber>; traits: z.ZodDefault<z.ZodNumber>; interpolation: z.ZodDefault<z.ZodNumber>; tracks: z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>; events: z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>; modifiers: z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>; isCreationTrack: z.ZodDefault<z.ZodBoolean>; resourceVersion: z.ZodDefault<z.ZodString>; tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteFramesTrack">>; keyframes: z.ZodEffects<z.ZodEffects<z.ZodIntersection<z.ZodObject<{ Keyframes: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodIntersection<z.ZodObject<{ /** * Unique GUID for the keyframe. */ id: z.ZodDefault<z.ZodString>; /** * Appears to be the index position within the keyframes array */ Key: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; /** Seems to always be 1? */ Length: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; Stretch: z.ZodDefault<z.ZodBoolean>; Disabled: z.ZodDefault<z.ZodBoolean>; IsCreationKey: z.ZodDefault<z.ZodBoolean>; Channels: z.ZodDefault<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{ Id: z.ZodDefault<z.ZodObject<{ /** Frame/subimage GUID */ name: z.ZodString; /** Sprite .yy file (e.g. sprites/sprites/thisSprite.yy) */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>>; resourceVersion: z.ZodDefault<z.ZodString>; resourceType: z.ZodDefault<z.ZodLiteral<"SpriteFrameKeyframe">>; }, "strip", z.ZodTypeAny, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }, { resourceType?: "SpriteFrameKeyframe" | undefined; resourceVersion?: string | undefined; Id?: { path: string; name: string; } | undefined; }>>, Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>, unknown>>; resourceVersion: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; }, { resourceVersion?: string | undefined; id?: string | undefined; Channels?: unknown; Key?: number | FixedNumber | undefined; Length?: number | FixedNumber | undefined; Stretch?: boolean | undefined; Disabled?: boolean | undefined; IsCreationKey?: boolean | undefined; }>, z.ZodDiscriminatedUnion<"resourceType", [z.ZodObject<{ resourceType: z.ZodLiteral<"Keyframe`1">; elementType: z.ZodLiteral<"SpriteFrameKeyframe">; }, "strip", z.ZodTypeAny, { resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; }, { resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; }>, z.ZodObject<{ resourceType: z.ZodLiteral<"Keyframe<SpriteFrameKeyframe>">; }, "strip", z.ZodTypeAny, { resourceType: "Keyframe<SpriteFrameKeyframe>"; }, { resourceType: "Keyframe<SpriteFrameKeyframe>"; }>]>>, "many">>, ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[], unknown>; resourceVersion: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { resourceVersion: string; Keyframes: ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[]; }, { resourceVersion?: string | undefined; Keyframes?: unknown; }>, z.ZodDefault<z.ZodDiscriminatedUnion<"resourceType", [z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore<SpriteFrameKeyframe>">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore<SpriteFrameKeyframe>"; }, { resourceType: "KeyframeStore<SpriteFrameKeyframe>"; }>, z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore`1">; elementType: z.ZodLiteral<"SpriteFrameKeyframe">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore`1"; elementType: "SpriteFrameKeyframe"; }, { resourceType: "KeyframeStore`1"; elementType: "SpriteFrameKeyframe"; }>]>>>, ({ resourceVersion: string; Keyframes: ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[]; } & { resourceType: "KeyframeStore<SpriteFrameKeyframe>"; }) | ({ resourceVersion: string; Keyframes: ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[]; } & { resourceType: "KeyframeStore`1"; elementType: "SpriteFrameKeyframe"; }), ({ resourceVersion?: string | undefined; Keyframes?: unknown; } & { resourceType: "KeyframeStore<SpriteFrameKeyframe>"; }) | ({ resourceVersion?: string | undefined; Keyframes?: unknown; } & { resourceType: "KeyframeStore`1"; elementType: "SpriteFrameKeyframe"; })>, ({ resourceVersion: string; Keyframes: ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[]; } & { resourceType: "KeyframeStore<SpriteFrameKeyframe>"; }) | ({ resourceVersion: string; Keyframes: ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[]; } & { resourceType: "KeyframeStore`1"; elementType: "SpriteFrameKeyframe"; }), unknown>; }, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteFramesTrack"; resourceVersion: string; events: unknown[]; tracks: unknown[]; trackColour: number; inheritsTrackColour: boolean; builtinName: number; traits: number; interpolation: number; modifiers: unknown[]; isCreationTrack: boolean; keyframes: ({ resourceVersion: string; Keyframes: ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[]; } & { resourceType: "KeyframeStore<SpriteFrameKeyframe>"; }) | ({ resourceVersion: string; Keyframes: ({ resourceVersion: string; id: string; Channels: Record<string, { resourceType: "SpriteFrameKeyframe"; resourceVersion: string; Id: { path: string; name: string; }; }>; Key: FixedNumber; Length: FixedNumber; Stretch: boolean; Disabled: boolean; IsCreationKey: boolean; } & ({ resourceType: "Keyframe`1"; elementType: "SpriteFrameKeyframe"; } | { resourceType: "Keyframe<SpriteFrameKeyframe>"; }))[]; } & { resourceType: "KeyframeStore`1"; elementType: "SpriteFrameKeyframe"; }); tags?: string[] | undefined; spriteId?: unknown; }, { name?: string | undefined; resourceType?: "GMSpriteFramesTrack" | undefined; tags?: string[] | undefined; resourceVersion?: string | undefined; spriteId?: unknown; events?: unknown[] | undefined; tracks?: unknown[] | undefined; trackColour?: number | undefined; inheritsTrackColour?: boolean | undefined; builtinName?: number | undefined; traits?: number | undefined; interpolation?: number | undefined; modifiers?: unknown[] | undefined; isCreationTrack?: boolean | undefined; keyframes?: unknown; }>; export type SpriteSequence = z.input<typeof spriteSequenceSchema>; declare const spriteSequenceSchema: z.ZodObject<{ timeUnits: z.ZodDefault<z.ZodNumber>; playback: z.ZodDefault<z.ZodNumber>; /** * FPS (probably 30, 45, or 60), set via the editor */ playbackSpeed: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; /** * FPS type, set via the editor */ playbackSpeedType: z.ZodDefault<z.ZodNativeEnum<typeof SpritePlaybackSpeedType>>; autoRecord: z.ZodDefault<z.ZodBoolean>; volume: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; /** * Number of frames */ length: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; visibleRange: z.ZodDefault<z.ZodNullable<z.ZodObject<{ x: z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>; y: z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>; }, "strip", z.ZodTypeAny, { x: FixedNumber; y: FixedNumber; }, { x: number | FixedNumber; y: number | FixedNumber; }>>>; lockOrigin: z.ZodDefault<z.ZodBoolean>; showBackdrop: z.ZodDefault<z.ZodBoolean>; showBackdropImage: z.ZodDefault<z.ZodBoolean>; backdropImagePath: z.ZodDefault<z.ZodString>; backdropImageOpacity: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; backdropWidth: z.ZodDefault<z.ZodNumber>; backdropHeight: z.ZodDefault<z.ZodNumber>; backdropXOffset: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; backdropYOffset: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodNumber, number, number | FixedNumber>, FixedNumber, number | FixedNumber>>; xorigin: z.ZodDefault<z.ZodNumber>; yorigin: z.ZodDefault<z.ZodNumber>; eventToFunction: z.ZodDefault<z.ZodUnknown>; eventStubScript: z.ZodDefault<z.ZodUnknown>; name: z.ZodOptional<z.ZodString>; tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSequence">>; resourceVersion: z.ZodDefault<z.ZodString>; events: z.ZodDefault<z.ZodEffects<z.ZodIntersection<z.ZodObject<{ Keyframes: z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>; resourceVersion: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { resourceVersion: string; Keyframes: unknown[]; }, { resourceVersion?: string | undefined; Keyframes?: unknown[] | undefined; }>, z.ZodDiscriminatedUnion<"resourceType", [z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore<MessageEventKeyframe>">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore<MessageEventKeyframe>"; }, { resourceType: "KeyframeStore<MessageEventKeyframe>"; }>, z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore`1">; elementType: z.ZodLiteral<"MessageEventKeyframe">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore`1"; elementType: "MessageEventKeyframe"; }, { resourceType: "KeyframeStore`1"; elementType: "MessageEventKeyframe"; }>]>>, { resourceVersion: string; Keyframes: unknown[]; } & ({ resourceType: "KeyframeStore<MessageEventKeyframe>"; } | { resourceType: "KeyframeStore`1"; elementType: "MessageEventKeyframe"; }), unknown>>; moments: z.ZodDefault<z.ZodEffects<z.ZodIntersection<z.ZodObject<{ Keyframes: z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>; resourceVersion: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { resourceVersion: string; Keyframes: unknown[]; }, { resourceVersion?: string | undefined; Keyframes?: unknown[] | undefined; }>, z.ZodDiscriminatedUnion<"resourceType", [z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore<MomentsEventKeyframe>">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore<MomentsEventKeyframe>"; }, { resourceType: "KeyframeStore<MomentsEventKeyframe>"; }>, z.ZodObject<{ resourceType: z.ZodLiteral<"KeyframeStore`1">; elementType: z.ZodLiteral<"MomentsEventKeyframe">; }, "strip", z.ZodTypeAny, { resourceType: "KeyframeStore`1"; elementType: "MomentsEventKeyframe"; }, { resourceType: "KeyframeStore`1"; elementType: "MomentsEventKeyframe"; }>]>>, { resourceVersion: string; Keyframes: unknown[]; } & ({ resourceType: "KeyframeStore<MomentsEventKeyframe>"; } | { resourceType: "KeyframeStore`1"; elementType: "MomentsEventKeyframe"; }), unknown>>; tracks: z.ZodEffects<z.ZodArray<z.ZodTypeAny, "many">, any[], unknown>; /** * Matches the YYP resource's 'id' value. */ spriteId: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodObject<{ name: z.ZodString; path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>, { path: string; name: string; }, { path: string; name: string; }>, { path: string; name: string; }, unknown>>; parent: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodObject<{ name: z.ZodString; path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>, { path: string; name: string; }, { path: string; name: string; }>, { path: string; name: string; }, unknown>>; }, z.UnknownKeysParam, z.ZodTypeAny, { length: FixedNumber; resourceType: "GMSequence"; resourceVersion: string; volume: FixedNumber; timeUnits: number; playback: number; playbackSpeed: FixedNumber; playbackSpeedType: SpritePlaybackSpeedType; autoRecord: boolean; visibleRange: { x: FixedNumber; y: FixedNumber; } | null; lockOrigin: boolean; showBackdrop: boolean; showBackdropImage: boolean; backdropImagePath: string; backdropImageOpacity: FixedNumber; backdropWidth: number; backdropHeight: number; backdropXOffset: FixedNumber; backdropYOffset: FixedNumber; xorigin: number; yorigin: number; events: { resourceVersion: string; Keyframes: unknown[]; } & ({ resourceType: "KeyframeStore<MessageEventKeyframe>"; } | { resourceType: "KeyframeStore`1"; elementType: "MessageEventKeyframe"; }); moments: { resourceVersion: string; Keyframes: unknown[]; } & ({ resourceType: "KeyframeStore<MomentsEventKeyframe>"; } | { resourceType: "KeyframeStore`1"; elementType: "MomentsEventKeyframe"; }); tracks: any[]; name?: string | undefined; tags?: string[] | undefined; parent?: { path: string; name: string; } | undefined; spriteId?: { path: string; name: string; } | undefined; eventToFunction?: unknown; eventStubScript?: unknown; }, { length?: number | FixedNumber | undefined; name?: string | undefined; resourceType?: "GMSequence" | undefined; tags?: string[] | undefined; parent?: unknown; resourceVersion?: string | undefined; spriteId?: unknown; volume?: number | FixedNumber | undefined; timeUnits?: number | undefined; playback?: number | undefined; playbackSpeed?: number | FixedNumber | undefined; playbackSpeedType?: SpritePlaybackSpeedType | undefined; autoRecord?: boolean | undefined; visibleRange?: { x: number | FixedNumber; y: number | FixedNumber; } | null | undefined; lockOrigin?: boolean | undefined; showBackdrop?: boolean | undefined; showBackdropImage?: boolean | undefined; backdropImagePath?: string | undefined; backdropImageOpacity?: number | FixedNumber | undefined; backdropWidth?: number | undefined; backdropHeight?: number | undefined; backdropXOffset?: number | FixedNumber | undefined; backdropYOffset?: number | FixedNumber | undefined; xorigin?: number | undefined; yorigin?: number | undefined; eventToFunction?: unknown; eventStubScript?: unknown; events?: unknown; moments?: unknown; tracks?: unknown; }>; /** * Data structure for Sprite .yy files. */ export type YySpriteLoose = z.input<typeof yySpriteSchemaStrict>; export type YySprite = z.output<typeof yySpriteSchemaStrict>; declare const yySpriteSchemaStrict: z.ZodEffects<z.ZodObject<z.objectUtil.extendShape<{ "%Name": z.ZodOptional<z.ZodString>; ConfigValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>; name: z.ZodString; resourceType: z.ZodString; tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; parent: z.ZodDefault<z.ZodObject<{ name: z.ZodString; path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>>; resourceVersion: z.ZodDefault<z.ZodString>; }, { bboxMode: z.ZodDefault<z.ZodNativeEnum<typeof SpriteBoundingBoxMode>>; collisionKind: z.ZodDefault<z.ZodNativeEnum<typeof SpriteCollisionKind>>; /** * The sprite type (Spine or Regular) */ type: z.ZodDefault<z.ZodNativeEnum<typeof SpriteType>>; /** * The method used for specifying the origin */ origin: z.ZodDefault<z.ZodNativeEnum<typeof SpriteOrigin>>; preMultiplyAlpha: z.ZodDefault<z.ZodBoolean>; edgeFiltering: z.ZodDefault<z.ZodBoolean>; /** * Only meaningful if collision type is "Precise". */ collisionTolerance: z.ZodDefault<z.ZodNumber>; /** * (What is this?) */ swfPrecision: z.ZodDefault<z.ZodNumber>; bbox_left: z.ZodDefault<z.ZodNumber>; bbox_right: z.ZodDefault<z.ZodNumber>; bbox_top: z.ZodDefault<z.ZodNumber>; bbox_bottom: z.ZodDefault<z.ZodNumber>; /** * Horizontally tiled */ HTile: z.ZodDefault<z.ZodBoolean>; /** * Vertically tiled */ VTile: z.ZodDefault<z.ZodBoolean>; /** * Used for 3d (not sure how set...) */ For3D: z.ZodDefault<z.ZodBoolean>; DynamicTexturePage: z.ZodDefault<z.ZodBoolean>; width: z.ZodDefault<z.ZodNumber>; height: z.ZodDefault<z.ZodNumber>; /** * Matches the texture's id from the YYP file */ textureGroupId: z.ZodDefault<z.ZodObject<{ /** the name of the Texture Group */ name: z.ZodString; /** seems to just be `texturegroups/${name}` */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>>; swatchColours: z.ZodDefault<z.ZodUnknown>; gridX: z.ZodDefault<z.ZodNumber>; gridY: z.ZodDefault<z.ZodNumber>; frames: z.ZodDefault<z.ZodArray<z.ZodObject<{ /** * Unique GUID. Matches the name of an image file (+'.png') * that sits alongside the .yy file. Also matches a corresponding * folder name inside the "layers" folder. The Composite image * and each one listed in 'images' all have the same value here * for their "FrameId.name" field. */ name: z.ZodDefault<z.ZodString>; tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteFrame">>; /** * Image created by flattening layers. * * Automatically generated by the IDE for resourceVersion 1.0, * removed in 1.1. */ compositeImage: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{ FrameId: z.ZodObject<{ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; resourceVersion: z.ZodDefault<z.ZodLiteral<"1.0">>; name: z.ZodDefault<z.ZodString>; /** Seems to always be empty */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteBitmap">>; }, { LayerId: z.ZodNull; }>, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: null; tags?: string[] | undefined; }, { FrameId: { path: string; name: string; }; LayerId: null; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }>>; /** * One image per layer. * * Automatically generated by the IDE for resourceVersion 1.0, * removed in 1.1. */ images: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{ FrameId: z.ZodObject<{ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; resourceVersion: z.ZodDefault<z.ZodLiteral<"1.0">>; name: z.ZodDefault<z.ZodString>; /** Seems to always be empty */ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; resourceType: z.ZodDefault<z.ZodLiteral<"GMSpriteBitmap">>; }, { LayerId: z.ZodObject<{ /** * Name of the layer. Corresponds to an image in each layer folder, * and should be found in once in *each frame*. Must be found in the * sprite's root "layers" list. */ name: z.ZodString; /** Path to the sprite's .yy file */ path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>; }>, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteBitmap"; resourceVersion: "1.0"; FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; tags?: string[] | undefined; }, { FrameId: { path: string; name: string; }; LayerId: { path: string; name: string; }; name?: string | undefined; resourceType?: "GMSpriteBitmap" | undefined; tags?: string[] | undefined; resourceVersion?: "1.0" | undefined; }>, "many">>; /** * The parent sprite, same as the sprite's ID from the YYP. * * Automatically generated by the IDE for resourceVersion 1.0, * removed in 1.1. */ parent: z.ZodOptional<z.ZodObject<{ name: z.ZodString; path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; name: string; }, { path: string; name: string; }>>; resourceVersion: z.ZodDefault<z.ZodString>; }, z.UnknownKeysParam, z.ZodTypeAny, { name: string; resourceType: "GMSpriteFrame"; resourceVersion: string; ta