@tsparticles/plugin-emitters 3.9.0 → 4.0.0-alpha.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/214.min.js +2 -0
- package/214.min.js.LICENSE.txt +1 -0
- package/921.min.js +2 -0
- package/921.min.js.LICENSE.txt +1 -0
- package/browser/EmitterInstance.js +12 -13
- package/browser/Emitters.js +9 -8
- package/browser/EmittersPlugin.js +19 -32
- package/browser/Options/Classes/Emitter.js +2 -6
- package/browser/ShapeManager.js +0 -3
- package/browser/index.js +10 -18
- package/cjs/EmitterContainer.js +1 -2
- package/cjs/EmitterInstance.js +34 -39
- package/cjs/EmitterShapeBase.js +1 -5
- package/cjs/Emitters.js +21 -24
- package/cjs/EmittersEngine.js +1 -2
- package/cjs/EmittersPlugin.js +31 -48
- package/cjs/Enums/EmitterClickMode.js +2 -5
- package/cjs/IEmitterShape.js +1 -2
- package/cjs/IEmitterShapeGenerator.js +1 -2
- package/cjs/IRandomPositionData.js +1 -2
- package/cjs/Options/Classes/Emitter.js +16 -24
- package/cjs/Options/Classes/EmitterLife.js +5 -9
- package/cjs/Options/Classes/EmitterRate.js +5 -9
- package/cjs/Options/Classes/EmitterShape.js +6 -10
- package/cjs/Options/Classes/EmitterShapeReplace.js +3 -7
- package/cjs/Options/Classes/EmitterSize.js +4 -8
- package/cjs/Options/Interfaces/IEmitter.js +1 -2
- package/cjs/Options/Interfaces/IEmitterLife.js +1 -2
- package/cjs/Options/Interfaces/IEmitterRate.js +1 -2
- package/cjs/Options/Interfaces/IEmitterShape.js +1 -2
- package/cjs/Options/Interfaces/IEmitterShapeReplace.js +1 -2
- package/cjs/Options/Interfaces/IEmitterSize.js +1 -2
- package/cjs/ShapeManager.js +1 -8
- package/cjs/index.js +12 -37
- package/cjs/types.js +1 -2
- package/dist_browser_EmittersPlugin_js.js +110 -0
- package/dist_browser_ShapeManager_js.js +30 -0
- package/esm/EmitterInstance.js +12 -13
- package/esm/Emitters.js +9 -8
- package/esm/EmittersPlugin.js +19 -32
- package/esm/Options/Classes/Emitter.js +2 -6
- package/esm/ShapeManager.js +0 -3
- package/esm/index.js +10 -18
- package/package.json +4 -3
- package/report.html +5 -4
- package/tsparticles.plugin.emitters.js +215 -126
- package/tsparticles.plugin.emitters.min.js +1 -1
- package/tsparticles.plugin.emitters.min.js.LICENSE.txt +1 -1
- package/types/Options/Classes/EmitterShape.d.ts +1 -1
- package/types/Options/Classes/EmitterShapeReplace.d.ts +1 -1
- package/types/ShapeManager.d.ts +0 -3
- package/types/index.d.ts +7 -7
- package/umd/EmitterInstance.js +13 -14
- package/umd/Emitters.js +9 -8
- package/umd/EmittersPlugin.js +19 -32
- package/umd/Options/Classes/Emitter.js +2 -6
- package/umd/ShapeManager.js +0 -3
- package/umd/index.js +34 -19
package/cjs/EmittersPlugin.js
CHANGED
|
@@ -1,39 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const EmitterClickMode_js_1 = require("./Enums/EmitterClickMode.js");
|
|
7
|
-
const Emitters_js_1 = require("./Emitters.js");
|
|
8
|
-
class EmittersPlugin {
|
|
1
|
+
import { executeOnSingleOrMultiple, isArray, isInArray, } from "@tsparticles/engine";
|
|
2
|
+
import { Emitter } from "./Options/Classes/Emitter.js";
|
|
3
|
+
import { EmitterClickMode } from "./Enums/EmitterClickMode.js";
|
|
4
|
+
import { Emitters } from "./Emitters.js";
|
|
5
|
+
export class EmittersPlugin {
|
|
9
6
|
constructor(engine) {
|
|
10
7
|
this._engine = engine;
|
|
11
8
|
this.id = "emitters";
|
|
12
9
|
}
|
|
13
10
|
getPlugin(container) {
|
|
14
|
-
return Promise.resolve(new
|
|
11
|
+
return Promise.resolve(new Emitters(this._engine, container));
|
|
15
12
|
}
|
|
16
13
|
loadOptions(options, source) {
|
|
17
14
|
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
18
15
|
return;
|
|
19
16
|
}
|
|
20
17
|
if (source?.emitters) {
|
|
21
|
-
options.emitters =
|
|
22
|
-
const tmp = new
|
|
18
|
+
options.emitters = executeOnSingleOrMultiple(source.emitters, emitter => {
|
|
19
|
+
const tmp = new Emitter();
|
|
23
20
|
tmp.load(emitter);
|
|
24
21
|
return tmp;
|
|
25
22
|
});
|
|
26
23
|
}
|
|
27
24
|
const interactivityEmitters = source?.interactivity?.modes?.emitters;
|
|
28
25
|
if (interactivityEmitters) {
|
|
29
|
-
if (
|
|
26
|
+
if (isArray(interactivityEmitters)) {
|
|
30
27
|
options.interactivity.modes.emitters = {
|
|
31
28
|
random: {
|
|
32
29
|
count: 1,
|
|
33
30
|
enable: true,
|
|
34
31
|
},
|
|
35
32
|
value: interactivityEmitters.map(s => {
|
|
36
|
-
const tmp = new
|
|
33
|
+
const tmp = new Emitter();
|
|
37
34
|
tmp.load(s);
|
|
38
35
|
return tmp;
|
|
39
36
|
}),
|
|
@@ -41,42 +38,29 @@ class EmittersPlugin {
|
|
|
41
38
|
}
|
|
42
39
|
else {
|
|
43
40
|
const emitterMode = interactivityEmitters;
|
|
44
|
-
if (emitterMode.value
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}),
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
const tmp = new Emitter_js_1.Emitter();
|
|
61
|
-
tmp.load(emitterMode.value);
|
|
62
|
-
options.interactivity.modes.emitters = {
|
|
63
|
-
random: {
|
|
64
|
-
count: emitterMode.random.count ?? defaultCount,
|
|
65
|
-
enable: emitterMode.random.enable ?? false,
|
|
66
|
-
},
|
|
67
|
-
value: tmp,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
41
|
+
if (isArray(emitterMode.value)) {
|
|
42
|
+
options.interactivity.modes.emitters = {
|
|
43
|
+
random: {
|
|
44
|
+
count: emitterMode.random.count,
|
|
45
|
+
enable: emitterMode.random.enable,
|
|
46
|
+
},
|
|
47
|
+
value: emitterMode.value.map(s => {
|
|
48
|
+
const tmp = new Emitter();
|
|
49
|
+
tmp.load(s);
|
|
50
|
+
return tmp;
|
|
51
|
+
}),
|
|
52
|
+
};
|
|
70
53
|
}
|
|
71
54
|
else {
|
|
72
|
-
const
|
|
55
|
+
const tmp = new Emitter();
|
|
56
|
+
tmp.load(emitterMode.value);
|
|
57
|
+
options.interactivity.modes.emitters = {
|
|
73
58
|
random: {
|
|
74
|
-
count:
|
|
75
|
-
enable:
|
|
59
|
+
count: emitterMode.random.count,
|
|
60
|
+
enable: emitterMode.random.enable,
|
|
76
61
|
},
|
|
77
|
-
value:
|
|
78
|
-
}
|
|
79
|
-
emitterOptions.value.load(interactivityEmitters);
|
|
62
|
+
value: tmp,
|
|
63
|
+
};
|
|
80
64
|
}
|
|
81
65
|
}
|
|
82
66
|
}
|
|
@@ -86,10 +70,9 @@ class EmittersPlugin {
|
|
|
86
70
|
return false;
|
|
87
71
|
}
|
|
88
72
|
const emitters = options.emitters;
|
|
89
|
-
return ((
|
|
73
|
+
return ((isArray(emitters) && !!emitters.length) ||
|
|
90
74
|
emitters !== undefined ||
|
|
91
75
|
(!!options.interactivity?.events?.onClick?.mode &&
|
|
92
|
-
|
|
76
|
+
isInArray(EmitterClickMode.emitter, options.interactivity.events.onClick.mode)));
|
|
93
77
|
}
|
|
94
78
|
}
|
|
95
|
-
exports.EmittersPlugin = EmittersPlugin;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EmitterClickMode = void 0;
|
|
4
|
-
var EmitterClickMode;
|
|
1
|
+
export var EmitterClickMode;
|
|
5
2
|
(function (EmitterClickMode) {
|
|
6
3
|
EmitterClickMode["emitter"] = "emitter";
|
|
7
|
-
})(EmitterClickMode || (
|
|
4
|
+
})(EmitterClickMode || (EmitterClickMode = {}));
|
package/cjs/IEmitterShape.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const EmitterShape_js_1 = require("./EmitterShape.js");
|
|
8
|
-
const EmitterSize_js_1 = require("./EmitterSize.js");
|
|
9
|
-
class Emitter {
|
|
1
|
+
import { AnimatableColor, deepExtend, executeOnSingleOrMultiple, isNull, setRangeValue, } from "@tsparticles/engine";
|
|
2
|
+
import { EmitterLife } from "./EmitterLife.js";
|
|
3
|
+
import { EmitterRate } from "./EmitterRate.js";
|
|
4
|
+
import { EmitterShape } from "./EmitterShape.js";
|
|
5
|
+
import { EmitterSize } from "./EmitterSize.js";
|
|
6
|
+
export class Emitter {
|
|
10
7
|
constructor() {
|
|
11
8
|
this.autoPlay = true;
|
|
12
9
|
this.fill = true;
|
|
13
|
-
this.life = new
|
|
14
|
-
this.rate = new
|
|
15
|
-
this.shape = new
|
|
10
|
+
this.life = new EmitterLife();
|
|
11
|
+
this.rate = new EmitterRate();
|
|
12
|
+
this.shape = new EmitterShape();
|
|
16
13
|
this.startCount = 0;
|
|
17
14
|
}
|
|
18
15
|
load(data) {
|
|
19
|
-
if (
|
|
16
|
+
if (isNull(data)) {
|
|
20
17
|
return;
|
|
21
18
|
}
|
|
22
19
|
if (data.autoPlay !== undefined) {
|
|
23
20
|
this.autoPlay = data.autoPlay;
|
|
24
21
|
}
|
|
25
22
|
if (data.size !== undefined) {
|
|
26
|
-
|
|
27
|
-
this.size = new EmitterSize_js_1.EmitterSize();
|
|
28
|
-
}
|
|
23
|
+
this.size ??= new EmitterSize();
|
|
29
24
|
this.size.load(data.size);
|
|
30
25
|
}
|
|
31
26
|
if (data.direction !== undefined) {
|
|
@@ -37,24 +32,22 @@ class Emitter {
|
|
|
37
32
|
}
|
|
38
33
|
this.life.load(data.life);
|
|
39
34
|
this.name = data.name;
|
|
40
|
-
this.particles =
|
|
41
|
-
return
|
|
35
|
+
this.particles = executeOnSingleOrMultiple(data.particles, particles => {
|
|
36
|
+
return deepExtend({}, particles);
|
|
42
37
|
});
|
|
43
38
|
this.rate.load(data.rate);
|
|
44
39
|
this.shape.load(data.shape);
|
|
45
40
|
if (data.position !== undefined) {
|
|
46
41
|
this.position = {};
|
|
47
42
|
if (data.position.x !== undefined) {
|
|
48
|
-
this.position.x =
|
|
43
|
+
this.position.x = setRangeValue(data.position.x);
|
|
49
44
|
}
|
|
50
45
|
if (data.position.y !== undefined) {
|
|
51
|
-
this.position.y =
|
|
46
|
+
this.position.y = setRangeValue(data.position.y);
|
|
52
47
|
}
|
|
53
48
|
}
|
|
54
49
|
if (data.spawnColor !== undefined) {
|
|
55
|
-
|
|
56
|
-
this.spawnColor = new engine_1.AnimatableColor();
|
|
57
|
-
}
|
|
50
|
+
this.spawnColor ??= new AnimatableColor();
|
|
58
51
|
this.spawnColor.load(data.spawnColor);
|
|
59
52
|
}
|
|
60
53
|
if (data.startCount !== undefined) {
|
|
@@ -62,4 +55,3 @@ class Emitter {
|
|
|
62
55
|
}
|
|
63
56
|
}
|
|
64
57
|
}
|
|
65
|
-
exports.Emitter = Emitter;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.EmitterLife = void 0;
|
|
4
|
-
const engine_1 = require("@tsparticles/engine");
|
|
5
|
-
class EmitterLife {
|
|
1
|
+
import { isNull, setRangeValue } from "@tsparticles/engine";
|
|
2
|
+
export class EmitterLife {
|
|
6
3
|
constructor() {
|
|
7
4
|
this.wait = false;
|
|
8
5
|
}
|
|
9
6
|
load(data) {
|
|
10
|
-
if (
|
|
7
|
+
if (isNull(data)) {
|
|
11
8
|
return;
|
|
12
9
|
}
|
|
13
10
|
if (data.count !== undefined) {
|
|
14
11
|
this.count = data.count;
|
|
15
12
|
}
|
|
16
13
|
if (data.delay !== undefined) {
|
|
17
|
-
this.delay =
|
|
14
|
+
this.delay = setRangeValue(data.delay);
|
|
18
15
|
}
|
|
19
16
|
if (data.duration !== undefined) {
|
|
20
|
-
this.duration =
|
|
17
|
+
this.duration = setRangeValue(data.duration);
|
|
21
18
|
}
|
|
22
19
|
if (data.wait !== undefined) {
|
|
23
20
|
this.wait = data.wait;
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
}
|
|
27
|
-
exports.EmitterLife = EmitterLife;
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.EmitterRate = void 0;
|
|
4
|
-
const engine_1 = require("@tsparticles/engine");
|
|
5
|
-
class EmitterRate {
|
|
1
|
+
import { isNull, setRangeValue } from "@tsparticles/engine";
|
|
2
|
+
export class EmitterRate {
|
|
6
3
|
constructor() {
|
|
7
4
|
this.quantity = 1;
|
|
8
5
|
this.delay = 0.1;
|
|
9
6
|
}
|
|
10
7
|
load(data) {
|
|
11
|
-
if (
|
|
8
|
+
if (isNull(data)) {
|
|
12
9
|
return;
|
|
13
10
|
}
|
|
14
11
|
if (data.quantity !== undefined) {
|
|
15
|
-
this.quantity =
|
|
12
|
+
this.quantity = setRangeValue(data.quantity);
|
|
16
13
|
}
|
|
17
14
|
if (data.delay !== undefined) {
|
|
18
|
-
this.delay =
|
|
15
|
+
this.delay = setRangeValue(data.delay);
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
|
-
exports.EmitterRate = EmitterRate;
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const engine_1 = require("@tsparticles/engine");
|
|
5
|
-
const EmitterShapeReplace_js_1 = require("./EmitterShapeReplace.js");
|
|
6
|
-
class EmitterShape {
|
|
1
|
+
import { deepExtend, isNull } from "@tsparticles/engine";
|
|
2
|
+
import { EmitterShapeReplace } from "./EmitterShapeReplace.js";
|
|
3
|
+
export class EmitterShape {
|
|
7
4
|
constructor() {
|
|
8
5
|
this.options = {};
|
|
9
|
-
this.replace = new
|
|
6
|
+
this.replace = new EmitterShapeReplace();
|
|
10
7
|
this.type = "square";
|
|
11
8
|
}
|
|
12
9
|
load(data) {
|
|
13
|
-
if (
|
|
10
|
+
if (isNull(data)) {
|
|
14
11
|
return;
|
|
15
12
|
}
|
|
16
13
|
if (data.options !== undefined) {
|
|
17
|
-
this.options =
|
|
14
|
+
this.options = deepExtend({}, data.options ?? {});
|
|
18
15
|
}
|
|
19
16
|
this.replace.load(data.replace);
|
|
20
17
|
if (data.type !== undefined) {
|
|
@@ -22,4 +19,3 @@ class EmitterShape {
|
|
|
22
19
|
}
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
|
-
exports.EmitterShape = EmitterShape;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.EmitterShapeReplace = void 0;
|
|
4
|
-
const engine_1 = require("@tsparticles/engine");
|
|
5
|
-
class EmitterShapeReplace {
|
|
1
|
+
import { isNull } from "@tsparticles/engine";
|
|
2
|
+
export class EmitterShapeReplace {
|
|
6
3
|
constructor() {
|
|
7
4
|
this.color = false;
|
|
8
5
|
this.opacity = false;
|
|
9
6
|
}
|
|
10
7
|
load(data) {
|
|
11
|
-
if (
|
|
8
|
+
if (isNull(data)) {
|
|
12
9
|
return;
|
|
13
10
|
}
|
|
14
11
|
if (data.color !== undefined) {
|
|
@@ -19,4 +16,3 @@ class EmitterShapeReplace {
|
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
|
-
exports.EmitterShapeReplace = EmitterShapeReplace;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.EmitterSize = void 0;
|
|
4
|
-
const engine_1 = require("@tsparticles/engine");
|
|
5
|
-
class EmitterSize {
|
|
1
|
+
import { PixelMode, isNull } from "@tsparticles/engine";
|
|
2
|
+
export class EmitterSize {
|
|
6
3
|
constructor() {
|
|
7
|
-
this.mode =
|
|
4
|
+
this.mode = PixelMode.percent;
|
|
8
5
|
this.height = 0;
|
|
9
6
|
this.width = 0;
|
|
10
7
|
}
|
|
11
8
|
load(data) {
|
|
12
|
-
if (
|
|
9
|
+
if (isNull(data)) {
|
|
13
10
|
return;
|
|
14
11
|
}
|
|
15
12
|
if (data.mode !== undefined) {
|
|
@@ -23,4 +20,3 @@ class EmitterSize {
|
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
|
-
exports.EmitterSize = EmitterSize;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
package/cjs/ShapeManager.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ShapeManager = void 0;
|
|
4
1
|
const shapeGeneratorss = new Map();
|
|
5
|
-
class ShapeManager {
|
|
6
|
-
constructor(engine) {
|
|
7
|
-
this._engine = engine;
|
|
8
|
-
}
|
|
2
|
+
export class ShapeManager {
|
|
9
3
|
addShapeGenerator(name, generator) {
|
|
10
4
|
if (!this.getShapeGenerator(name)) {
|
|
11
5
|
shapeGeneratorss.set(name, generator);
|
|
@@ -18,4 +12,3 @@ class ShapeManager {
|
|
|
18
12
|
return shapeGeneratorss.keys();
|
|
19
13
|
}
|
|
20
14
|
}
|
|
21
|
-
exports.ShapeManager = ShapeManager;
|
package/cjs/index.js
CHANGED
|
@@ -1,39 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.loadEmittersPlugin = loadEmittersPlugin;
|
|
18
|
-
const EmittersPlugin_js_1 = require("./EmittersPlugin.js");
|
|
19
|
-
const ShapeManager_js_1 = require("./ShapeManager.js");
|
|
20
|
-
async function loadEmittersPlugin(engine, refresh = true) {
|
|
21
|
-
engine.checkVersion("3.9.0");
|
|
22
|
-
if (!engine.emitterShapeManager) {
|
|
23
|
-
engine.emitterShapeManager = new ShapeManager_js_1.ShapeManager(engine);
|
|
24
|
-
}
|
|
25
|
-
if (!engine.addEmitterShapeGenerator) {
|
|
26
|
-
engine.addEmitterShapeGenerator = (name, generator) => {
|
|
27
|
-
engine.emitterShapeManager?.addShapeGenerator(name, generator);
|
|
1
|
+
export function loadEmittersPlugin(engine) {
|
|
2
|
+
engine.checkVersion("4.0.0-alpha.0");
|
|
3
|
+
engine.register(async (e) => {
|
|
4
|
+
const { ShapeManager } = await import("./ShapeManager.js"), { EmittersPlugin } = await import("./EmittersPlugin.js");
|
|
5
|
+
e.emitterShapeManager ??= new ShapeManager();
|
|
6
|
+
e.addEmitterShapeGenerator ??= (name, generator) => {
|
|
7
|
+
e.emitterShapeManager?.addShapeGenerator(name, generator);
|
|
28
8
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
9
|
+
const plugin = new EmittersPlugin(e);
|
|
10
|
+
e.addPlugin(plugin);
|
|
11
|
+
});
|
|
32
12
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
__exportStar(require("./EmittersEngine.js"), exports);
|
|
36
|
-
__exportStar(require("./IEmitterShape.js"), exports);
|
|
37
|
-
__exportStar(require("./IEmitterShapeGenerator.js"), exports);
|
|
38
|
-
__exportStar(require("./Enums/EmitterClickMode.js"), exports);
|
|
39
|
-
__exportStar(require("./IRandomPositionData.js"), exports);
|
|
13
|
+
export * from "./EmitterShapeBase.js";
|
|
14
|
+
export * from "./Enums/EmitterClickMode.js";
|
package/cjs/types.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|