avocado/packages/topdown/src/layers-view.js

34 lines
819 B
JavaScript
Raw Normal View History

2020-12-31 18:35:06 -06:00
import {Container} from '@avocado/graphics';
import LayerView from './layer-view';
export default class LayersView extends Container {
constructor(layers, renderer) {
super();
this.layers = layers;
this.layerViews = {};
this.renderer = renderer;
this.layers.on('layerAdded', this.onLayerAdded, this);
2021-01-16 11:50:26 -06:00
for (let i = 0; i < this.layers.layers.length; i++) {
this.onLayerAdded(this.layers.layers[i], i);
2020-12-31 18:35:06 -06:00
}
this.layers.on('layerRemoved', this.onLayerRemoved, this);
}
2021-01-16 11:50:26 -06:00
onLayerAdded(layer, i) {
2020-12-31 18:35:06 -06:00
const layerView = new LayerView(layer, this.renderer);
2021-01-16 11:50:26 -06:00
this.layerViews[i] = layerView;
2020-12-31 18:35:06 -06:00
this.addChild(layerView);
}
2021-01-16 11:50:26 -06:00
onLayerRemoved(layer, i) {
const layerView = this.layerViews[i];
2020-12-31 18:35:06 -06:00
if (!layerView) {
return;
}
this.removeChild(layerView);
}
}