tsparticles 1.37.2 → 1.37.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Plugins/Absorbers/AbsorberInstance.d.ts +2 -1
- package/Plugins/Absorbers/AbsorberInstance.js +21 -9
- package/Plugins/Absorbers/Options/Classes/AbsorberSize.d.ts +2 -1
- package/Plugins/Absorbers/Options/Classes/AbsorberSize.js +6 -4
- package/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.d.ts +9 -0
- package/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js +21 -0
- package/Plugins/Absorbers/Options/Interfaces/IAbsorberSize.d.ts +3 -2
- package/Plugins/Absorbers/Options/Interfaces/IAbsorberSizeLimit.d.ts +4 -0
- package/Plugins/Absorbers/Options/Interfaces/IAbsorberSizeLimit.js +2 -0
- package/browser/Plugins/Absorbers/AbsorberInstance.d.ts +2 -1
- package/browser/Plugins/Absorbers/AbsorberInstance.js +21 -9
- package/browser/Plugins/Absorbers/Options/Classes/AbsorberSize.d.ts +2 -1
- package/browser/Plugins/Absorbers/Options/Classes/AbsorberSize.js +6 -4
- package/browser/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.d.ts +9 -0
- package/browser/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js +17 -0
- package/browser/Plugins/Absorbers/Options/Interfaces/IAbsorberSize.d.ts +3 -2
- package/browser/Plugins/Absorbers/Options/Interfaces/IAbsorberSizeLimit.d.ts +4 -0
- package/browser/Plugins/Absorbers/Options/Interfaces/IAbsorberSizeLimit.js +1 -0
- package/esm/Plugins/Absorbers/AbsorberInstance.d.ts +2 -1
- package/esm/Plugins/Absorbers/AbsorberInstance.js +21 -9
- package/esm/Plugins/Absorbers/Options/Classes/AbsorberSize.d.ts +2 -1
- package/esm/Plugins/Absorbers/Options/Classes/AbsorberSize.js +6 -4
- package/esm/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.d.ts +9 -0
- package/esm/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js +17 -0
- package/esm/Plugins/Absorbers/Options/Interfaces/IAbsorberSize.d.ts +3 -2
- package/esm/Plugins/Absorbers/Options/Interfaces/IAbsorberSizeLimit.d.ts +4 -0
- package/esm/Plugins/Absorbers/Options/Interfaces/IAbsorberSizeLimit.js +1 -0
- package/package.json +1 -1
- package/report.html +2 -2
- package/report.slim.html +2 -2
- package/tsparticles.js +40 -14
- package/tsparticles.min.js +2 -2
- package/tsparticles.slim.min.js +1 -1
package/tsparticles.js
CHANGED
|
@@ -9420,7 +9420,7 @@
|
|
|
9420
9420
|
}
|
|
9421
9421
|
class AbsorberInstance {
|
|
9422
9422
|
constructor(absorbers, container, options, position) {
|
|
9423
|
-
var _a, _b, _c;
|
|
9423
|
+
var _a, _b, _c, _d, _e;
|
|
9424
9424
|
this.absorbers = absorbers;
|
|
9425
9425
|
this.container = container;
|
|
9426
9426
|
this.initialPosition = position ? Vector.create(position.x, position.y) : undefined;
|
|
@@ -9431,16 +9431,22 @@
|
|
|
9431
9431
|
this.size = getRangeValue(options.size.value) * container.retina.pixelRatio;
|
|
9432
9432
|
this.mass = this.size * options.size.density * container.retina.reduceFactor;
|
|
9433
9433
|
const limit = options.size.limit;
|
|
9434
|
-
this.limit = limit
|
|
9434
|
+
this.limit = typeof limit === "number" ? {
|
|
9435
|
+
radius: limit * container.retina.pixelRatio * container.retina.reduceFactor,
|
|
9436
|
+
mass: 0
|
|
9437
|
+
} : {
|
|
9438
|
+
radius: ((_a = limit === null || limit === void 0 ? void 0 : limit.radius) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio * container.retina.reduceFactor,
|
|
9439
|
+
mass: (_b = limit === null || limit === void 0 ? void 0 : limit.mass) !== null && _b !== void 0 ? _b : 0
|
|
9440
|
+
};
|
|
9435
9441
|
const color = typeof options.color === "string" ? {
|
|
9436
9442
|
value: options.color
|
|
9437
9443
|
} : options.color;
|
|
9438
|
-
this.color = (
|
|
9444
|
+
this.color = (_c = colorToRgb(color)) !== null && _c !== void 0 ? _c : {
|
|
9439
9445
|
b: 0,
|
|
9440
9446
|
g: 0,
|
|
9441
9447
|
r: 0
|
|
9442
9448
|
};
|
|
9443
|
-
this.position = (
|
|
9449
|
+
this.position = (_e = (_d = this.initialPosition) === null || _d === void 0 ? void 0 : _d.copy()) !== null && _e !== void 0 ? _e : this.calcPosition();
|
|
9444
9450
|
}
|
|
9445
9451
|
attract(particle) {
|
|
9446
9452
|
const container = this.container;
|
|
@@ -9479,10 +9485,12 @@
|
|
|
9479
9485
|
}
|
|
9480
9486
|
this.updateParticlePosition(particle, v);
|
|
9481
9487
|
}
|
|
9482
|
-
if (this.limit
|
|
9488
|
+
if (this.limit.radius <= 0 || this.size < this.limit.radius) {
|
|
9483
9489
|
this.size += sizeFactor;
|
|
9484
9490
|
}
|
|
9485
|
-
this.mass
|
|
9491
|
+
if (this.limit.mass <= 0 || this.mass < this.limit.mass) {
|
|
9492
|
+
this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;
|
|
9493
|
+
}
|
|
9486
9494
|
} else {
|
|
9487
9495
|
this.updateParticlePosition(particle, v);
|
|
9488
9496
|
}
|
|
@@ -9513,9 +9521,10 @@
|
|
|
9513
9521
|
const container = this.container;
|
|
9514
9522
|
const canvasSize = container.canvas.size;
|
|
9515
9523
|
if (particle.needsNewPosition) {
|
|
9516
|
-
|
|
9517
|
-
particle.position.
|
|
9518
|
-
particle.
|
|
9524
|
+
particle.position.x = Math.floor(Math.random() * canvasSize.width);
|
|
9525
|
+
particle.position.y = Math.floor(Math.random() * canvasSize.height);
|
|
9526
|
+
particle.velocity.setTo(particle.initialVelocity);
|
|
9527
|
+
particle.absorberOrbit = undefined;
|
|
9519
9528
|
particle.needsNewPosition = false;
|
|
9520
9529
|
}
|
|
9521
9530
|
if (this.options.orbits) {
|
|
@@ -9552,12 +9561,30 @@
|
|
|
9552
9561
|
}
|
|
9553
9562
|
}
|
|
9554
9563
|
}
|
|
9564
|
+
class AbsorberSizeLimit {
|
|
9565
|
+
constructor() {
|
|
9566
|
+
this.radius = 0;
|
|
9567
|
+
this.mass = 0;
|
|
9568
|
+
}
|
|
9569
|
+
load(data) {
|
|
9570
|
+
if (!data) {
|
|
9571
|
+
return;
|
|
9572
|
+
}
|
|
9573
|
+
if (data.mass !== undefined) {
|
|
9574
|
+
this.mass = data.mass;
|
|
9575
|
+
}
|
|
9576
|
+
if (data.radius !== undefined) {
|
|
9577
|
+
this.radius = data.radius;
|
|
9578
|
+
}
|
|
9579
|
+
}
|
|
9580
|
+
}
|
|
9555
9581
|
class AbsorberSize extends ValueWithRandom {
|
|
9556
9582
|
constructor() {
|
|
9557
9583
|
super();
|
|
9558
9584
|
this.density = 5;
|
|
9559
9585
|
this.random.minimumValue = 1;
|
|
9560
9586
|
this.value = 50;
|
|
9587
|
+
this.limit = new AbsorberSizeLimit;
|
|
9561
9588
|
}
|
|
9562
9589
|
load(data) {
|
|
9563
9590
|
if (!data) {
|
|
@@ -9567,11 +9594,10 @@
|
|
|
9567
9594
|
if (data.density !== undefined) {
|
|
9568
9595
|
this.density = data.density;
|
|
9569
9596
|
}
|
|
9570
|
-
if (data.limit
|
|
9571
|
-
this.limit = data.limit;
|
|
9572
|
-
}
|
|
9573
|
-
|
|
9574
|
-
this.limit = data.limit;
|
|
9597
|
+
if (typeof data.limit === "number") {
|
|
9598
|
+
this.limit.radius = data.limit;
|
|
9599
|
+
} else {
|
|
9600
|
+
this.limit.load(data.limit);
|
|
9575
9601
|
}
|
|
9576
9602
|
}
|
|
9577
9603
|
}
|