UNPKG

@bscotch/yy

Version:

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

110 lines 4.29 kB
// Generated by ts-to-zod import { invert } from '@bscotch/utility'; import { z } from 'zod'; import { yyBaseSchema } from './YyBase.js'; import { yypResourceIdSchema } from './Yyp.js'; import { unstable } from './utility.js'; export const yyObjectEventNums = { Create: 0, Destroy: 1, Alarm: 2, Step: 3, Draw: 8, Cleanup: 12, }; export const yyObjectEventNames = invert(yyObjectEventNums); export var YyObjectPropertyVarType; (function (YyObjectPropertyVarType) { YyObjectPropertyVarType[YyObjectPropertyVarType["Real"] = 0] = "Real"; YyObjectPropertyVarType[YyObjectPropertyVarType["Integer"] = 1] = "Integer"; YyObjectPropertyVarType[YyObjectPropertyVarType["String"] = 2] = "String"; YyObjectPropertyVarType[YyObjectPropertyVarType["Boolean"] = 3] = "Boolean"; YyObjectPropertyVarType[YyObjectPropertyVarType["Expression"] = 4] = "Expression"; YyObjectPropertyVarType[YyObjectPropertyVarType["Asset"] = 5] = "Asset"; YyObjectPropertyVarType[YyObjectPropertyVarType["List"] = 6] = "List"; YyObjectPropertyVarType[YyObjectPropertyVarType["Colour"] = 7] = "Colour"; })(YyObjectPropertyVarType || (YyObjectPropertyVarType = {})); export const yyObjectEventSchema = unstable({ isDnD: z.boolean().default(false), /** * Numeric identifier for an event subtype. * E.g. "Step End" has eventType for Step and * eventNum for End. */ eventNum: z.number().default(0), /** * Numeric identifier representing the event type (e.g. for the Create or Draw events) */ eventType: z.number(), collisionObjectId: yypResourceIdSchema.nullable().default(null), name: z.string().default(''), tags: z.array(z.string()).optional(), resourceVersion: z.string().default('1.0'), resourceType: z.literal('GMEvent').default('GMEvent'), parent: z.unknown().optional(), }); const yyObjectPropertyVarTypeSchema = z.nativeEnum(YyObjectPropertyVarType); export const yyObjectPropertySchema = unstable({ /** The variable's name */ name: z.string(), varType: yyObjectPropertyVarTypeSchema, /** Stringified starting value. If a color, prefixed with a '$' (unkown format). */ value: z.string(), rangeEnabled: z.boolean().default(false), /** (Unknown parameter) */ rangeMin: z.number(), /** (Unknown parameter) */ rangeMax: z.number(), /** * Always exists, but only meaningful for Lists */ listItems: z.array(z.string()).nullable().default([]), /** * Always exists, but only meaningful for Lists */ multiselect: z.boolean().default(false), /** * (Unknown parameter) */ filters: z.array(z.unknown()).default([]), tags: z.array(z.string()).optional(), resourceVersion: z.string().default('1.0'), resourceType: z.literal('GMObjectProperty').default('GMObjectProperty'), }); export const yyObjectSchema = yyBaseSchema.extend({ spriteId: yypResourceIdSchema.nullable().default(null), solid: z.boolean().default(false), visible: z.boolean().default(true), /** * If self (default) can be set to null */ spriteMaskId: yypResourceIdSchema.nullable().default(null), persistent: z.boolean().default(false), parentObjectId: yypResourceIdSchema.nullable().default(null), physicsObject: z.boolean().default(false), physicsSensor: z.boolean().default(false), physicsShape: z.number().default(1), physicsGroup: z.number().default(1), physicsDensity: z.number().default(0), physicsRestitution: z.number().default(0), physicsLinearDamping: z.number().default(0), physicsAngularDamping: z.number().default(0), physicsFriction: z.number().default(0), physicsStartAwake: z.boolean().default(true), physicsKinematic: z.boolean().default(false), physicsShapePoints: z .array(z.object({ x: z.number(), y: z.number(), })) .default([]), eventList: z.array(yyObjectEventSchema).default([]), properties: z.array(yyObjectPropertySchema).default([]), /** * (Unknown parameter) */ overriddenProperties: z.array(z.unknown()).default([]), managed: z.boolean().default(true), resourceType: z.literal('GMObject').default('GMObject'), }); //# sourceMappingURL=YyObject.js.map