blob2d
Version:
Typed Modular 2D Game Engine for Web
30 lines (25 loc) • 601 B
text/typescript
import {Entity} from './Entity';
import {ITrait} from './types';
export abstract class Trait<
TAddons extends {},
TTraits extends {},
TEvents extends string
> implements ITrait {
public entity: Entity<TAddons, TTraits, TEvents>;
constructor() {
this.entity = Entity.EMPTY as Entity<TAddons, TTraits, TEvents>;
}
/**
* It can be utilized by a subclass trait
* for a particular functionality.
*/
public update(deltaTime: number) {
// fill in subclass
}
/**
* Invoked by a parent entity when destroyed.
*/
public destroy() {
// fill in subclass
}
}