@tsparticles/plugin-emitters
Version:
tsParticles emitters plugin
45 lines (44 loc) • 1.4 kB
JavaScript
import { isArray } from "@tsparticles/engine";
export class EmittersPluginInstance {
#container;
#instancesManager;
constructor(instancesManager, container) {
this.#instancesManager = instancesManager;
this.#container = container;
this.#instancesManager.initContainer(container);
}
async init() {
const emittersOptions = this.#container.actualOptions.emitters;
if (isArray(emittersOptions)) {
for (const emitterOptions of emittersOptions) {
await this.#instancesManager.addEmitter(this.#container, emitterOptions);
}
}
else {
await this.#instancesManager.addEmitter(this.#container, emittersOptions);
}
}
pause() {
for (const emitter of this.#instancesManager.getArray(this.#container)) {
emitter.pause();
}
}
play() {
for (const emitter of this.#instancesManager.getArray(this.#container)) {
emitter.play();
}
}
resize() {
for (const emitter of this.#instancesManager.getArray(this.#container)) {
emitter.resize();
}
}
stop() {
this.#instancesManager.clear(this.#container);
}
update(delta) {
this.#instancesManager.getArray(this.#container).forEach(emitter => {
emitter.update(delta);
});
}
}