import ModelInstance from './modelinstance'; import EmittedObject from './emittedobject'; /** * An emitter. */ export default abstract class Emitter { instance: ModelInstance; objects: EmittedObject[]; alive: number; currentEmission: number; abstract createObject(): EmittedObject; abstract updateEmission(dt: number): void; abstract emit(): void; constructor(instance: ModelInstance); /** * Update this emitter. */ update(dt: number): void; /** * Clear any emitted objects. */ clear(): void; emitObject(emitData?: unknown): EmittedObject; kill(object: EmittedObject): void; }