@tsparticles/path-grid 4.0.0-alpha.8 → 4.0.0-beta.1

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/702.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_path_grid=this.webpackChunk_tsparticles_path_grid||[]).push([[702],{702(t,i,e){e.d(i,{GridPathGenerator:()=>s});var o=e(303);let n=[o.Vector.create(o.identity,o.originPoint.y),o.Vector.create(o.originPoint.x,o.identity),o.Vector.create(-o.identity,o.originPoint.y),o.Vector.create(o.originPoint.x,-o.identity)],r=[2,3,0,1];class s{options;_container;_res;constructor(t){this._container=t,this._res=o.Vector.origin,this.options={cellSize:40,graph:void 0,autoMaze:!1}}generate(t){let i=this.options.cellSize;t.grid??={direction:Math.trunc((0,o.getRandom)()*n.length),speed:t.velocity.length,cellPosition:{x:Math.floor(t.position.x/i),y:Math.floor(t.position.y/i)}};let e=t.grid,r={x:Math.floor(t.position.x/i),y:Math.floor(t.position.y/i)};if(r.x!==e.cellPosition.x||r.y!==e.cellPosition.y){e.cellPosition.x=r.x,e.cellPosition.y=r.y;let t=`${r.x},${r.y}`,i=this.options.graph?.[t];if(i&&i.length>0)e.direction=i[Math.trunc((0,o.getRandom)()*i.length)];else if(!this.options.graph){let t=Math.trunc(3*(0,o.getRandom)())-1;e.direction=(e.direction+t+4)%n.length}}t.velocity.x=0,t.velocity.y=0;let s=n[e.direction];return this._res.x=s.x*e.speed,this._res.y=s.y*e.speed,this._res}init(){let t=this._container.actualOptions.particles.move.path.options;if(this.options.cellSize=t.cellSize??this.options.cellSize,this.options.autoMaze=t.autoMaze??this.options.autoMaze,this.options.graph=t.graph,this.options.autoMaze){let t=this._container.canvas.size,i=this.options.cellSize,e={width:Math.ceil(t.width/i),height:Math.ceil(t.height/i)};this.options.graph=this._generateMazeGraph(e)}}reset(t){delete t.grid}update(){}_generateMazeGraph({height:t,width:i}){let e={},n=[];for(let i=0;i<t;i++)n[i]=[];let s=[{x:o.originPoint.x,y:o.originPoint.y}];for(;s.length>0;){let{x:a,y:h}=s[s.length-1];n[h][a]||(n[h][a]=!0);let l=[0,1,2,3].sort(()=>(0,o.getRandom)()-.5),c=!1;for(let o of l){let l={x:a+(0===o?1:2===o?-1:0),y:h+(1===o?1:3===o?-1:0)};if(!(l.x<0)&&!(l.y<0)&&!(l.x>=i)&&!(l.y>=t)&&!n[l.y][l.x]){let t=`${a},${h}`,i=`${l.x},${l.y}`;e[t]??=[],e[i]??=[],e[t].push(o),e[i].push(r[o]),s.push(l),c=!0;break}}c||s.pop()}return e}}}}]);
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  [![banner](https://particles.js.org/images/banner3.png)](https://particles.js.org)
2
2
 
3
- # tsParticles Grid Path Path
3
+ # tsParticles Grid Path
4
4
 
5
5
  [![jsDelivr](https://data.jsdelivr.com/v1/package/npm/@tsparticles/path-grid/badge)](https://www.jsdelivr.com/package/npm/@tsparticles/path-grid)
6
6
  [![npmjs](https://badge.fury.io/js/@tsparticles/path-grid.svg)](https://www.npmjs.com/package/@tsparticles/path-grid)
@@ -6,14 +6,16 @@ const dirs = [
6
6
  Vector.create(originPoint.x, -identity),
7
7
  ], opposite = [2, 3, 0, 1], minLength = 0;
8
8
  export class GridPathGenerator {
9
+ options;
10
+ _container;
11
+ _res;
9
12
  constructor(container) {
10
13
  this._container = container;
14
+ this._res = Vector.origin;
11
15
  this.options = {
12
16
  cellSize: 40,
13
17
  graph: undefined,
14
18
  autoMaze: false,
15
- mazeWidth: 20,
16
- mazeHeight: 20,
17
19
  };
18
20
  }
19
21
  generate(p) {
@@ -45,7 +47,9 @@ export class GridPathGenerator {
45
47
  p.velocity.x = 0;
46
48
  p.velocity.y = 0;
47
49
  const d = dirs[grid.direction];
48
- return Vector.create(d.x * grid.speed, d.y * grid.speed);
50
+ this._res.x = d.x * grid.speed;
51
+ this._res.y = d.y * grid.speed;
52
+ return this._res;
49
53
  }
50
54
  init() {
51
55
  const source = this._container.actualOptions.particles.move.path.options;
package/browser/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  export const gridPathName = "gridPathGenerator";
2
2
  export async function loadGridPath(engine) {
3
- engine.checkVersion("4.0.0-alpha.8");
4
- await engine.register(e => {
5
- e.addPathGenerator(gridPathName, async (container) => {
3
+ engine.checkVersion("4.0.0-beta.1");
4
+ await engine.pluginManager.register(async (e) => {
5
+ const { ensureBaseMoverLoaded } = await import("@tsparticles/plugin-move");
6
+ ensureBaseMoverLoaded(e);
7
+ e.pluginManager.addPathGenerator?.(gridPathName, async (container) => {
6
8
  const { GridPathGenerator } = await import("./GridPathGenerator.js");
7
9
  return new GridPathGenerator(container);
8
10
  });
@@ -6,14 +6,16 @@ const dirs = [
6
6
  Vector.create(originPoint.x, -identity),
7
7
  ], opposite = [2, 3, 0, 1], minLength = 0;
8
8
  export class GridPathGenerator {
9
+ options;
10
+ _container;
11
+ _res;
9
12
  constructor(container) {
10
13
  this._container = container;
14
+ this._res = Vector.origin;
11
15
  this.options = {
12
16
  cellSize: 40,
13
17
  graph: undefined,
14
18
  autoMaze: false,
15
- mazeWidth: 20,
16
- mazeHeight: 20,
17
19
  };
18
20
  }
19
21
  generate(p) {
@@ -45,7 +47,9 @@ export class GridPathGenerator {
45
47
  p.velocity.x = 0;
46
48
  p.velocity.y = 0;
47
49
  const d = dirs[grid.direction];
48
- return Vector.create(d.x * grid.speed, d.y * grid.speed);
50
+ this._res.x = d.x * grid.speed;
51
+ this._res.y = d.y * grid.speed;
52
+ return this._res;
49
53
  }
50
54
  init() {
51
55
  const source = this._container.actualOptions.particles.move.path.options;
package/cjs/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  export const gridPathName = "gridPathGenerator";
2
2
  export async function loadGridPath(engine) {
3
- engine.checkVersion("4.0.0-alpha.8");
4
- await engine.register(e => {
5
- e.addPathGenerator(gridPathName, async (container) => {
3
+ engine.checkVersion("4.0.0-beta.1");
4
+ await engine.pluginManager.register(async (e) => {
5
+ const { ensureBaseMoverLoaded } = await import("@tsparticles/plugin-move");
6
+ ensureBaseMoverLoaded(e);
7
+ e.pluginManager.addPathGenerator?.(gridPathName, async (container) => {
6
8
  const { GridPathGenerator } = await import("./GridPathGenerator.js");
7
9
  return new GridPathGenerator(container);
8
10
  });
@@ -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
- * v4.0.0-alpha.8
7
+ * v4.0.0-beta.1
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \*******************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GridPathGenerator: () => (/* binding */ GridPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nconst dirs = [_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y), _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity), _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(-_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y), _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, -_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity)],\n opposite = [2, 3, 0, 1],\n minLength = 0;\nclass GridPathGenerator {\n constructor(container) {\n this._container = container;\n this.options = {\n cellSize: 40,\n graph: undefined,\n autoMaze: false,\n mazeWidth: 20,\n mazeHeight: 20\n };\n }\n generate(p) {\n const size = this.options.cellSize;\n p.grid ??= {\n direction: Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * dirs.length),\n speed: p.velocity.length,\n cellPosition: {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n }\n };\n const grid = p.grid,\n c = {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n };\n if (c.x !== grid.cellPosition.x || c.y !== grid.cellPosition.y) {\n grid.cellPosition.x = c.x;\n grid.cellPosition.y = c.y;\n const key = `${c.x},${c.y}`,\n allowed = this.options.graph?.[key];\n if (allowed && allowed.length > minLength) {\n grid.direction = allowed[Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * allowed.length)];\n } else if (!this.options.graph) {\n const turn = Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 3) - 1;\n grid.direction = (grid.direction + turn + 4) % dirs.length;\n }\n }\n p.velocity.x = 0;\n p.velocity.y = 0;\n const d = dirs[grid.direction];\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(d.x * grid.speed, d.y * grid.speed);\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.cellSize = source[\"cellSize\"] ?? this.options.cellSize;\n this.options.autoMaze = source[\"autoMaze\"] ?? this.options.autoMaze;\n this.options.graph = source[\"graph\"];\n if (this.options.autoMaze) {\n const canvas = this._container.canvas.size,\n cellSize = this.options.cellSize,\n size = {\n width: Math.ceil(canvas.width / cellSize),\n height: Math.ceil(canvas.height / cellSize)\n };\n this.options.graph = this._generateMazeGraph(size);\n }\n }\n reset(p) {\n delete p.grid;\n }\n update() {}\n _generateMazeGraph({\n height,\n width\n }) {\n const graph = {},\n visited = [];\n for (let y = 0; y < height; y++) {\n visited[y] = [];\n }\n const stack = [{\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y\n }];\n while (stack.length > 0) {\n const {\n x,\n y\n } = stack[stack.length - 1];\n if (!visited[y][x]) {\n visited[y][x] = true;\n }\n const dirsOrder = [0, 1, 2, 3].sort(() => (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() - 0.5);\n let moved = false;\n for (const d of dirsOrder) {\n const n = {\n x: x + (d === 0 ? 1 : d === 2 ? -1 : 0),\n y: y + (d === 1 ? 1 : d === 3 ? -1 : 0)\n };\n if (n.x < 0 || n.y < 0 || n.x >= width || n.y >= height) {\n continue;\n }\n if (!visited[n.y][n.x]) {\n const key = `${x},${y}`,\n nKey = `${n.x},${n.y}`;\n graph[key] ??= [];\n graph[nKey] ??= [];\n graph[key].push(d);\n graph[nKey].push(opposite[d]);\n stack.push(n);\n moved = true;\n break;\n }\n }\n if (!moved) {\n stack.pop();\n }\n }\n return graph;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/path-grid/./dist/browser/GridPathGenerator.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GridPathGenerator: () => (/* binding */ GridPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nconst dirs = [\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(-_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, -_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity)\n], opposite = [\n 2,\n 3,\n 0,\n 1\n], minLength = 0;\nclass GridPathGenerator {\n options;\n _container;\n _res;\n constructor(container){\n this._container = container;\n this._res = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n this.options = {\n cellSize: 40,\n graph: undefined,\n autoMaze: false\n };\n }\n generate(p) {\n const size = this.options.cellSize;\n p.grid ??= {\n direction: Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * dirs.length),\n speed: p.velocity.length,\n cellPosition: {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n }\n };\n const grid = p.grid, c = {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n };\n if (c.x !== grid.cellPosition.x || c.y !== grid.cellPosition.y) {\n grid.cellPosition.x = c.x;\n grid.cellPosition.y = c.y;\n const key = `${c.x},${c.y}`, allowed = this.options.graph?.[key];\n if (allowed && allowed.length > minLength) {\n grid.direction = allowed[Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * allowed.length)];\n } else if (!this.options.graph) {\n const turn = Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 3) - 1;\n grid.direction = (grid.direction + turn + 4) % dirs.length;\n }\n }\n p.velocity.x = 0;\n p.velocity.y = 0;\n const d = dirs[grid.direction];\n this._res.x = d.x * grid.speed;\n this._res.y = d.y * grid.speed;\n return this._res;\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.cellSize = source[\"cellSize\"] ?? this.options.cellSize;\n this.options.autoMaze = source[\"autoMaze\"] ?? this.options.autoMaze;\n this.options.graph = source[\"graph\"];\n if (this.options.autoMaze) {\n const canvas = this._container.canvas.size, cellSize = this.options.cellSize, size = {\n width: Math.ceil(canvas.width / cellSize),\n height: Math.ceil(canvas.height / cellSize)\n };\n this.options.graph = this._generateMazeGraph(size);\n }\n }\n reset(p) {\n delete p.grid;\n }\n update() {}\n _generateMazeGraph({ height, width }) {\n const graph = {}, visited = [];\n for(let y = 0; y < height; y++){\n visited[y] = [];\n }\n const stack = [\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y\n }\n ];\n while(stack.length > 0){\n const { x, y } = stack[stack.length - 1];\n if (!visited[y][x]) {\n visited[y][x] = true;\n }\n const dirsOrder = [\n 0,\n 1,\n 2,\n 3\n ].sort(()=>(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() - 0.5);\n let moved = false;\n for (const d of dirsOrder){\n const n = {\n x: x + (d === 0 ? 1 : d === 2 ? -1 : 0),\n y: y + (d === 1 ? 1 : d === 3 ? -1 : 0)\n };\n if (n.x < 0 || n.y < 0 || n.x >= width || n.y >= height) {\n continue;\n }\n if (!visited[n.y][n.x]) {\n const key = `${x},${y}`, nKey = `${n.x},${n.y}`;\n graph[key] ??= [];\n graph[nKey] ??= [];\n graph[key].push(d);\n graph[nKey].push(opposite[d]);\n stack.push(n);\n moved = true;\n break;\n }\n }\n if (!moved) {\n stack.pop();\n }\n }\n return graph;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/path-grid/./dist/browser/GridPathGenerator.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -6,14 +6,16 @@ const dirs = [
6
6
  Vector.create(originPoint.x, -identity),
7
7
  ], opposite = [2, 3, 0, 1], minLength = 0;
8
8
  export class GridPathGenerator {
9
+ options;
10
+ _container;
11
+ _res;
9
12
  constructor(container) {
10
13
  this._container = container;
14
+ this._res = Vector.origin;
11
15
  this.options = {
12
16
  cellSize: 40,
13
17
  graph: undefined,
14
18
  autoMaze: false,
15
- mazeWidth: 20,
16
- mazeHeight: 20,
17
19
  };
18
20
  }
19
21
  generate(p) {
@@ -45,7 +47,9 @@ export class GridPathGenerator {
45
47
  p.velocity.x = 0;
46
48
  p.velocity.y = 0;
47
49
  const d = dirs[grid.direction];
48
- return Vector.create(d.x * grid.speed, d.y * grid.speed);
50
+ this._res.x = d.x * grid.speed;
51
+ this._res.y = d.y * grid.speed;
52
+ return this._res;
49
53
  }
50
54
  init() {
51
55
  const source = this._container.actualOptions.particles.move.path.options;
package/esm/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  export const gridPathName = "gridPathGenerator";
2
2
  export async function loadGridPath(engine) {
3
- engine.checkVersion("4.0.0-alpha.8");
4
- await engine.register(e => {
5
- e.addPathGenerator(gridPathName, async (container) => {
3
+ engine.checkVersion("4.0.0-beta.1");
4
+ await engine.pluginManager.register(async (e) => {
5
+ const { ensureBaseMoverLoaded } = await import("@tsparticles/plugin-move");
6
+ ensureBaseMoverLoaded(e);
7
+ e.pluginManager.addPathGenerator?.(gridPathName, async (container) => {
6
8
  const { GridPathGenerator } = await import("./GridPathGenerator.js");
7
9
  return new GridPathGenerator(container);
8
10
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tsparticles/path-grid",
3
- "version": "4.0.0-alpha.8",
4
- "description": "tsParticles grid path path",
3
+ "version": "4.0.0-beta.1",
4
+ "description": "tsParticles grid path",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
7
7
  "type": "git",
@@ -104,7 +104,8 @@
104
104
  "./package.json": "./package.json"
105
105
  },
106
106
  "dependencies": {
107
- "@tsparticles/engine": "4.0.0-alpha.8"
107
+ "@tsparticles/engine": "4.0.0-beta.1",
108
+ "@tsparticles/plugin-move": "4.0.0-beta.1"
108
109
  },
109
110
  "type": "module"
110
111
  }