freeblox/packages/engine/src/types/engine-component.ts

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;
}