@bscotch/gml-parser
Version:
A parser for GML (GameMaker Language) files for programmatic manipulation and analysis of GameMaker projects.
214 lines • 5.8 kB
TypeScript
export interface ObjectEvent {
label: string;
name: string;
eventNum: number;
eventType: number;
group: string;
}
export type ObjectEventName = (typeof objectEvents)[number]['name'];
export type ObjectEventLabel = (typeof objectEvents)[number]['label'];
interface ObjectAlarmEvent<N extends number> extends ObjectEvent {
label: `Alarm ${N}`;
name: `Alarm_${N}`;
eventNum: N;
eventType: 2;
group: 'alarm';
}
/**
* Mapping of GameMaker filenames to their corresponding
* human-friendly event names.
*/
export declare const objectEvents: readonly [{
readonly label: "Create";
readonly name: "Create_0";
readonly eventNum: 0;
readonly eventType: 0;
readonly group: "main";
}, {
readonly label: "Destroy";
readonly name: "Destroy_0";
readonly eventNum: 0;
readonly eventType: 1;
readonly group: "cleanup";
}, {
readonly label: "CleanUp";
readonly name: "CleanUp_0";
readonly eventNum: 0;
readonly eventType: 12;
readonly group: "cleanup";
}, {
readonly label: "Room Start";
readonly name: "Other_4";
readonly eventNum: 4;
readonly eventType: 7;
readonly group: "cleanup";
}, {
readonly label: "Room End";
readonly name: "Other_5";
readonly eventNum: 5;
readonly eventType: 7;
readonly group: "cleanup";
}, {
readonly label: "Game End";
readonly name: "Other_3";
readonly eventNum: 3;
readonly eventType: 7;
readonly group: "cleanup";
}, {
readonly label: "Pre-Draw";
readonly name: "Draw_76";
readonly eventNum: 76;
readonly eventType: 8;
readonly group: "draw";
}, {
readonly label: "Draw Begin";
readonly name: "Draw_72";
readonly eventNum: 72;
readonly eventType: 8;
readonly group: "draw";
}, {
readonly label: "Draw";
readonly name: "Draw_0";
readonly eventNum: 0;
readonly eventType: 8;
readonly group: "draw";
}, {
readonly label: "Draw End";
readonly name: "Draw_73";
readonly eventNum: 73;
readonly eventType: 8;
readonly group: "draw";
}, {
readonly label: "Post-Draw";
readonly name: "Draw_77";
readonly eventNum: 77;
readonly eventType: 8;
readonly group: "draw";
}, {
readonly label: "Draw GUI Begin";
readonly name: "Draw_74";
readonly eventNum: 74;
readonly eventType: 8;
readonly group: "draw-gui";
}, {
readonly label: "Draw GUI";
readonly name: "Draw_64";
readonly eventNum: 64;
readonly eventType: 8;
readonly group: "draw-gui";
}, {
readonly label: "Draw GUI End";
readonly name: "Draw_75";
readonly eventNum: 75;
readonly eventType: 8;
readonly group: "draw-gui";
}, {
readonly label: "Begin Step";
readonly name: "Step_1";
readonly eventNum: 1;
readonly eventType: 3;
readonly group: "step";
}, {
readonly label: "Step";
readonly name: "Step_0";
readonly eventNum: 0;
readonly eventType: 3;
readonly group: "step";
}, {
readonly label: "End Step";
readonly name: "Step_2";
readonly eventNum: 2;
readonly eventType: 3;
readonly group: "step";
}, ...({
label: string;
name: string;
eventNum: number;
eventType: number;
group: string;
} | ObjectAlarmEvent<number> | {
readonly label: "Animation Update";
readonly name: "Other_58";
readonly eventNum: 58;
readonly eventType: 7;
readonly group: "animation";
} | {
readonly label: "Animation Event";
readonly name: "Other_59";
readonly eventNum: 59;
readonly eventType: 7;
readonly group: "animation";
} | {
readonly label: "Async - Image Loaded";
readonly name: "Other_60";
readonly eventNum: 60;
readonly eventType: 7;
readonly group: "async";
} | {
readonly label: "Async - HTTP";
readonly name: "Other_62";
readonly eventNum: 62;
readonly eventType: 7;
readonly group: "async";
} | {
readonly label: "Async - System";
readonly name: "Other_75";
readonly eventNum: 75;
readonly eventType: 7;
readonly group: "async";
} | {
readonly label: "Async - Social";
readonly name: "Other_70";
readonly eventNum: 70;
readonly eventType: 7;
readonly group: "async";
} | {
readonly label: "Async - Save/Load";
readonly name: "Other_72";
readonly eventNum: 72;
readonly eventType: 7;
readonly group: "async";
} | {
readonly label: "Async - Steam";
readonly name: "Other_69";
readonly eventNum: 69;
readonly eventType: 7;
readonly group: "async";
} | {
readonly label: "Async - Dialog";
readonly name: "Other_63";
readonly eventNum: 63;
readonly eventType: 7;
readonly group: "async";
} | {
readonly label: "Broadcast Message";
readonly name: "Other_76";
readonly eventNum: 76;
readonly eventType: 7;
readonly group: "broadcast message";
} | {
readonly label: "Global Left Released";
readonly name: "Mouse_56";
readonly eventNum: 56;
readonly eventType: 6;
readonly group: "mouse";
} | {
readonly label: "Global Right Released";
readonly name: "Mouse_57";
readonly eventNum: 57;
readonly eventType: 6;
readonly group: "mouse";
} | {
readonly label: "Global Middle Released";
readonly name: "Mouse_58";
readonly eventNum: 58;
readonly eventType: 6;
readonly group: "mouse";
})[]];
/**
* Given a GameMaker object event filename, get its human-friendly name. */
export declare function getEventFromFilename(filename: string): ObjectEvent | undefined;
export declare function getEventFromLabel(label: string): ObjectEvent | undefined;
export declare function getEventFrom(eventNum: number, eventType: number): ObjectEvent | undefined;
export {};
//# sourceMappingURL=lib.objects.d.ts.map