avocado-old/packages/entity/traits/directional.js
2019-03-18 20:05:11 -05:00

40 lines
669 B
JavaScript

import {compose} from '@avocado/core';
import {Vector} from '@avocado/math';
import {simpleState, Trait} from '../trait';
const decorate = compose(
simpleState('direction', {
track: true,
}),
);
class DirectionalBase extends Trait {
static defaultParams() {
return {
directionCount: 1,
};
}
static defaultState() {
return {
direction: 0,
};
}
listeners() {
return {
movementRequest: (vector) => {
this.entity.direction = Vector.toDirection(
vector,
this.params.get('directionCount')
);
},
}
}
}
export class Directional extends decorate(DirectionalBase) {}