avocado-old/packages/topdown/layer-view.js
2019-03-26 09:30:25 -05:00

33 lines
925 B
JavaScript

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);
}
}