Added setTilesets method.

This commit is contained in:
Richard Davey 2018-09-27 12:12:29 +01:00
parent d59f772d66
commit d92c7bf5b0

View file

@ -45,7 +45,7 @@ var Utils = require('../../renderer/webgl/Utils');
* @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs.
* @param {Phaser.Tilemaps.Tilemap} tilemap - The Tilemap this layer is a part of. * @param {Phaser.Tilemaps.Tilemap} tilemap - The Tilemap this layer is a part of.
* @param {integer} layerIndex - The index of the LayerData associated with this layer. * @param {integer} layerIndex - The index of the LayerData associated with this layer.
* @param {(Phaser.Tilemaps.Tileset|Phaser.Tilemaps.Tileset[])} tileset - The tileset, or an array of tilesets, used to render this layer. * @param {(string|string[]|Phaser.Tilemaps.Tileset|Phaser.Tilemaps.Tileset[])} tileset - The tileset, or an array of tilesets, used to render this layer. Can be a string or a Tileset object.
* @param {number} [x=0] - The world x position where the top left of this layer will be placed. * @param {number} [x=0] - The world x position where the top left of this layer will be placed.
* @param {number} [y=0] - The world y position where the top left of this layer will be placed. * @param {number} [y=0] - The world y position where the top left of this layer will be placed.
*/ */
@ -122,10 +122,10 @@ var StaticTilemapLayer = new Class({
* As of Phaser 3.14 this property is now an array of Tileset objects, previously it was a single reference. * As of Phaser 3.14 this property is now an array of Tileset objects, previously it was a single reference.
* *
* @name Phaser.Tilemaps.StaticTilemapLayer#tileset * @name Phaser.Tilemaps.StaticTilemapLayer#tileset
* @type {(Phaser.Tilemaps.Tileset)} * @type {Phaser.Tilemaps.Tileset[]}
* @since 3.0.0 * @since 3.0.0
*/ */
this.tileset = (Array.isArray(tileset)) ? tileset : [ tileset ]; this.tileset = [];
/** /**
* Used internally by the Canvas renderer. * Used internally by the Canvas renderer.
@ -351,6 +351,7 @@ var StaticTilemapLayer = new Class({
*/ */
this.gidMap = []; this.gidMap = [];
this.setTilesets(tileset);
this.setAlpha(this.layer.alpha); this.setAlpha(this.layer.alpha);
this.setPosition(x, y); this.setPosition(x, y);
this.setOrigin(); this.setOrigin();
@ -370,6 +371,47 @@ var StaticTilemapLayer = new Class({
} }
}, },
/**
* Populates the internal `tileset` array with the Tileset references this Layer requires for rendering.
*
* @method Phaser.Tilemaps.StaticTilemapLayer#setTilesets
* @private
* @since 3.14.0
*
* @param {(string|string[]|Phaser.Tilemaps.Tileset|Phaser.Tilemaps.Tileset[])} tileset - The tileset, or an array of tilesets, used to render this layer. Can be a string or a Tileset object.
*/
setTilesets: function (tilesets)
{
var setList = [];
var map = this.tilemap;
if (!Array.isArray(tilesets))
{
tilesets = [ tilesets ];
}
for (var i = 0; i < tilesets.length; i++)
{
var key = tilesets[i];
if (typeof key === 'string')
{
var tileset = map.getTileset(key);
if (tileset)
{
setList.push(tileset);
}
}
else
{
setList.push(key);
}
}
this.tileset = setList;
},
/** /**
* Parses the tilesets that this Layer uses and constructs the * Parses the tilesets that this Layer uses and constructs the
* tileset index map used during Canvas rendering. * tileset index map used during Canvas rendering.