@tsparticles/updater-wobble 3.0.3 → 3.1.0

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/browser/Utils.js CHANGED
@@ -1,9 +1,12 @@
1
+ import { millisecondsToSeconds } from "@tsparticles/engine";
2
+ const defaultDistance = 0, double = 2, doublePI = Math.PI * double, distanceFactor = 60;
1
3
  export function updateWobble(particle, delta) {
2
4
  const { wobble: wobbleOptions } = particle.options, { wobble } = particle;
3
5
  if (!wobbleOptions?.enable || !wobble) {
4
6
  return;
5
7
  }
6
- const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? 0) * delta.factor)) / (1000 / 60), max = 2 * Math.PI, { position } = particle;
8
+ const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? defaultDistance) * delta.factor)) /
9
+ (millisecondsToSeconds / distanceFactor), max = doublePI, { position } = particle;
7
10
  wobble.angle += angleSpeed;
8
11
  if (wobble.angle > max) {
9
12
  wobble.angle -= max;
@@ -1,6 +1,7 @@
1
1
  import { getRandom, getRangeValue, } from "@tsparticles/engine";
2
2
  import { Wobble } from "./Options/Classes/Wobble.js";
3
3
  import { updateWobble } from "./Utils.js";
4
+ const double = 2, doublePI = Math.PI * double, maxAngle = 360, moveSpeedFactor = 10, defaultDistance = 0;
4
5
  export class WobbleUpdater {
5
6
  constructor(container) {
6
7
  this.container = container;
@@ -9,9 +10,9 @@ export class WobbleUpdater {
9
10
  const wobbleOpt = particle.options.wobble;
10
11
  if (wobbleOpt?.enable) {
11
12
  particle.wobble = {
12
- angle: getRandom() * Math.PI * 2,
13
- angleSpeed: getRangeValue(wobbleOpt.speed.angle) / 360,
14
- moveSpeed: getRangeValue(wobbleOpt.speed.move) / 10,
13
+ angle: getRandom() * doublePI,
14
+ angleSpeed: getRangeValue(wobbleOpt.speed.angle) / maxAngle,
15
+ moveSpeed: getRangeValue(wobbleOpt.speed.move) / moveSpeedFactor,
15
16
  };
16
17
  }
17
18
  else {
@@ -21,7 +22,8 @@ export class WobbleUpdater {
21
22
  moveSpeed: 0,
22
23
  };
23
24
  }
24
- particle.retina.wobbleDistance = getRangeValue(wobbleOpt?.distance ?? 0) * this.container.retina.pixelRatio;
25
+ particle.retina.wobbleDistance =
26
+ getRangeValue(wobbleOpt?.distance ?? defaultDistance) * this.container.retina.pixelRatio;
25
27
  }
26
28
  isEnabled(particle) {
27
29
  return !particle.destroyed && !particle.spawning && !!particle.options.wobble?.enable;
package/cjs/Utils.js CHANGED
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateWobble = void 0;
4
+ const engine_1 = require("@tsparticles/engine");
5
+ const defaultDistance = 0, double = 2, doublePI = Math.PI * double, distanceFactor = 60;
4
6
  function updateWobble(particle, delta) {
5
7
  const { wobble: wobbleOptions } = particle.options, { wobble } = particle;
6
8
  if (!wobbleOptions?.enable || !wobble) {
7
9
  return;
8
10
  }
9
- const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? 0) * delta.factor)) / (1000 / 60), max = 2 * Math.PI, { position } = particle;
11
+ const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? defaultDistance) * delta.factor)) /
12
+ (engine_1.millisecondsToSeconds / distanceFactor), max = doublePI, { position } = particle;
10
13
  wobble.angle += angleSpeed;
11
14
  if (wobble.angle > max) {
12
15
  wobble.angle -= max;
@@ -4,6 +4,7 @@ exports.WobbleUpdater = void 0;
4
4
  const engine_1 = require("@tsparticles/engine");
5
5
  const Wobble_js_1 = require("./Options/Classes/Wobble.js");
6
6
  const Utils_js_1 = require("./Utils.js");
7
+ const double = 2, doublePI = Math.PI * double, maxAngle = 360, moveSpeedFactor = 10, defaultDistance = 0;
7
8
  class WobbleUpdater {
8
9
  constructor(container) {
9
10
  this.container = container;
@@ -12,9 +13,9 @@ class WobbleUpdater {
12
13
  const wobbleOpt = particle.options.wobble;
13
14
  if (wobbleOpt?.enable) {
14
15
  particle.wobble = {
15
- angle: (0, engine_1.getRandom)() * Math.PI * 2,
16
- angleSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.angle) / 360,
17
- moveSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.move) / 10,
16
+ angle: (0, engine_1.getRandom)() * doublePI,
17
+ angleSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.angle) / maxAngle,
18
+ moveSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.move) / moveSpeedFactor,
18
19
  };
19
20
  }
20
21
  else {
@@ -24,7 +25,8 @@ class WobbleUpdater {
24
25
  moveSpeed: 0,
25
26
  };
26
27
  }
27
- particle.retina.wobbleDistance = (0, engine_1.getRangeValue)(wobbleOpt?.distance ?? 0) * this.container.retina.pixelRatio;
28
+ particle.retina.wobbleDistance =
29
+ (0, engine_1.getRangeValue)(wobbleOpt?.distance ?? defaultDistance) * this.container.retina.pixelRatio;
28
30
  }
29
31
  isEnabled(particle) {
30
32
  return !particle.destroyed && !particle.spawning && !!particle.options.wobble?.enable;
package/esm/Utils.js CHANGED
@@ -1,9 +1,12 @@
1
+ import { millisecondsToSeconds } from "@tsparticles/engine";
2
+ const defaultDistance = 0, double = 2, doublePI = Math.PI * double, distanceFactor = 60;
1
3
  export function updateWobble(particle, delta) {
2
4
  const { wobble: wobbleOptions } = particle.options, { wobble } = particle;
3
5
  if (!wobbleOptions?.enable || !wobble) {
4
6
  return;
5
7
  }
6
- const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? 0) * delta.factor)) / (1000 / 60), max = 2 * Math.PI, { position } = particle;
8
+ const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? defaultDistance) * delta.factor)) /
9
+ (millisecondsToSeconds / distanceFactor), max = doublePI, { position } = particle;
7
10
  wobble.angle += angleSpeed;
8
11
  if (wobble.angle > max) {
9
12
  wobble.angle -= max;
@@ -1,6 +1,7 @@
1
1
  import { getRandom, getRangeValue, } from "@tsparticles/engine";
2
2
  import { Wobble } from "./Options/Classes/Wobble.js";
3
3
  import { updateWobble } from "./Utils.js";
4
+ const double = 2, doublePI = Math.PI * double, maxAngle = 360, moveSpeedFactor = 10, defaultDistance = 0;
4
5
  export class WobbleUpdater {
5
6
  constructor(container) {
6
7
  this.container = container;
@@ -9,9 +10,9 @@ export class WobbleUpdater {
9
10
  const wobbleOpt = particle.options.wobble;
10
11
  if (wobbleOpt?.enable) {
11
12
  particle.wobble = {
12
- angle: getRandom() * Math.PI * 2,
13
- angleSpeed: getRangeValue(wobbleOpt.speed.angle) / 360,
14
- moveSpeed: getRangeValue(wobbleOpt.speed.move) / 10,
13
+ angle: getRandom() * doublePI,
14
+ angleSpeed: getRangeValue(wobbleOpt.speed.angle) / maxAngle,
15
+ moveSpeed: getRangeValue(wobbleOpt.speed.move) / moveSpeedFactor,
15
16
  };
16
17
  }
17
18
  else {
@@ -21,7 +22,8 @@ export class WobbleUpdater {
21
22
  moveSpeed: 0,
22
23
  };
23
24
  }
24
- particle.retina.wobbleDistance = getRangeValue(wobbleOpt?.distance ?? 0) * this.container.retina.pixelRatio;
25
+ particle.retina.wobbleDistance =
26
+ getRangeValue(wobbleOpt?.distance ?? defaultDistance) * this.container.retina.pixelRatio;
25
27
  }
26
28
  isEnabled(particle) {
27
29
  return !particle.destroyed && !particle.spawning && !!particle.options.wobble?.enable;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/updater-wobble",
3
- "version": "3.0.3",
3
+ "version": "3.1.0",
4
4
  "description": "tsParticles particles wobble updater",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -87,7 +87,7 @@
87
87
  "./package.json": "./package.json"
88
88
  },
89
89
  "dependencies": {
90
- "@tsparticles/engine": "^3.0.3"
90
+ "@tsparticles/engine": "^3.1.0"
91
91
  },
92
92
  "publishConfig": {
93
93
  "access": "public"
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/updater-wobble [26 Dec 2023 at 19:33]</title>
6
+ <title>@tsparticles/updater-wobble [13 Jan 2024 at 23:09]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -31,7 +31,7 @@
31
31
  <body>
32
32
  <div id="app"></div>
33
33
  <script>
34
- window.chartData = [{"label":"tsparticles.updater.wobble.js","isAsset":true,"statSize":3379,"parsedSize":7248,"gzipSize":2135,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":3337,"groups":[{"id":853,"label":"index.js + 4 modules (concatenated)","path":"./dist/browser/index.js + 4 modules (concatenated)","statSize":3337,"parsedSize":7248,"gzipSize":2135,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser","statSize":3337,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/index.js","statSize":216,"parsedSize":469,"gzipSize":138,"inaccurateSizes":true},{"id":null,"label":"WobbleUpdater.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/WobbleUpdater.js","statSize":1222,"parsedSize":2654,"gzipSize":781,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Options/Classes","statSize":1228,"groups":[{"id":null,"label":"Wobble.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Options/Classes/Wobble.js","statSize":855,"parsedSize":1857,"gzipSize":547,"inaccurateSizes":true},{"id":null,"label":"WobbleSpeed.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Options/Classes/WobbleSpeed.js","statSize":373,"parsedSize":810,"gzipSize":238,"inaccurateSizes":true}],"parsedSize":2667,"gzipSize":785,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Utils.js","statSize":671,"parsedSize":1457,"gzipSize":429,"inaccurateSizes":true}],"parsedSize":7248,"gzipSize":2135,"inaccurateSizes":true}]}],"parsedSize":7248,"gzipSize":2135},{"label":"engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":533,"label":"engine\",\"root\":\"window\"}","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles/engine\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0}],"isInitialByEntrypoint":{"tsparticles.updater.wobble":true}}];
34
+ window.chartData = [{"label":"tsparticles.updater.wobble.js","isAsset":true,"statSize":3718,"parsedSize":7643,"gzipSize":2235,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":3676,"groups":[{"id":661,"label":"index.js + 4 modules (concatenated)","path":"./dist/browser/index.js + 4 modules (concatenated)","statSize":3676,"parsedSize":7643,"gzipSize":2235,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser","statSize":3676,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/index.js","statSize":216,"parsedSize":449,"gzipSize":131,"inaccurateSizes":true},{"id":null,"label":"WobbleUpdater.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/WobbleUpdater.js","statSize":1365,"parsedSize":2838,"gzipSize":829,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Options/Classes","statSize":1228,"groups":[{"id":null,"label":"Wobble.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Options/Classes/Wobble.js","statSize":855,"parsedSize":1777,"gzipSize":519,"inaccurateSizes":true},{"id":null,"label":"WobbleSpeed.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Options/Classes/WobbleSpeed.js","statSize":373,"parsedSize":775,"gzipSize":226,"inaccurateSizes":true}],"parsedSize":2553,"gzipSize":746,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/index.js + 4 modules (concatenated)/dist/browser/Utils.js","statSize":867,"parsedSize":1802,"gzipSize":527,"inaccurateSizes":true}],"parsedSize":7643,"gzipSize":2235,"inaccurateSizes":true}]}],"parsedSize":7643,"gzipSize":2235},{"label":"engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":533,"label":"engine\",\"root\":\"window\"}","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles/engine\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0}],"isInitialByEntrypoint":{"tsparticles.updater.wobble":true}}];
35
35
  window.entrypoints = ["tsparticles.updater.wobble","tsparticles.updater.wobble.min"];
36
36
  window.defaultSizes = "parsed";
37
37
  </script>
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.0.3
7
+ * v3.1.0
8
8
  */
9
9
  (function webpackUniversalModuleDefinition(root, factory) {
10
10
  if(typeof exports === 'object' && typeof module === 'object')
@@ -153,6 +153,11 @@ class Wobble {
153
153
  }
154
154
  }
155
155
  ;// CONCATENATED MODULE: ./dist/browser/Utils.js
156
+
157
+ const defaultDistance = 0,
158
+ Utils_double = 2,
159
+ doublePI = Math.PI * Utils_double,
160
+ distanceFactor = 60;
156
161
  function updateWobble(particle, delta) {
157
162
  const {
158
163
  wobble: wobbleOptions
@@ -165,8 +170,8 @@ function updateWobble(particle, delta) {
165
170
  }
166
171
  const angleSpeed = wobble.angleSpeed * delta.factor,
167
172
  moveSpeed = wobble.moveSpeed * delta.factor,
168
- distance = moveSpeed * ((particle.retina.wobbleDistance ?? 0) * delta.factor) / (1000 / 60),
169
- max = 2 * Math.PI,
173
+ distance = moveSpeed * ((particle.retina.wobbleDistance ?? defaultDistance) * delta.factor) / (engine_root_window_.millisecondsToSeconds / distanceFactor),
174
+ max = doublePI,
170
175
  {
171
176
  position
172
177
  } = particle;
@@ -181,6 +186,11 @@ function updateWobble(particle, delta) {
181
186
 
182
187
 
183
188
 
189
+ const WobbleUpdater_double = 2,
190
+ WobbleUpdater_doublePI = Math.PI * WobbleUpdater_double,
191
+ maxAngle = 360,
192
+ moveSpeedFactor = 10,
193
+ WobbleUpdater_defaultDistance = 0;
184
194
  class WobbleUpdater {
185
195
  constructor(container) {
186
196
  this.container = container;
@@ -189,9 +199,9 @@ class WobbleUpdater {
189
199
  const wobbleOpt = particle.options.wobble;
190
200
  if (wobbleOpt?.enable) {
191
201
  particle.wobble = {
192
- angle: (0,engine_root_window_.getRandom)() * Math.PI * 2,
193
- angleSpeed: (0,engine_root_window_.getRangeValue)(wobbleOpt.speed.angle) / 360,
194
- moveSpeed: (0,engine_root_window_.getRangeValue)(wobbleOpt.speed.move) / 10
202
+ angle: (0,engine_root_window_.getRandom)() * WobbleUpdater_doublePI,
203
+ angleSpeed: (0,engine_root_window_.getRangeValue)(wobbleOpt.speed.angle) / maxAngle,
204
+ moveSpeed: (0,engine_root_window_.getRangeValue)(wobbleOpt.speed.move) / moveSpeedFactor
195
205
  };
196
206
  } else {
197
207
  particle.wobble = {
@@ -200,7 +210,7 @@ class WobbleUpdater {
200
210
  moveSpeed: 0
201
211
  };
202
212
  }
203
- particle.retina.wobbleDistance = (0,engine_root_window_.getRangeValue)(wobbleOpt?.distance ?? 0) * this.container.retina.pixelRatio;
213
+ particle.retina.wobbleDistance = (0,engine_root_window_.getRangeValue)(wobbleOpt?.distance ?? WobbleUpdater_defaultDistance) * this.container.retina.pixelRatio;
204
214
  }
205
215
  isEnabled(particle) {
206
216
  return !particle.destroyed && !particle.spawning && !!particle.options.wobble?.enable;
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see tsparticles.updater.wobble.min.js.LICENSE.txt */
2
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var o="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(this,(e=>(()=>{"use strict";var t={533:t=>{t.exports=e}},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var s=o[e]={exports:{}};return t[e](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{n.r(a),n.d(a,{loadWobbleUpdater:()=>i});var e=n(533);class t{constructor(){this.angle=50,this.move=10}load(t){t&&(void 0!==t.angle&&(this.angle=(0,e.setRangeValue)(t.angle)),void 0!==t.move&&(this.move=(0,e.setRangeValue)(t.move)))}}class o{constructor(){this.distance=5,this.enable=!1,this.speed=new t}load(t){if(t&&(void 0!==t.distance&&(this.distance=(0,e.setRangeValue)(t.distance)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed))if((0,e.isNumber)(t.speed))this.speed.load({angle:t.speed});else{const e=t.speed;void 0!==e.min?this.speed.load({angle:e}):this.speed.load(t.speed)}}}class s{constructor(e){this.container=e}init(t){const o=t.options.wobble;t.wobble=o?.enable?{angle:(0,e.getRandom)()*Math.PI*2,angleSpeed:(0,e.getRangeValue)(o.speed.angle)/360,moveSpeed:(0,e.getRangeValue)(o.speed.move)/10}:{angle:0,angleSpeed:0,moveSpeed:0},t.retina.wobbleDistance=(0,e.getRangeValue)(o?.distance??0)*this.container.retina.pixelRatio}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.options.wobble?.enable}loadOptions(e,...t){e.wobble||(e.wobble=new o);for(const o of t)e.wobble.load(o?.wobble)}update(e,t){this.isEnabled(e)&&function(e,t){const{wobble:o}=e.options,{wobble:n}=e;if(!o?.enable||!n)return;const a=n.angleSpeed*t.factor,s=n.moveSpeed*t.factor*((e.retina.wobbleDistance??0)*t.factor)/(1e3/60),i=2*Math.PI,{position:l}=e;n.angle+=a,n.angle>i&&(n.angle-=i),l.x+=s*Math.cos(n.angle),l.y+=s*Math.abs(Math.sin(n.angle))}(e,t)}}async function i(e,t=!0){await e.addParticleUpdater("wobble",(e=>new s(e)),t)}})(),a})()));
2
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var o="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(this,(e=>(()=>{"use strict";var t={533:t=>{t.exports=e}},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var s=o[e]={exports:{}};return t[e](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{n.r(a),n.d(a,{loadWobbleUpdater:()=>r});var e=n(533);class t{constructor(){this.angle=50,this.move=10}load(t){t&&(void 0!==t.angle&&(this.angle=(0,e.setRangeValue)(t.angle)),void 0!==t.move&&(this.move=(0,e.setRangeValue)(t.move)))}}class o{constructor(){this.distance=5,this.enable=!1,this.speed=new t}load(t){if(t&&(void 0!==t.distance&&(this.distance=(0,e.setRangeValue)(t.distance)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed))if((0,e.isNumber)(t.speed))this.speed.load({angle:t.speed});else{const e=t.speed;void 0!==e.min?this.speed.load({angle:e}):this.speed.load(t.speed)}}}const s=2*Math.PI;const i=2*Math.PI;class l{constructor(e){this.container=e}init(t){const o=t.options.wobble;t.wobble=o?.enable?{angle:(0,e.getRandom)()*i,angleSpeed:(0,e.getRangeValue)(o.speed.angle)/360,moveSpeed:(0,e.getRangeValue)(o.speed.move)/10}:{angle:0,angleSpeed:0,moveSpeed:0},t.retina.wobbleDistance=(0,e.getRangeValue)(o?.distance??0)*this.container.retina.pixelRatio}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.options.wobble?.enable}loadOptions(e,...t){e.wobble||(e.wobble=new o);for(const o of t)e.wobble.load(o?.wobble)}update(t,o){this.isEnabled(t)&&function(t,o){const{wobble:n}=t.options,{wobble:a}=t;if(!n?.enable||!a)return;const i=a.angleSpeed*o.factor,l=a.moveSpeed*o.factor*((t.retina.wobbleDistance??0)*o.factor)/(e.millisecondsToSeconds/60),r=s,{position:d}=t;a.angle+=i,a.angle>r&&(a.angle-=r),d.x+=l*Math.cos(a.angle),d.y+=l*Math.abs(Math.sin(a.angle))}(t,o)}}async function r(e,t=!0){await e.addParticleUpdater("wobble",(e=>new l(e)),t)}})(),a})()));
@@ -1 +1 @@
1
- /*! tsParticles Wobble Updater v3.0.3 by Matteo Bruni */
1
+ /*! tsParticles Wobble Updater v3.1.0 by Matteo Bruni */
package/types/Utils.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { IDelta } from "@tsparticles/engine";
1
+ import { type IDelta } from "@tsparticles/engine";
2
2
  import type { WobbleParticle } from "./Types.js";
3
3
  export declare function updateWobble(particle: WobbleParticle, delta: IDelta): void;
package/umd/Utils.js CHANGED
@@ -4,18 +4,21 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "@tsparticles/engine"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.updateWobble = void 0;
13
+ const engine_1 = require("@tsparticles/engine");
14
+ const defaultDistance = 0, double = 2, doublePI = Math.PI * double, distanceFactor = 60;
13
15
  function updateWobble(particle, delta) {
14
16
  const { wobble: wobbleOptions } = particle.options, { wobble } = particle;
15
17
  if (!wobbleOptions?.enable || !wobble) {
16
18
  return;
17
19
  }
18
- const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? 0) * delta.factor)) / (1000 / 60), max = 2 * Math.PI, { position } = particle;
20
+ const angleSpeed = wobble.angleSpeed * delta.factor, moveSpeed = wobble.moveSpeed * delta.factor, distance = (moveSpeed * ((particle.retina.wobbleDistance ?? defaultDistance) * delta.factor)) /
21
+ (engine_1.millisecondsToSeconds / distanceFactor), max = doublePI, { position } = particle;
19
22
  wobble.angle += angleSpeed;
20
23
  if (wobble.angle > max) {
21
24
  wobble.angle -= max;
@@ -13,6 +13,7 @@
13
13
  const engine_1 = require("@tsparticles/engine");
14
14
  const Wobble_js_1 = require("./Options/Classes/Wobble.js");
15
15
  const Utils_js_1 = require("./Utils.js");
16
+ const double = 2, doublePI = Math.PI * double, maxAngle = 360, moveSpeedFactor = 10, defaultDistance = 0;
16
17
  class WobbleUpdater {
17
18
  constructor(container) {
18
19
  this.container = container;
@@ -21,9 +22,9 @@
21
22
  const wobbleOpt = particle.options.wobble;
22
23
  if (wobbleOpt?.enable) {
23
24
  particle.wobble = {
24
- angle: (0, engine_1.getRandom)() * Math.PI * 2,
25
- angleSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.angle) / 360,
26
- moveSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.move) / 10,
25
+ angle: (0, engine_1.getRandom)() * doublePI,
26
+ angleSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.angle) / maxAngle,
27
+ moveSpeed: (0, engine_1.getRangeValue)(wobbleOpt.speed.move) / moveSpeedFactor,
27
28
  };
28
29
  }
29
30
  else {
@@ -33,7 +34,8 @@
33
34
  moveSpeed: 0,
34
35
  };
35
36
  }
36
- particle.retina.wobbleDistance = (0, engine_1.getRangeValue)(wobbleOpt?.distance ?? 0) * this.container.retina.pixelRatio;
37
+ particle.retina.wobbleDistance =
38
+ (0, engine_1.getRangeValue)(wobbleOpt?.distance ?? defaultDistance) * this.container.retina.pixelRatio;
37
39
  }
38
40
  isEnabled(particle) {
39
41
  return !particle.destroyed && !particle.spawning && !!particle.options.wobble?.enable;