phaser3-rex-plugins
Version:
43 lines (37 loc) • 1.65 kB
JavaScript
import GameObjectManagerMethods from '../../../../../utils/managers/GameObjectManagerMethods.js';
import OnParseAddGameObjectTag from './OnParseAddGameObjectTag.js';
import OnParseRemoveAllGameObjectsTag from './OnParseRemoveAllGameObjectsTag.js';
import OnParseCallGameObjectMethodTag from './OnParseCallGameObjectMethodTag.js';
import OnParseEaseGameObjectPropertyTag from './OnParseEaseGameObjectPropertyTag.js';
const ParseCallbacks = [
OnParseAddGameObjectTag, OnParseRemoveAllGameObjectsTag,
OnParseCallGameObjectMethodTag,
OnParseEaseGameObjectPropertyTag
];
const AddGameObjectManager = GameObjectManagerMethods.addGameObjectManager;
export default {
addGameObjectManager(config, GameObjectManagerClass) {
if (config === undefined) {
config = {};
}
var name = config.name;
if (!name) {
console.warn(`Parameter 'name' is required in TextPlayer.addGameObjectManager(config) method`);
}
AddGameObjectManager.call(this, config, GameObjectManagerClass);
// Register parse callbacks
var customParseCallbacks = config.parseCallbacks;
if (!customParseCallbacks) {
customParseCallbacks = ParseCallbacks;
} else {
customParseCallbacks = [
...customParseCallbacks, // customParseCallbacks have higher priority
...ParseCallbacks
];
}
for (var i = 0, cnt = customParseCallbacks.length; i < cnt; i++) {
customParseCallbacks[i](this, this.parser, config);
}
return this;
},
}