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

40 lines
667 B
JavaScript
Raw Normal View History

2019-04-14 20:21:52 -05:00
import {Trait} from '@avocado/entity';
2019-03-27 01:03:05 -05:00
export class Layered extends Trait {
2019-05-05 04:26:35 -05:00
static type() {
return 'layered';
}
constructor(entity, params, state) {
super(entity, params, state);
this.entity.layer = null;
2019-03-27 01:03:05 -05:00
}
destroy() {
this.entity.removeFromLayer();
2019-03-27 01:03:05 -05:00
}
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');
},
2019-03-27 01:03:05 -05:00
};
2019-03-27 01:03:05 -05:00
}
}