UNPKG

mdx-m3-viewer

Version:

A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.

37 lines (28 loc) 816 B
import EmittedObject from './emittedobject'; /** * An emitted object updater. */ export default class EmittedObjectUpdater { objects: EmittedObject[] = []; alive: number = 0; add(object: EmittedObject) { this.objects[this.alive++] = object; } update(dt: number) { let objects = this.objects; for (let i = 0; i < this.alive; i++) { let object = objects[i]; object.update(dt); if (object.health <= 0) { this.alive -= 1; object.emitter.kill(object); // Swap between this object and the last living object. // Decrement the iterator so the swapped object is updated this frame. if (i !== this.alive) { objects[i] = objects[this.alive]; i -= 1; } } } } }