import {compose} from '@avocado/core'; import {StateProperty, Trait} from '../trait'; const decorate = compose( StateProperty('name'), StateProperty('isTicking'), ); class ExistentBase extends Trait { static defaultState() { return { name: 'Untitled entity', isTicking: true, }; } initialize() { this._isTicking = this.params.get('isTicking'); } methods() { return { destroy: () => { this.entity.isTicking = false; this.entity.emit('destroy'); this.entity.emit('destroyed'); }, }; } } export class Existent extends decorate(ExistentBase) {}