phaser4-rex-plugins
Version:
64 lines (52 loc) • 1.94 kB
JavaScript
import GridCutImage from '../../../../actions/GridCutImage.js'
export default {
gridCutImage(gameObject, columns, rows, config) {
if (config === undefined) {
config = {};
}
config.objectPool = this.imagesPool;
var cellImages = GridCutImage(gameObject, columns, rows, config),
cellImage;
for (var i = 0, cnt = cellImages.length; i < cnt; i++) {
cellImage = cellImages[i];
cellImage.setVisible(true);
this.add(cellImage);
}
this.cellImages = cellImages;
this.setChildLocalVisible(gameObject, false); // Set cut target to invisible
return cellImages;
},
gridCutCurrentImage(columns, rows, config) {
return this.gridCutImage(this.currentImage, columns, rows, config);
},
gridCutNextImage(columns, rows, config) {
return this.gridCutImage(this.nextImage, columns, rows, config);
},
getCellImages() {
return this.cellImages;
},
freeCellImages() {
if (this.cellImages.length === 0) {
return this;
}
var texture = this.cellImages[0].texture;
var cellImages = this.cellImages,
cellImage, frameName;
for (var i = 0, cnt = cellImages.length; i < cnt; i++) {
cellImage = cellImages[i];
// Reset property of cell image
this
.setChildLocalAlpha(cellImage, 1)
.setChildLocalScale(cellImage, 1)
.setChildLocalVisible(cellImage, false)
cellImage.clearMask();
// Remove frame object
frameName = cellImage.frame.name;
cellImage.setTexture();
texture.remove(frameName);
}
this.imagesPool.push(...cellImages);
cellImages.length = 0;
return this;
}
}