UNPKG

phaser4-rex-plugins

Version:
319 lines (258 loc) 7.2 kB
import Base from './Base.js'; const DegToRad = Phaser.Math.DegToRad; const RadToDeg = Phaser.Math.RadToDeg; const GetValue = Phaser.Utils.Objects.GetValue; class RenderBase extends Base { get visible() { return this._visible; } set visible(value) { this.setDisplayListDirty(this._visible != value); this._visible = value; } setVisible(visible) { if (visible === undefined) { visible = true; } this.visible = visible; return this; } get alpha() { return this._alpha; } set alpha(value) { this.setDisplayListDirty(!!this._alpha !== !!value); this._alpha = value; } setAlpha(alpha) { this.alpha = alpha; return this; } setX(x) { this.x = x; return this; } setY(y) { this.y = y; return this; } setPosition(x, y) { this.x = x; this.y = y; return this; } setRotation(rotation) { this.rotation = rotation; return this; } get angle() { return RadToDeg(this.rotation); } set angle(value) { this.rotation = DegToRad(value); } setAngle(angle) { this.angle = angle; return this; } setScaleX(scaleX) { this.scaleX = scaleX; return this; } get width() { return this._width; } set width(value) { this._width = value; } setWidth(width, keepAspectRatio) { if (keepAspectRatio === undefined) { keepAspectRatio = false; } this.width = width; if (keepAspectRatio) { this.scaleY = this.scaleX; } return this; } setScaleY(scaleY) { this.scaleY = scaleY; return this; } setScale(scaleX, scaleY) { if (scaleY === undefined) { scaleY = scaleX; } this.scaleX = scaleX; this.scaleY = scaleY; return this; } get height() { return this._height; } set height(value) { this._height = value; } setHeight(height, keepAspectRatio) { if (keepAspectRatio === undefined) { keepAspectRatio = false; } this.height = height; if (keepAspectRatio) { this.scaleX = this.scaleY; } return this; } setScale(scaleX, scaleY) { if (scaleY === undefined) { scaleY = scaleX; } this.scaleX = scaleX; this.scaleY = scaleY; return this; } get displayWidth() { return this._width * this.scaleX; } set displayWidth(value) { this.scaleX = value / this._width; } setDisplayWidth(width, keepAspectRatio) { if (keepAspectRatio === undefined) { keepAspectRatio = false; } this.displayWidth = width; if (keepAspectRatio) { this.scaleY = this.scaleX; } return this; } get displayHeight() { return this._height * this.scaleY; } set displayHeight(value) { this.scaleY = value / this._height; } setDisplayHeight(height, keepAspectRatio) { if (keepAspectRatio === undefined) { keepAspectRatio = false; } this.displayHeight = height; if (keepAspectRatio) { this.scaleX = this.scaleY; } return this; } setOriginX(originX) { this.originX = originX; this._displayOriginX = this.width * originX; return this; } setOriginY(originY) { this.originY = originY; this._displayOriginY = this.height * originY; return this; } setOrigin(originX, originY) { if (originY === undefined) { originY = originX; } this.setOriginX(originX).setOriginY(originY); return this; } get depth() { return this._depth; } set depth(value) { this.setDisplayListDirty(this._depth != value); this._depth = value; } setDepth(depth) { if (depth === undefined) { depth = 0; } this.depth = depth; return this; } modifyPorperties(o) { if (!o) { return this; } if (o.hasOwnProperty('x')) { this.setX(o.x); } if (o.hasOwnProperty('y')) { this.setY(o.y); } if (o.hasOwnProperty('rotation')) { this.setRotation(o.rotation); } else if (o.hasOwnProperty('angle')) { this.setAngle(o.angle); } if (o.hasOwnProperty('alpha')) { this.setAlpha(o.alpha); } // ScaleX, ScaleY var width = GetValue(o, 'width', undefined); var height = GetValue(o, 'height', undefined); var scale = GetValue(o, 'scale', undefined); var scaleX = GetValue(o, 'scaleX', scale); var scaleY = GetValue(o, 'scaleY', scale); if (width !== undefined) { if ((height === undefined) && (scaleY === undefined)) { this.setWidth(width, true); } else { this.setWidth(width); } } else if (scaleX !== undefined) { this.setScaleX(scaleX); } else if (o.hasOwnProperty('displayWidth')) { this.setDisplayWidth(o.displayWidth); } if (height !== undefined) { if ((width === undefined) && (scaleX === undefined)) { this.setHeight(height, true); } else { this.setHeight(height); } } else if (scaleY !== undefined) { this.setScaleY(scaleY); } else if (o.hasOwnProperty('displayHeight')) { this.setDisplayHeight(o.displayHeight); } var origin = GetValue(o, 'origin', undefined); if (origin !== undefined) { this.setOrigin(origin); } else { if (o.hasOwnProperty('originX')) { this.setOriginX(o.originX); } if (o.hasOwnProperty('originY')) { this.setOriginY(o.originY); } } if (o.hasOwnProperty('depth')) { this.setDepth(o.depth); } return this; } reset() { super.reset(); this .setVisible() .setAlpha(1) .setPosition(0, 0) .setRotation(0) .setScale(1, 1) .setOrigin(0) .setDepth(0) return this; } // Override webglRender(pipeline, calcMatrix, alpha, dx, dy, texture, textureUnit, roundPixels) { } // Override canvasRender(ctx, dx, dy, roundPixels) { } } export default RenderBase;