@bscotch/yy
Version:
Stringify, parse, read, and write GameMaker yy and yyp files.
110 lines • 4.29 kB
JavaScript
// 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