UNPKG

@tsparticles/plugin-emitters

Version:

tsParticles emitters plugin

33 lines (32 loc) 1.13 kB
import { executeOnSingleOrMultiple, isArray, } from "@tsparticles/engine"; import { Emitter } from "./Options/Classes/Emitter.js"; export class EmittersPlugin { id = "emitters"; #instancesManager; constructor(instancesManager) { this.#instancesManager = instancesManager; } async getPlugin(container) { const { EmittersPluginInstance } = await import("./EmittersPluginInstance.js"); return new EmittersPluginInstance(this.#instancesManager, container); } loadOptions(_container, options, source) { if (!this.needsPlugin(options) && !this.needsPlugin(source)) { return; } if (source?.emitters) { options.emitters = executeOnSingleOrMultiple(source.emitters, emitter => { const tmp = new Emitter(); tmp.load(emitter); return tmp; }); } } needsPlugin(options) { if (!options) { return false; } const emitters = options.emitters; return (isArray(emitters) && !!emitters.length) || emitters !== undefined; } }