UNPKG

phaser-jsx

Version:
82 lines 2.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.skipPropKeys = void 0; exports.setProps = setProps; const constants_1 = require("../constants"); exports.skipPropKeys = ['input']; /** * Sets game object props. * * @param gameObject - Phaser game object. * @param props - Element props. * @param scene - Phaser scene. */ function setProps(gameObject, props, scene) { for (const key in props) { if (exports.skipPropKeys.includes(key)) { continue; } const value = props[key]; if (value && key === 'data') { gameObject.setData(value); continue; } if (constants_1.events[key] && typeof value === 'function') { gameObject.setInteractive(props.input); const eventName = key.slice(2).toLowerCase(); const pointerEvents = [ 'pointerdown', 'pointerdownoutside', 'pointermove', 'pointerout', 'pointerover', 'pointerup', 'pointerupoutside', 'pointerwheel', ]; if (pointerEvents.includes(eventName)) { const wrappedHandler = (pointer, ...rest) => { value(pointer, gameObject, ...rest); }; gameObject.on(eventName, wrappedHandler, scene); } else { gameObject.on(eventName, value, scene); } continue; } if (key === 'style' && value && typeof value === 'object') { setStyle(gameObject, value); continue; } else if ((key === 'fillColor' || key === 'fillAlpha') && typeof gameObject.setFillStyle === 'function') { const rect = gameObject; const fillColor = key === 'fillColor' ? value : props.fillColor; const fillAlpha = key === 'fillAlpha' ? value : props.fillAlpha; rect.setFillStyle(fillColor, fillAlpha); continue; } else if (key in gameObject) { gameObject[key] = value; continue; } } if ((typeof props.originX === 'number' || typeof props.originY === 'number') && typeof gameObject.setOrigin === 'function') { gameObject.setOrigin(props.originX, props.originY); } } function setStyle(gameObject, style) { var _a, _b; const text = gameObject; (_a = text.setStyle) === null || _a === void 0 ? void 0 : _a.call(text, style); const padding = style.padding; if (padding !== undefined) { (_b = text.setPadding) === null || _b === void 0 ? void 0 : _b.call(text, padding); } } //# sourceMappingURL=props.js.map