40 lines
667 B
JavaScript
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');
|
|
},
|
|
|
|
};
|
|
}
|
|
|
|
}
|
|
|