avocado-old/packages/topdown/traits/layered.trait.js

40 lines
667 B
JavaScript

import {Trait} from '@avocado/entity';
export class Layered extends Trait {
static type() {
return 'layered';
}
constructor(entity, params, state) {
super(entity, params, state);
this.entity.layer = null;
}
destroy() {
this.entity.removeFromLayer();
}
methods() {
return {
removeFromLayer: () => {
const layer = this.entity.layer;
if (!layer) {
return;
}
this.entity.layer = null;
this.entity.emit('removedFromLayer', layer);
},
setIntoLayer: (layer) => {
this.entity.layer = layer;
this.entity.emit('addedToLayer');
},
};
}
}