@tsparticles/editor
Version:
tsParticles Configuration Editor
129 lines (128 loc) • 4.71 kB
JavaScript
import { EditorType } from "object-gui";
import { BounceOptionsEditor } from "./Bounce/BounceOptionsEditor";
import { CollisionsOptionsEditor } from "./Collisions/CollisionsOptionsEditor";
import { ColorOptionsEditor } from "./Color/ColorOptionsEditor";
import { DestroyOptionsEditor } from "./Destroy/DestroyOptionsEditor";
import { EditorBase } from "../../../EditorBase";
import { LifeOptionsEditor } from "./Life/LifeOptionsEditor";
import { LinksOptionsEditor } from "./Links/LinksOptionsEditor";
import { MoveOptionsEditor } from "./Move/MoveOptionsEditor";
import { NumberOptionsEditor } from "./Number/NumberOptionsEditor";
import { OpacityOptionsEditor } from "./Opacity/OpacityOptionsEditor";
import { RollOptionsEditor } from "./Roll/RollOptionsEditor";
import { RotateOptionsEditor } from "./Rotate/RotateOptionsEditor";
import { ShadowOptionsEditor } from "./Shadow/ShadowOptionsEditor";
import { ShapeOptionsEditor } from "./Shape/ShapeOptionsEditor";
import { SizeOptionsEditor } from "./Size/SizeOptionsEditor";
import { StrokeOptionsEditor } from "./Stroke/StrokeOptionsEditor";
import { TiltOptionsEditor } from "./Tilt/TiltOptionsEditor";
import { TwinkleOptionsEditor } from "./Twinkle/TwinkleOptionsEditor";
import { WobbleOptionsEditor } from "./Wobble/WobbleOptionsEditor";
export class ParticlesOptionsEditor extends EditorBase {
constructor(particles) {
super(particles);
}
addParticlesToGroup(parent, customName, parentData) {
this.group = parent.addGroup(customName ?? "particles", "Particles", true, parentData);
this.options = this.group.data;
this.addBounce();
this.addCollisions();
this.addColor();
this.addDestroy();
this.addLife();
this.addLinks();
this.addMove();
this.addNumber();
this.addOpacity();
this.addRoll();
this.addRotate();
this.addShadow();
this.addShape();
this.addSize();
this.addStroke();
this.addTilt();
this.addTwinkle();
this.addWobble();
this.addProperties();
}
addToGroup(parent, options) {
this.addParticlesToGroup(parent, undefined, options);
}
addBounce() {
const options = new BounceOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addCollisions() {
const options = new CollisionsOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addColor() {
const options = new ColorOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addDestroy() {
const options = new DestroyOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addLife() {
const options = new LifeOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addLinks() {
const options = new LinksOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addMove() {
const options = new MoveOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addNumber() {
const options = new NumberOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addOpacity() {
const options = new OpacityOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addProperties() {
this.group.addProperty("reduceDuplicates", "Reduce Duplicates", EditorType.boolean).change(() => {
void this.particles().refresh();
});
}
addRoll() {
const options = new RollOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addRotate() {
const options = new RotateOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addShadow() {
const options = new ShadowOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addShape() {
const options = new ShapeOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addSize() {
const options = new SizeOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addStroke() {
const options = new StrokeOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addTilt() {
const options = new TiltOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addTwinkle() {
const options = new TwinkleOptionsEditor(this.particles);
options.addToGroup(this.group);
}
addWobble() {
const options = new WobbleOptionsEditor(this.particles);
options.addToGroup(this.group);
}
}