30 lines
474 B
JavaScript
30 lines
474 B
JavaScript
import {Trait} from '@avocado/entity';
|
|
|
|
export class Roomed extends Trait {
|
|
|
|
static type() {
|
|
return 'roomed';
|
|
}
|
|
|
|
constructor(entity, params, state) {
|
|
super(entity, params, state);
|
|
this._room = undefined;
|
|
}
|
|
|
|
destroy() {
|
|
const room = this._room;
|
|
delete this._room;
|
|
this.entity.emit('removedFromRoom', room);
|
|
}
|
|
|
|
get room() {
|
|
return this._room;
|
|
}
|
|
|
|
set room(room) {
|
|
this._room = room;
|
|
this.entity.emit('addedToRoom');
|
|
}
|
|
|
|
}
|