import {Container, Renderable, Sprite} from '@avocado/graphics'; import {Layer, Tileset, TilesRenderer} from '@avocado/topdown'; export class LayerView extends Renderable { constructor(layer, renderer) { super(); this.container = new Container(); this.layer = layer; this.layerContainer = new Container(); this.container.addChild(this.layerContainer); this._renderer = renderer; this._tileset = undefined; Tileset.load(layer.tilesetUri).then((tileset) => { this.tileset = tileset; }); } get internal() { return this.container.internal; } set tileset(tileset) { this._tileset = tileset; const tilesRenderer = new TilesRenderer(this.layer.tiles, tileset); const chunk = tilesRenderer.renderChunk(this._renderer); const tilesSprite = new Sprite(chunk); this.layerContainer.removeAllChildren(); this.layerContainer.addChild(tilesSprite); } }