2019-04-13 20:48:52 -05:00
|
|
|
import {Container, Sprite} from '@avocado/graphics';
|
|
|
|
|
|
|
|
export class EntityListView extends Container {
|
|
|
|
|
|
|
|
constructor(entityList) {
|
|
|
|
super();
|
|
|
|
this.entityList = entityList;
|
|
|
|
entityList.on('entityAdded', this.onListEntityAdded, this);
|
|
|
|
entityList.on('entityRemoved', this.onListEntityRemoved, this);
|
|
|
|
for (const entity of entityList) {
|
|
|
|
this.onListEntityAdded(entity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
onListEntityAdded(entity) {
|
2019-04-20 14:26:12 -05:00
|
|
|
entity.hydrate();
|
2019-04-14 18:42:13 -05:00
|
|
|
if (entity.is('visible')) {
|
2019-04-13 20:48:52 -05:00
|
|
|
this.addChild(entity.container);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
onListEntityRemoved(entity) {
|
2019-04-14 18:42:13 -05:00
|
|
|
if (entity.is('visible')) {
|
2019-04-13 20:48:52 -05:00
|
|
|
this.removeChild(entity.container);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-23 16:56:47 -05:00
|
|
|
renderTick(elapsed) {
|
2019-04-25 02:01:35 -05:00
|
|
|
for (const entity of this.entityList) {
|
|
|
|
entity.renderTick(elapsed);
|
|
|
|
}
|
|
|
|
super.renderTick(elapsed);
|
2019-04-23 16:56:47 -05:00
|
|
|
}
|
|
|
|
|
2019-04-13 20:48:52 -05:00
|
|
|
}
|