2019-03-17 23:45:48 -05:00
|
|
|
// import {registerType} from '@avocado/behavior';
|
|
|
|
|
|
|
|
const traitRegistry = new Map();
|
|
|
|
|
|
|
|
export function registerTrait(Trait) {
|
|
|
|
traitRegistry.set(Trait.type(), Trait);
|
|
|
|
// registerType(`entity:trait:${Trait.type()}`, Trait.contextType());
|
|
|
|
}
|
|
|
|
|
|
|
|
export function hasTrait(type) {
|
|
|
|
return traitRegistry.has(type);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function lookupTrait(type) {
|
|
|
|
return traitRegistry.get(type);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Register core traits.
|
2019-03-18 22:20:03 -05:00
|
|
|
import {Animated} from './animated';
|
|
|
|
registerTrait(Animated);
|
|
|
|
|
2019-03-17 23:45:48 -05:00
|
|
|
import {Directional} from './directional';
|
|
|
|
registerTrait(Directional);
|
|
|
|
|
|
|
|
import {Existent} from './existent';
|
|
|
|
registerTrait(Existent);
|
|
|
|
|
2019-03-18 20:07:05 -05:00
|
|
|
import {Graphical} from './graphical';
|
|
|
|
registerTrait(Graphical);
|
|
|
|
|
2019-03-17 23:45:48 -05:00
|
|
|
import {Mobile} from './mobile';
|
|
|
|
registerTrait(Mobile);
|
|
|
|
|
|
|
|
import {Positioned} from './positioned';
|
|
|
|
registerTrait(Positioned);
|