27 lines
559 B
TypeScript
27 lines
559 B
TypeScript
import { Renderer } from '../core/renderer';
|
|
import { EventEmitter } from '../utils/events';
|
|
import { EngineEvents } from './events';
|
|
|
|
export abstract class EngineComponent {
|
|
constructor(
|
|
protected renderer: Renderer,
|
|
protected events: EventEmitter<EngineEvents>
|
|
) {}
|
|
|
|
/**
|
|
* Initialize this component
|
|
*/
|
|
abstract initialize(): void;
|
|
|
|
/**
|
|
* Update this component. Called on every frame.
|
|
* @param delta Delta time
|
|
*/
|
|
abstract update(delta: number): void;
|
|
|
|
/**
|
|
* Clean up the component
|
|
*/
|
|
abstract cleanUp(): void;
|
|
}
|