@drincs/pixi-vn
Version:
Pixi'VN is a npm package that provides various features for creating visual novels.
53 lines (50 loc) • 1.42 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
// src/decorators/EventDecorator.ts
var registeredEvents = {};
function eventDecorator(name) {
return function(target) {
if (!name) {
name = target.name;
}
if (registeredEvents[name]) {
console.info(`[Pixi'VN] Event ${name} already exists, it will be overwritten`);
}
target.prototype.id = name;
registeredEvents[name] = target;
};
}
function getEventTypeById(eventId) {
try {
let eventType = registeredEvents[eventId];
if (!eventType) {
console.error(`[Pixi'VN] Event ${eventId} not found`);
return;
}
new eventType();
return eventType;
} catch (e) {
console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
return;
}
}
function getEventInstanceById(eventId) {
try {
let eventType = registeredEvents[eventId];
if (!eventType) {
console.error(`[Pixi'VN] Event ${eventId} not found`);
return;
}
let event = new eventType();
return event;
} catch (e) {
console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
return;
}
}
exports.default = eventDecorator;
exports.getEventInstanceById = getEventInstanceById;
exports.getEventTypeById = getEventTypeById;
exports.registeredEvents = registeredEvents;
//# sourceMappingURL=EventDecorator.js.map
//# sourceMappingURL=EventDecorator.js.map
;