cellAt(x, y, boundsCheck) {
		const _x = ~~x;
		const _y = ~~y;

		const renderer = this.getRenderer();
		// boundsCheck only used internally by the tiled renderer, when the layer bound check was already done
		if (
			boundsCheck === false ||
			(_x >= 0 && _x < renderer.cols && _y >= 0 && _y < renderer.rows)
		) {
			return this.layerData[_x][_y];
		} else {
			return null;
		}
	}
Return the Tile object at the specified tile coordinates
@param {number} x - x position of the tile (in Tile unit)
@param {number} y - x position of the tile (in Tile unit)
@param {number} [boundsCheck=true] - check first if within the layer bounds
@returns {Tile} corresponding tile or null if there is no defined tile at the position or if outside of the layer bounds
@example
// return the first tile at offset 0, 0
let tile = layer.cellAt(0, 0);