UNPKG

phaser3-rex-plugins

Version:
98 lines (81 loc) 3.02 kB
export default { addGameObjectManager(config) { // Register GameObjectManager var sys = this.sys; sys.addGameObjectManager(config); var { name, defaultLayer, commands = {} } = config; // Add custom commands sys.getGameObjectManager(name).commands = commands; // Add createGameObject command var createGameObjectCallback = function (config, manager) { var { id, layer = defaultLayer } = config; delete config.id; delete config.layer; sys.createGameObject(name, id, config); // Execute next command if (layer) { var layerManager = sys.getGameObjectManager('layer'); if (layerManager) { var gameObject = sys.getGameObject(name, id); layerManager.addToLayer(layer, gameObject); } } } this.addCommand(name, createGameObjectCallback, null); return this; }, _setGOProperty(config, manager) { var { id } = config; delete config.id; var goType = this.sys.getGameObjectManagerName(id); if (!goType) { return; } for (var prop in config) { var value = manager.evalExpression(config[prop]); this.sys.setGameObjectProperty(goType, id, prop, value); } // Execute next command }, _easeGOProperty(config, manager) { var { id, duration, ease, repeat, yoyo, wait = true } = config; delete config.id; delete config.duration; delete config.ease; delete config.repeat; delete config.yoyo; delete config.wait; var goType = this.sys.getGameObjectManagerName(id); if (!goType) { return; } var waitProperty; for (var prop in config) { var value = manager.evalExpression(config[prop]); this.sys.easeGameObjectProperty(goType, id, prop, value, duration, ease, repeat, yoyo); waitProperty = prop; } if (wait && waitProperty) { return this.sys.waitEventManager.waitGameObjectTweenComplete(goType, id, waitProperty); } // Execute next command }, _destroyGO({ id, wait = false } = {}, manager) { var goType = this.sys.getGameObjectManagerName(id); if (!goType) { return; } this.sys.destroyGameObject(goType, id); if (wait) { return this.sys.waitEventManager.waitGameObjectDestroy(goType, id); } }, _runGOMethod(config, manager) { var goType = this.sys.getGameObjectManagerName(id); if (!goType) { return; } this.sys.callGameObjectMethod(goType, config.id, config.methodName, ...config.parameters); // Execute next command }, }