custom-pixi-particles 4.0.20 → 4.0.22
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/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/Model.d.ts +23 -0
- package/dist/lib/Model.js +23 -0
- package/dist/lib/Model.js.map +1 -1
- package/dist/lib/Particle.d.ts +146 -0
- package/dist/lib/Particle.js +61 -0
- package/dist/lib/Particle.js.map +1 -1
- package/dist/lib/ParticlePool.d.ts +28 -0
- package/dist/lib/ParticlePool.js +28 -0
- package/dist/lib/ParticlePool.js.map +1 -1
- package/dist/lib/behaviour/AngularVelocityBehaviour.d.ts +31 -0
- package/dist/lib/behaviour/AngularVelocityBehaviour.js +45 -12
- package/dist/lib/behaviour/AngularVelocityBehaviour.js.map +1 -1
- package/dist/lib/behaviour/Behaviour.d.ts +26 -0
- package/dist/lib/behaviour/Behaviour.js +26 -0
- package/dist/lib/behaviour/Behaviour.js.map +1 -1
- package/dist/lib/behaviour/ColorBehaviour.d.ts +1 -1
- package/dist/lib/behaviour/ColorBehaviour.js +8 -11
- package/dist/lib/behaviour/ColorBehaviour.js.map +1 -1
- package/dist/lib/behaviour/EmitDirectionBehaviour.d.ts +29 -5
- package/dist/lib/behaviour/EmitDirectionBehaviour.js +32 -20
- package/dist/lib/behaviour/EmitDirectionBehaviour.js.map +1 -1
- package/dist/lib/behaviour/EmitterBehaviours.d.ts +44 -2
- package/dist/lib/behaviour/EmitterBehaviours.js +43 -3
- package/dist/lib/behaviour/EmitterBehaviours.js.map +1 -1
- package/dist/lib/behaviour/LifeBehaviour.d.ts +49 -0
- package/dist/lib/behaviour/LifeBehaviour.js +55 -5
- package/dist/lib/behaviour/LifeBehaviour.js.map +1 -1
- package/dist/lib/behaviour/PositionBehaviour.d.ts +34 -1
- package/dist/lib/behaviour/PositionBehaviour.js +70 -28
- package/dist/lib/behaviour/PositionBehaviour.js.map +1 -1
- package/dist/lib/behaviour/RotationBehaviour.d.ts +33 -4
- package/dist/lib/behaviour/RotationBehaviour.js +33 -17
- package/dist/lib/behaviour/RotationBehaviour.js.map +1 -1
- package/dist/lib/behaviour/SizeBehaviour.d.ts +1 -1
- package/dist/lib/behaviour/SizeBehaviour.js +25 -18
- package/dist/lib/behaviour/SizeBehaviour.js.map +1 -1
- package/dist/lib/behaviour/TurbulenceBehaviour.d.ts +1 -1
- package/dist/lib/behaviour/TurbulenceBehaviour.js +1 -5
- package/dist/lib/behaviour/TurbulenceBehaviour.js.map +1 -1
- package/dist/lib/emission/AbstractEmission.d.ts +23 -0
- package/dist/lib/emission/AbstractEmission.js +23 -0
- package/dist/lib/emission/AbstractEmission.js.map +1 -1
- package/dist/lib/emission/RandomEmission.d.ts +33 -0
- package/dist/lib/emission/RandomEmission.js +33 -0
- package/dist/lib/emission/RandomEmission.js.map +1 -1
- package/dist/lib/emission/StandardEmission.d.ts +49 -0
- package/dist/lib/emission/StandardEmission.js +49 -0
- package/dist/lib/emission/StandardEmission.js.map +1 -1
- package/dist/lib/emission/UniformEmission.d.ts +42 -0
- package/dist/lib/emission/UniformEmission.js +42 -0
- package/dist/lib/emission/UniformEmission.js.map +1 -1
- package/dist/lib/emitter/Duration.d.ts +17 -0
- package/dist/lib/emitter/Duration.js +17 -0
- package/dist/lib/emitter/Duration.js.map +1 -1
- package/dist/lib/emitter/Emitter.d.ts +60 -0
- package/dist/lib/emitter/Emitter.js +60 -0
- package/dist/lib/emitter/Emitter.js.map +1 -1
- package/dist/lib/parser/BehaviourParser.d.ts +15 -4
- package/dist/lib/parser/BehaviourParser.js +15 -23
- package/dist/lib/parser/BehaviourParser.js.map +1 -1
- package/dist/lib/parser/CompatibilityHelper.d.ts +9 -0
- package/dist/lib/parser/CompatibilityHelper.js +9 -0
- package/dist/lib/parser/CompatibilityHelper.js.map +1 -1
- package/dist/lib/parser/EmitControllerParser.d.ts +21 -0
- package/dist/lib/parser/EmitControllerParser.js +21 -0
- package/dist/lib/parser/EmitControllerParser.js.map +1 -1
- package/dist/lib/parser/EmitterParser.d.ts +54 -1
- package/dist/lib/parser/EmitterParser.js +72 -15
- package/dist/lib/parser/EmitterParser.js.map +1 -1
- package/dist/lib/pixi/Renderer.d.ts +55 -0
- package/dist/lib/pixi/Renderer.js +55 -0
- package/dist/lib/pixi/Renderer.js.map +1 -1
- package/dist/lib/util/Color.d.ts +101 -0
- package/dist/lib/util/Color.js +101 -0
- package/dist/lib/util/Color.js.map +1 -1
- package/dist/lib/util/List.d.ts +40 -0
- package/dist/lib/util/List.js +40 -0
- package/dist/lib/util/List.js.map +1 -1
- package/dist/lib/util/Point.d.ts +21 -0
- package/dist/lib/util/Point.js +21 -0
- package/dist/lib/util/Point.js.map +1 -1
- package/dist/lib/util/Random.d.ts +20 -0
- package/dist/lib/util/Random.js +20 -0
- package/dist/lib/util/Random.js.map +1 -1
- package/dist/lib/util/maths.d.ts +17 -0
- package/dist/lib/util/maths.js +17 -0
- package/dist/lib/util/maths.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,9 +26,13 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
26
26
|
this.warpFov = 20;
|
|
27
27
|
this.warpStretch = 5;
|
|
28
28
|
this.warpDistanceScaleConverter = 2000;
|
|
29
|
+
this.warpDistanceToCenter = false;
|
|
30
|
+
/**
|
|
31
|
+
* Function that initializes a particle
|
|
32
|
+
* @param {Particle} particle - The particle to be initialized
|
|
33
|
+
* @param {Model} model - The model of the particle
|
|
34
|
+
*/
|
|
29
35
|
this.init = (particle, model) => {
|
|
30
|
-
if (!this.enabled)
|
|
31
|
-
return;
|
|
32
36
|
if (this.spawnType === 'Rectangle') {
|
|
33
37
|
particle.movement.x = this.calculate(this.position.x, this.positionVariance.x);
|
|
34
38
|
particle.movement.y = this.calculate(this.position.y, this.positionVariance.y);
|
|
@@ -68,9 +72,16 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
68
72
|
particle.y = particle.movement.y;
|
|
69
73
|
this.restartWarp(particle, true, model);
|
|
70
74
|
};
|
|
75
|
+
/**
|
|
76
|
+
* Restarts the warp of a particle
|
|
77
|
+
* @param {Particle} particle - The particle to restart the warp on
|
|
78
|
+
* @param {boolean} initial - True if this is the initial warp, false if it is a subsequent one
|
|
79
|
+
* @param {Model} model - The model containing the camera Z property
|
|
80
|
+
*/
|
|
71
81
|
this.restartWarp = (particle, initial, model) => {
|
|
72
82
|
if (!this.warp)
|
|
73
83
|
return;
|
|
84
|
+
const { sizeStart } = particle;
|
|
74
85
|
if (initial) {
|
|
75
86
|
particle.z = Math.random() * this.warpDistanceScaleConverter;
|
|
76
87
|
}
|
|
@@ -79,55 +90,85 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
79
90
|
}
|
|
80
91
|
const distance = Math.random() * this.positionVariance.x + 1;
|
|
81
92
|
const deg = Math.random() * (Math.PI * 2);
|
|
82
|
-
particle.warpSizeStart.x = (1 -
|
|
83
|
-
particle.warpSizeStart.y = (1 -
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
93
|
+
particle.warpSizeStart.x = (1 - distance / this.positionVariance.x) * 0.5 * sizeStart.x;
|
|
94
|
+
particle.warpSizeStart.y = (1 - distance / this.positionVariance.y) * 0.5 * sizeStart.y;
|
|
95
|
+
if (this.warpDistanceToCenter) {
|
|
96
|
+
particle.movement.x = Math.cos(deg) * distance;
|
|
97
|
+
particle.movement.y = Math.sin(deg) * distance;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
particle.x = Math.cos(deg) * distance;
|
|
101
|
+
particle.y = Math.sin(deg) * distance;
|
|
102
|
+
}
|
|
103
|
+
particle.color.alpha = (1 - distance / this.positionVariance.x) * 0.5;
|
|
87
104
|
};
|
|
105
|
+
/**
|
|
106
|
+
* Adds a random variance to the given value
|
|
107
|
+
* @param {number} value - The value to calculate
|
|
108
|
+
* @param {number} variance - The random variance to add
|
|
109
|
+
* @returns {number} The calculated value
|
|
110
|
+
*/
|
|
88
111
|
this.calculate = (value, variance) => {
|
|
89
112
|
return value + this.varianceFrom(variance);
|
|
90
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* Applies the particle's velocity and acceleration to move it and calculate its size, rotation, and position.
|
|
116
|
+
* @param {Particle} particle - The particle to be moved
|
|
117
|
+
* @param {number} deltaTime - The time delta for the movement calculation
|
|
118
|
+
* @param {Model} model - The model containing information about the particle's movement
|
|
119
|
+
*/
|
|
91
120
|
this.apply = (particle, deltaTime, model) => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
particle.velocity.
|
|
96
|
-
particle.
|
|
97
|
-
|
|
121
|
+
const { acceleration, sinXVal, sinYVal, z, warpSizeStart, movement } = particle;
|
|
122
|
+
const { cameraZ } = model;
|
|
123
|
+
const PI = Math.PI;
|
|
124
|
+
particle.velocity.x += acceleration.x * deltaTime;
|
|
125
|
+
particle.velocity.y += acceleration.y * deltaTime;
|
|
126
|
+
const movementX = movement.x + particle.velocity.x * deltaTime;
|
|
127
|
+
const movementY = movement.y + particle.velocity.y * deltaTime;
|
|
128
|
+
particle.movement.x = movementX;
|
|
129
|
+
particle.movement.y = movementY;
|
|
98
130
|
if (this.sinX) {
|
|
99
|
-
particle.x =
|
|
131
|
+
particle.x = movementX + Math.sin(PI * (movementY / sinXVal.x)) * sinXVal.y;
|
|
100
132
|
}
|
|
101
133
|
else {
|
|
102
|
-
particle.x =
|
|
134
|
+
particle.x = movementX;
|
|
103
135
|
}
|
|
104
136
|
if (this.sinY) {
|
|
105
|
-
particle.y =
|
|
137
|
+
particle.y = movementY + Math.sin(PI * (movementX / sinYVal.x)) * sinYVal.y;
|
|
106
138
|
}
|
|
107
139
|
else {
|
|
108
|
-
particle.y =
|
|
140
|
+
particle.y = movementY;
|
|
109
141
|
}
|
|
110
142
|
if (model.warp) {
|
|
111
|
-
if (
|
|
143
|
+
if (z < cameraZ) {
|
|
112
144
|
this.restartWarp(particle, false, model);
|
|
113
145
|
}
|
|
114
|
-
const
|
|
115
|
-
const dxCenter =
|
|
116
|
-
const dyCenter =
|
|
146
|
+
const newZ = z - cameraZ;
|
|
147
|
+
const dxCenter = movementX;
|
|
148
|
+
const dyCenter = movementY;
|
|
117
149
|
const distanceCenter = Math.sqrt(dxCenter * dxCenter + dyCenter * dyCenter);
|
|
118
|
-
const distanceScale = Math.max(0, (this.warpDistanceScaleConverter -
|
|
119
|
-
const fovZ = this.warpFov /
|
|
120
|
-
particle.x =
|
|
121
|
-
particle.y =
|
|
122
|
-
particle.size.x = distanceScale *
|
|
123
|
-
particle.size.y =
|
|
124
|
-
|
|
150
|
+
const distanceScale = Math.max(0, (this.warpDistanceScaleConverter - newZ) / this.warpDistanceScaleConverter);
|
|
151
|
+
const fovZ = this.warpFov / newZ;
|
|
152
|
+
particle.x = movementX * fovZ;
|
|
153
|
+
particle.y = movementY * fovZ;
|
|
154
|
+
particle.size.x = distanceScale * warpSizeStart.x;
|
|
155
|
+
particle.size.y =
|
|
156
|
+
distanceScale * warpSizeStart.y + distanceScale * this.warpSpeed * this.warpStretch * distanceCenter;
|
|
157
|
+
particle.rotation = Math.atan2(dyCenter, dxCenter) + PI / 2;
|
|
125
158
|
}
|
|
126
159
|
};
|
|
127
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Gets the name of the behaviour
|
|
163
|
+
* @return {BehaviourNames} The name of the behaviour
|
|
164
|
+
*/
|
|
128
165
|
getName() {
|
|
129
166
|
return BehaviourNames.POSITION_BEHAVIOUR;
|
|
130
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* @description Retrieves the properties of the object.
|
|
170
|
+
* @returns {Object} The properties of the object.
|
|
171
|
+
*/
|
|
131
172
|
getProps() {
|
|
132
173
|
return {
|
|
133
174
|
enabled: this.enabled,
|
|
@@ -171,6 +212,7 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
171
212
|
warpFov: this.warpFov,
|
|
172
213
|
warpStretch: this.warpStretch,
|
|
173
214
|
warpDistanceScaleConverter: this.warpDistanceScaleConverter,
|
|
215
|
+
warpDistanceToCenter: this.warpDistanceToCenter,
|
|
174
216
|
name: this.getName(),
|
|
175
217
|
};
|
|
176
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/PositionBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAInD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IAAxD;;QACE,YAAO,GAAG,KAAK,CAAA;QACf,aAAQ,GAAG,GAAG,CAAA;QACd,cAAS,GAAW,WAAW,CAAA;QAC/B,WAAM,GAAW,CAAC,CAAA;QAClB,SAAI,GAAY,KAAK,CAAA;QACrB,cAAS,GAAW,CAAC,CAAA;QACrB,kBAAa,GAAW,CAAC,CAAA;QACzB,SAAI,GAAY,KAAK,CAAA;QACrB,SAAI,GAAY,KAAK,CAAA;QACrB,YAAO,GAAG,IAAI,KAAK,EAAE,CAAA;QACrB,YAAO,GAAG,IAAI,KAAK,EAAE,CAAA;QACrB,oBAAe,GAAG,IAAI,KAAK,EAAE,CAAA;QAC7B,oBAAe,GAAG,IAAI,KAAK,EAAE,CAAA;QAC7B,aAAQ,GAAG,IAAI,KAAK,EAAE,CAAA;QACtB,qBAAgB,GAAG,IAAI,KAAK,EAAE,CAAA;QAC9B,aAAQ,GAAG,IAAI,KAAK,EAAE,CAAA;QACtB,qBAAgB,GAAG,IAAI,KAAK,EAAE,CAAA;QAC9B,iBAAY,GAAG,IAAI,KAAK,EAAE,CAAA;QAC1B,yBAAoB,GAAG,IAAI,KAAK,EAAE,CAAA;QAClC,qBAAgB,GAAW,EAAE,CAAA;QAC7B,YAAO,GAAW,EAAE,CAAA;QACpB,gBAAW,GAAW,CAAC,CAAA;QACvB,+BAA0B,GAAW,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"PositionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/PositionBehaviour.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,46 @@
|
|
|
1
1
|
import { Behaviour } from './index';
|
|
2
2
|
import Particle from '../Particle';
|
|
3
|
+
/**
|
|
4
|
+
* RotationBehaviour is a Behaviour class used to control the rotation of particles.
|
|
5
|
+
* @extends Behaviour
|
|
6
|
+
*/
|
|
3
7
|
export default class RotationBehaviour extends Behaviour {
|
|
8
|
+
/**
|
|
9
|
+
* @type {boolean} enabled - Enable or disable the Behaviour
|
|
10
|
+
*/
|
|
4
11
|
enabled: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* @type {number} priority - The priority of the Behaviour.
|
|
14
|
+
*/
|
|
5
15
|
priority: number;
|
|
16
|
+
/**
|
|
17
|
+
* @type {number} rotation - The amount of rotation to apply on each particle.
|
|
18
|
+
*/
|
|
6
19
|
rotation: number;
|
|
20
|
+
/**
|
|
21
|
+
* @type {number} variance - The amount of variance to apply on the particle's rotation.
|
|
22
|
+
*/
|
|
7
23
|
variance: number;
|
|
24
|
+
/**
|
|
25
|
+
* Initialise the Behaviour for a particle
|
|
26
|
+
* @param {Particle} particle - The particle to be initialised
|
|
27
|
+
*/
|
|
8
28
|
init: (particle: Particle) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Applies the Behaviour to a particle
|
|
31
|
+
* @param {Particle} particle - The particle to apply the Behaviour to
|
|
32
|
+
* @param {number} deltaTime - The delta time of the runtime
|
|
33
|
+
*/
|
|
9
34
|
apply: (particle: Particle, deltaTime: number) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Gets the name of the Behaviour
|
|
37
|
+
* @returns {string} - The name of the Behaviour
|
|
38
|
+
*/
|
|
10
39
|
getName(): string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Gets the properties of the Behaviour
|
|
42
|
+
* @returns {object} - The properties of the Behaviour
|
|
43
|
+
*/
|
|
15
44
|
getProps(): {
|
|
16
45
|
enabled: boolean;
|
|
17
46
|
priority: number;
|
|
@@ -1,38 +1,54 @@
|
|
|
1
1
|
import { Behaviour, BehaviourNames } from './index';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* RotationBehaviour is a Behaviour class used to control the rotation of particles.
|
|
4
|
+
* @extends Behaviour
|
|
5
|
+
*/
|
|
3
6
|
export default class RotationBehaviour extends Behaviour {
|
|
4
7
|
constructor() {
|
|
5
8
|
super(...arguments);
|
|
9
|
+
/**
|
|
10
|
+
* @type {boolean} enabled - Enable or disable the Behaviour
|
|
11
|
+
*/
|
|
6
12
|
this.enabled = false;
|
|
13
|
+
/**
|
|
14
|
+
* @type {number} priority - The priority of the Behaviour.
|
|
15
|
+
*/
|
|
7
16
|
this.priority = 0;
|
|
17
|
+
/**
|
|
18
|
+
* @type {number} rotation - The amount of rotation to apply on each particle.
|
|
19
|
+
*/
|
|
8
20
|
this.rotation = 0;
|
|
21
|
+
/**
|
|
22
|
+
* @type {number} variance - The amount of variance to apply on the particle's rotation.
|
|
23
|
+
*/
|
|
9
24
|
this.variance = 0;
|
|
25
|
+
/**
|
|
26
|
+
* Initialise the Behaviour for a particle
|
|
27
|
+
* @param {Particle} particle - The particle to be initialised
|
|
28
|
+
*/
|
|
10
29
|
this.init = (particle) => {
|
|
11
|
-
if (!this.enabled)
|
|
12
|
-
return;
|
|
13
30
|
particle.rotationDelta = this.rotation + this.varianceFrom(this.variance);
|
|
14
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Applies the Behaviour to a particle
|
|
34
|
+
* @param {Particle} particle - The particle to apply the Behaviour to
|
|
35
|
+
* @param {number} deltaTime - The delta time of the runtime
|
|
36
|
+
*/
|
|
15
37
|
this.apply = (particle, deltaTime) => {
|
|
16
|
-
if (!this.enabled)
|
|
17
|
-
return;
|
|
18
38
|
particle.rotation += particle.rotationDelta * deltaTime;
|
|
19
39
|
};
|
|
20
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Gets the name of the Behaviour
|
|
43
|
+
* @returns {string} - The name of the Behaviour
|
|
44
|
+
*/
|
|
21
45
|
getName() {
|
|
22
46
|
return BehaviourNames.ROTATION_BEHAVIOUR;
|
|
23
47
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.rotation = math.radiansToDegrees(value);
|
|
29
|
-
}
|
|
30
|
-
get varianceInDegrees() {
|
|
31
|
-
return math.radiansToDegrees(this.variance);
|
|
32
|
-
}
|
|
33
|
-
set varianceInDegrees(value) {
|
|
34
|
-
this.variance = math.radiansToDegrees(value);
|
|
35
|
-
}
|
|
48
|
+
/**
|
|
49
|
+
* Gets the properties of the Behaviour
|
|
50
|
+
* @returns {object} - The properties of the Behaviour
|
|
51
|
+
*/
|
|
36
52
|
getProps() {
|
|
37
53
|
return {
|
|
38
54
|
enabled: this.enabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RotationBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/RotationBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"RotationBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/RotationBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGnD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IAAxD;;QACE;;WAEG;QACH,YAAO,GAAG,KAAK,CAAA;QAEf;;WAEG;QACH,aAAQ,GAAG,CAAC,CAAA;QAEZ;;WAEG;QACH,aAAQ,GAAG,CAAC,CAAA;QAEZ;;WAEG;QACH,aAAQ,GAAG,CAAC,CAAA;QAEZ;;;WAGG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC3E,CAAC,CAAA;QAED;;;;WAIG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;QACzD,CAAC,CAAA;IAuBH,CAAC;IArBC;;;OAGG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,kBAAkB,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -10,7 +10,7 @@ export default class SizeBehaviour extends Behaviour {
|
|
|
10
10
|
startVariance: number;
|
|
11
11
|
endVariance: number;
|
|
12
12
|
init: (particle: Particle) => void;
|
|
13
|
-
apply: (particle: Particle
|
|
13
|
+
apply: (particle: Particle) => void;
|
|
14
14
|
getName(): string;
|
|
15
15
|
getProps(): {
|
|
16
16
|
enabled: boolean;
|
|
@@ -11,32 +11,39 @@ export default class SizeBehaviour extends Behaviour {
|
|
|
11
11
|
this.startVariance = 0;
|
|
12
12
|
this.endVariance = 0;
|
|
13
13
|
this.init = (particle) => {
|
|
14
|
-
if (!this.enabled)
|
|
15
|
-
return;
|
|
16
14
|
let variance = this.varianceFrom(this.startVariance);
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
let sizeStartX = this.sizeStart.x + variance;
|
|
16
|
+
let sizeStartY = this.sizeStart.y + variance;
|
|
19
17
|
variance = this.varianceFrom(this.endVariance);
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
let sizeEndX = this.sizeEnd.x + variance;
|
|
19
|
+
let sizeEndY = this.sizeEnd.y + variance;
|
|
22
20
|
if (!this.allowNegativeValues) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
sizeStartX = Math.max(sizeStartX, 0);
|
|
22
|
+
sizeStartY = Math.max(sizeStartY, 0);
|
|
23
|
+
sizeEndX = Math.max(sizeEndX, 0);
|
|
24
|
+
sizeEndY = Math.max(sizeEndY, 0);
|
|
27
25
|
}
|
|
26
|
+
particle.sizeDifference = {
|
|
27
|
+
x: sizeEndX - sizeStartX,
|
|
28
|
+
y: sizeEndY - sizeStartY,
|
|
29
|
+
};
|
|
30
|
+
particle.sizeStart.x = sizeStartX;
|
|
31
|
+
particle.sizeStart.y = sizeStartY;
|
|
32
|
+
particle.sizeEnd.x = sizeEndX;
|
|
33
|
+
particle.sizeEnd.y = sizeEndY;
|
|
28
34
|
particle.size.copyFrom(particle.sizeStart);
|
|
29
35
|
};
|
|
30
|
-
this.apply = (particle
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
particle.size.y += (particle.sizeEnd.y - particle.sizeStart.y) * particle.lifeProgress;
|
|
36
|
+
this.apply = (particle) => {
|
|
37
|
+
const { sizeStart, lifeProgress, sizeDifference, size } = particle;
|
|
38
|
+
particle.size.copyFrom(sizeStart);
|
|
39
|
+
let sizeX = size.x + sizeDifference.x * lifeProgress;
|
|
40
|
+
let sizeY = size.y + sizeDifference.y * lifeProgress;
|
|
36
41
|
if (!this.allowNegativeValues) {
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
sizeX = Math.max(0, sizeX);
|
|
43
|
+
sizeY = Math.max(0, sizeY);
|
|
39
44
|
}
|
|
45
|
+
particle.size.x = sizeX;
|
|
46
|
+
particle.size.y = sizeY;
|
|
40
47
|
};
|
|
41
48
|
}
|
|
42
49
|
getName() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SizeBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/SizeBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGnD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAApD;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QACZ,wBAAmB,GAAG,KAAK,CAAA;QAC3B,cAAS,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,YAAO,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,kBAAa,GAAG,CAAC,CAAA;QACjB,gBAAW,GAAG,CAAC,CAAA;QAEf,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,IAAI,
|
|
1
|
+
{"version":3,"file":"SizeBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/SizeBehaviour.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export default class TurbulenceBehaviour extends Behaviour {
|
|
|
21
21
|
duration: number;
|
|
22
22
|
maxLifeTime: number;
|
|
23
23
|
init: (particle: Particle) => void;
|
|
24
|
-
apply: (particle: Particle
|
|
24
|
+
apply: (particle: Particle) => void;
|
|
25
25
|
getName(): string;
|
|
26
26
|
getProps(): {
|
|
27
27
|
enabled: boolean;
|
|
@@ -24,14 +24,10 @@ export default class TurbulenceBehaviour extends Behaviour {
|
|
|
24
24
|
this.duration = 0;
|
|
25
25
|
this.maxLifeTime = 0;
|
|
26
26
|
this.init = (particle) => {
|
|
27
|
-
if (!this.enabled)
|
|
28
|
-
return;
|
|
29
27
|
particle.showVortices = this.showVortices;
|
|
30
28
|
particle.turbulence = this.turbulence;
|
|
31
29
|
};
|
|
32
|
-
this.apply = (particle
|
|
33
|
-
if (!this.enabled)
|
|
34
|
-
return;
|
|
30
|
+
this.apply = (particle) => {
|
|
35
31
|
if (particle.turbulence)
|
|
36
32
|
return;
|
|
37
33
|
turbulencePool.list.forEach((vortex) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurbulenceBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/TurbulenceBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,cAAc,MAAM,wBAAwB,CAAA;AAEnD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,SAAS;IAA1D;;QACU,YAAO,GAAY,KAAK,CAAA;QACxB,iBAAY,GAAY,KAAK,CAAA;QAC7B,WAAM,GAAW,CAAC,CAAA;QAClB,eAAU,GAAY,KAAK,CAAA;QAC3B,kBAAa,GAAW,GAAG,CAAA;QACnC,aAAQ,GAAG,IAAI,KAAK,EAAE,CAAA;QACtB,qBAAgB,GAAG,IAAI,KAAK,EAAE,CAAA;QAC9B,aAAQ,GAAG,IAAI,KAAK,EAAE,CAAA;QACtB,qBAAgB,GAAG,IAAI,KAAK,EAAE,CAAA;QAC9B,iBAAY,GAAG,IAAI,KAAK,EAAE,CAAA;QAC1B,yBAAoB,GAAG,IAAI,KAAK,EAAE,CAAA;QAClC,cAAS,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,YAAO,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,kBAAa,GAAG,CAAC,CAAA;QACjB,gBAAW,GAAG,CAAC,CAAA;QACf,kBAAa,GAAG,CAAC,CAAA;QACjB,aAAQ,GAAG,CAAC,CAAA;QACZ,gBAAW,GAAG,CAAC,CAAA;QAEf,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,
|
|
1
|
+
{"version":3,"file":"TurbulenceBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/TurbulenceBehaviour.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
import { EmitControllerParser } from '../parser';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract class representing a particle emitter.
|
|
4
|
+
* @abstract
|
|
5
|
+
*/
|
|
2
6
|
export default class AbstractEmission {
|
|
7
|
+
/**
|
|
8
|
+
* Calculate number of particles emitted after given time deltas
|
|
9
|
+
* @param {number} deltaTime - number of seconds passed
|
|
10
|
+
* @param {number} particlesCount - current number of particles
|
|
11
|
+
* @return {number} - the number of particles emitted
|
|
12
|
+
* @abstract
|
|
13
|
+
*/
|
|
3
14
|
howMany(deltaTime: number, particlesCount: number): void;
|
|
15
|
+
/**
|
|
16
|
+
* Reset the emission
|
|
17
|
+
*/
|
|
4
18
|
reset(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get the name of the emission
|
|
21
|
+
* @return {string} - the name of the emission
|
|
22
|
+
* @throws {Error} - when the method is not overridden in subclass
|
|
23
|
+
*/
|
|
5
24
|
getName(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Get the parser for the emitter
|
|
27
|
+
* @return {EmitControllerParser} - parser for the emitter
|
|
28
|
+
*/
|
|
6
29
|
getParser(): EmitControllerParser;
|
|
7
30
|
}
|
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
import { EmitControllerParser } from '../parser';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract class representing a particle emitter.
|
|
4
|
+
* @abstract
|
|
5
|
+
*/
|
|
2
6
|
export default class AbstractEmission {
|
|
7
|
+
/**
|
|
8
|
+
* Calculate number of particles emitted after given time deltas
|
|
9
|
+
* @param {number} deltaTime - number of seconds passed
|
|
10
|
+
* @param {number} particlesCount - current number of particles
|
|
11
|
+
* @return {number} - the number of particles emitted
|
|
12
|
+
* @abstract
|
|
13
|
+
*/
|
|
3
14
|
howMany(deltaTime, particlesCount) {
|
|
4
15
|
throw new Error('Abstract method');
|
|
5
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Reset the emission
|
|
19
|
+
*/
|
|
6
20
|
reset() {
|
|
7
21
|
//
|
|
8
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the name of the emission
|
|
25
|
+
* @return {string} - the name of the emission
|
|
26
|
+
* @throws {Error} - when the method is not overridden in subclass
|
|
27
|
+
*/
|
|
9
28
|
getName() {
|
|
10
29
|
throw new Error('This method has to be overridden in subclass');
|
|
11
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the parser for the emitter
|
|
33
|
+
* @return {EmitControllerParser} - parser for the emitter
|
|
34
|
+
*/
|
|
12
35
|
getParser() {
|
|
13
36
|
return new EmitControllerParser(this);
|
|
14
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractEmission.js","sourceRoot":"","sources":["../../../src/lib/emission/AbstractEmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,CAAC,SAAiB,EAAE,cAAsB;QAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,KAAK;QACH,EAAE;IACJ,CAAC;IAED,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"AbstractEmission.js","sourceRoot":"","sources":["../../../src/lib/emission/AbstractEmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,SAAiB,EAAE,cAAsB;QAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,EAAE;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;CACF"}
|
|
@@ -1,11 +1,44 @@
|
|
|
1
1
|
import { AbstractEmission } from './index';
|
|
2
|
+
/**
|
|
3
|
+
* RandomEmission class to generate random particles
|
|
4
|
+
* @extends AbstractEmission
|
|
5
|
+
*/
|
|
2
6
|
export default class RandomEmission extends AbstractEmission {
|
|
7
|
+
/**
|
|
8
|
+
* Maximum number of particles
|
|
9
|
+
*/
|
|
3
10
|
_maxParticles: number;
|
|
11
|
+
/**
|
|
12
|
+
* Emission rate
|
|
13
|
+
*/
|
|
4
14
|
_emissionRate: number;
|
|
15
|
+
/**
|
|
16
|
+
* Calculates how many particles to emit
|
|
17
|
+
* @param {number} deltaTime - how much time is passed
|
|
18
|
+
* @param {number} particlesCount - current number of particles
|
|
19
|
+
*/
|
|
5
20
|
howMany(deltaTime: number, particlesCount: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Gets the emission rate
|
|
23
|
+
*/
|
|
6
24
|
get emissionRate(): number;
|
|
25
|
+
/**
|
|
26
|
+
* Sets the emission rate
|
|
27
|
+
* @param {number} value - the emission rate to set
|
|
28
|
+
*/
|
|
7
29
|
set emissionRate(value: number);
|
|
30
|
+
/**
|
|
31
|
+
* Gets the maximum number of particles
|
|
32
|
+
*/
|
|
8
33
|
get maxParticles(): number;
|
|
34
|
+
/**
|
|
35
|
+
* Sets the maximum number of particles
|
|
36
|
+
* @param {number} value - the maximum number of particles to set
|
|
37
|
+
*/
|
|
9
38
|
set maxParticles(value: number);
|
|
39
|
+
/**
|
|
40
|
+
* Gets the name of the emission type
|
|
41
|
+
* @returns {string} Emission type
|
|
42
|
+
*/
|
|
10
43
|
getName: () => string;
|
|
11
44
|
}
|