custom-pixi-particles 5.2.0 → 8.0.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.
Files changed (128) hide show
  1. package/README.md +119 -82
  2. package/package.json +5 -5
  3. package/dist/index.d.ts +0 -11
  4. package/dist/index.js +0 -28
  5. package/dist/index.js.map +0 -1
  6. package/dist/lib/Model.d.ts +0 -32
  7. package/dist/lib/Model.js +0 -44
  8. package/dist/lib/Model.js.map +0 -1
  9. package/dist/lib/Particle.d.ts +0 -220
  10. package/dist/lib/Particle.js +0 -172
  11. package/dist/lib/Particle.js.map +0 -1
  12. package/dist/lib/ParticlePool.d.ts +0 -37
  13. package/dist/lib/ParticlePool.js +0 -56
  14. package/dist/lib/ParticlePool.js.map +0 -1
  15. package/dist/lib/behaviour/AngularVelocityBehaviour.d.ts +0 -57
  16. package/dist/lib/behaviour/AngularVelocityBehaviour.js +0 -87
  17. package/dist/lib/behaviour/AngularVelocityBehaviour.js.map +0 -1
  18. package/dist/lib/behaviour/Behaviour.d.ts +0 -33
  19. package/dist/lib/behaviour/Behaviour.js +0 -45
  20. package/dist/lib/behaviour/Behaviour.js.map +0 -1
  21. package/dist/lib/behaviour/BehaviourNames.d.ts +0 -11
  22. package/dist/lib/behaviour/BehaviourNames.js +0 -11
  23. package/dist/lib/behaviour/BehaviourNames.js.map +0 -1
  24. package/dist/lib/behaviour/ColorBehaviour.d.ts +0 -45
  25. package/dist/lib/behaviour/ColorBehaviour.js +0 -77
  26. package/dist/lib/behaviour/ColorBehaviour.js.map +0 -1
  27. package/dist/lib/behaviour/EmitDirectionBehaviour.d.ts +0 -46
  28. package/dist/lib/behaviour/EmitDirectionBehaviour.js +0 -64
  29. package/dist/lib/behaviour/EmitDirectionBehaviour.js.map +0 -1
  30. package/dist/lib/behaviour/EmitterBehaviours.d.ts +0 -63
  31. package/dist/lib/behaviour/EmitterBehaviours.js +0 -105
  32. package/dist/lib/behaviour/EmitterBehaviours.js.map +0 -1
  33. package/dist/lib/behaviour/LifeBehaviour.d.ts +0 -67
  34. package/dist/lib/behaviour/LifeBehaviour.js +0 -85
  35. package/dist/lib/behaviour/LifeBehaviour.js.map +0 -1
  36. package/dist/lib/behaviour/PositionBehaviour.d.ts +0 -177
  37. package/dist/lib/behaviour/PositionBehaviour.js +0 -534
  38. package/dist/lib/behaviour/PositionBehaviour.js.map +0 -1
  39. package/dist/lib/behaviour/RotationBehaviour.d.ts +0 -51
  40. package/dist/lib/behaviour/RotationBehaviour.js +0 -66
  41. package/dist/lib/behaviour/RotationBehaviour.js.map +0 -1
  42. package/dist/lib/behaviour/SizeBehaviour.d.ts +0 -31
  43. package/dist/lib/behaviour/SizeBehaviour.js +0 -71
  44. package/dist/lib/behaviour/SizeBehaviour.js.map +0 -1
  45. package/dist/lib/behaviour/TurbulenceBehaviour.d.ts +0 -72
  46. package/dist/lib/behaviour/TurbulenceBehaviour.js +0 -128
  47. package/dist/lib/behaviour/TurbulenceBehaviour.js.map +0 -1
  48. package/dist/lib/behaviour/index.d.ts +0 -12
  49. package/dist/lib/behaviour/index.js +0 -13
  50. package/dist/lib/behaviour/index.js.map +0 -1
  51. package/dist/lib/customPixiParticlesSettingsInterface.d.ts +0 -18
  52. package/dist/lib/customPixiParticlesSettingsInterface.js +0 -2
  53. package/dist/lib/customPixiParticlesSettingsInterface.js.map +0 -1
  54. package/dist/lib/emission/AbstractEmission.d.ts +0 -30
  55. package/dist/lib/emission/AbstractEmission.js +0 -39
  56. package/dist/lib/emission/AbstractEmission.js.map +0 -1
  57. package/dist/lib/emission/EmissionTypes.d.ts +0 -6
  58. package/dist/lib/emission/EmissionTypes.js +0 -6
  59. package/dist/lib/emission/EmissionTypes.js.map +0 -1
  60. package/dist/lib/emission/RandomEmission.d.ts +0 -44
  61. package/dist/lib/emission/RandomEmission.js +0 -66
  62. package/dist/lib/emission/RandomEmission.js.map +0 -1
  63. package/dist/lib/emission/StandardEmission.d.ts +0 -62
  64. package/dist/lib/emission/StandardEmission.js +0 -87
  65. package/dist/lib/emission/StandardEmission.js.map +0 -1
  66. package/dist/lib/emission/UniformEmission.d.ts +0 -56
  67. package/dist/lib/emission/UniformEmission.js +0 -83
  68. package/dist/lib/emission/UniformEmission.js.map +0 -1
  69. package/dist/lib/emission/index.d.ts +0 -6
  70. package/dist/lib/emission/index.js +0 -7
  71. package/dist/lib/emission/index.js.map +0 -1
  72. package/dist/lib/emitter/Duration.d.ts +0 -27
  73. package/dist/lib/emitter/Duration.js +0 -41
  74. package/dist/lib/emitter/Duration.js.map +0 -1
  75. package/dist/lib/emitter/Emitter.d.ts +0 -113
  76. package/dist/lib/emitter/Emitter.js +0 -201
  77. package/dist/lib/emitter/Emitter.js.map +0 -1
  78. package/dist/lib/emitter/index.d.ts +0 -3
  79. package/dist/lib/emitter/index.js +0 -4
  80. package/dist/lib/emitter/index.js.map +0 -1
  81. package/dist/lib/index.d.ts +0 -20
  82. package/dist/lib/index.js +0 -21
  83. package/dist/lib/index.js.map +0 -1
  84. package/dist/lib/parser/BehaviourParser.d.ts +0 -21
  85. package/dist/lib/parser/BehaviourParser.js +0 -72
  86. package/dist/lib/parser/BehaviourParser.js.map +0 -1
  87. package/dist/lib/parser/CompatibilityHelper.d.ts +0 -12
  88. package/dist/lib/parser/CompatibilityHelper.js +0 -19
  89. package/dist/lib/parser/CompatibilityHelper.js.map +0 -1
  90. package/dist/lib/parser/EmitControllerParser.d.ts +0 -27
  91. package/dist/lib/parser/EmitControllerParser.js +0 -39
  92. package/dist/lib/parser/EmitControllerParser.js.map +0 -1
  93. package/dist/lib/parser/EmitterParser.d.ts +0 -67
  94. package/dist/lib/parser/EmitterParser.js +0 -168
  95. package/dist/lib/parser/EmitterParser.js.map +0 -1
  96. package/dist/lib/parser/index.d.ts +0 -5
  97. package/dist/lib/parser/index.js +0 -6
  98. package/dist/lib/parser/index.js.map +0 -1
  99. package/dist/lib/pixi/Renderer.d.ts +0 -116
  100. package/dist/lib/pixi/Renderer.js +0 -508
  101. package/dist/lib/pixi/Renderer.js.map +0 -1
  102. package/dist/lib/util/Color.d.ts +0 -133
  103. package/dist/lib/util/Color.js +0 -173
  104. package/dist/lib/util/Color.js.map +0 -1
  105. package/dist/lib/util/List.d.ts +0 -49
  106. package/dist/lib/util/List.js +0 -87
  107. package/dist/lib/util/List.js.map +0 -1
  108. package/dist/lib/util/MinMax.d.ts +0 -34
  109. package/dist/lib/util/MinMax.js +0 -46
  110. package/dist/lib/util/MinMax.js.map +0 -1
  111. package/dist/lib/util/Point.d.ts +0 -34
  112. package/dist/lib/util/Point.js +0 -46
  113. package/dist/lib/util/Point.js.map +0 -1
  114. package/dist/lib/util/Random.d.ts +0 -24
  115. package/dist/lib/util/Random.js +0 -30
  116. package/dist/lib/util/Random.js.map +0 -1
  117. package/dist/lib/util/ThereBack.d.ts +0 -14
  118. package/dist/lib/util/ThereBack.js +0 -23
  119. package/dist/lib/util/ThereBack.js.map +0 -1
  120. package/dist/lib/util/index.d.ts +0 -5
  121. package/dist/lib/util/index.js +0 -6
  122. package/dist/lib/util/index.js.map +0 -1
  123. package/dist/lib/util/maths.d.ts +0 -10
  124. package/dist/lib/util/maths.js +0 -13
  125. package/dist/lib/util/maths.js.map +0 -1
  126. package/dist/lib/util/turbulencePool.d.ts +0 -4
  127. package/dist/lib/util/turbulencePool.js +0 -7
  128. package/dist/lib/util/turbulencePool.js.map +0 -1
@@ -1,172 +0,0 @@
1
- import { Color, Point } from './util';
2
- import ThereBack from './util/ThereBack';
3
- /**
4
- * Represents a particle object used in particle system simulations
5
- */
6
- class Particle {
7
- /**
8
- * Constructs a particle object
9
- */
10
- constructor() {
11
- this.next = null;
12
- this.prev = null;
13
- /**
14
- * Stores the unique ID of the particle
15
- */
16
- this.uid = Particle._UID.value++;
17
- /**
18
- * Stores the movement of the particle
19
- */
20
- this.movement = new Point();
21
- /**
22
- * Stores the acceleration of the particle
23
- */
24
- this.acceleration = new Point();
25
- /**
26
- * Stores the velocity of the particle
27
- */
28
- this.velocity = new Point();
29
- /**
30
- * Stores the size of the particle
31
- */
32
- this.size = new Point();
33
- /**
34
- * Stores the starting size of the particle
35
- */
36
- this.sizeStart = new Point();
37
- /**
38
- * Stores the starting warp size of the particle
39
- */
40
- this.warpSizeStart = new Point();
41
- /**
42
- * Stores the ending size of the particle
43
- */
44
- this.sizeEnd = new Point();
45
- /**
46
- * Stores the x value of the particle for sin wave
47
- */
48
- this.sinXVal = new Point();
49
- /**
50
- * Stores the y value of the particle for sin wave
51
- */
52
- this.sinYVal = new Point();
53
- /**
54
- * Stores the color of the particle
55
- */
56
- this.color = new Color();
57
- /**
58
- * Stores the starting color of the particle
59
- */
60
- this.colorStart = new Color();
61
- /**
62
- * Stores the ending color of the particle
63
- */
64
- this.colorEnd = new Color();
65
- this.fromAtoB = false;
66
- this.fromAtoBTwoWays = false;
67
- this.pointA = new Point();
68
- this.pointB = new Point();
69
- this.there = new ThereBack();
70
- this.back = new ThereBack();
71
- this.xStart = 0;
72
- this.yStart = 0;
73
- this.xTarget = 0;
74
- this.yTarget = 0;
75
- this.thereDuration = 1;
76
- this.backDuration = 1;
77
- this.progress = 0;
78
- this.time = 0;
79
- this.thereAmplitude = 10;
80
- this.backAmplitude = 10;
81
- this.direction = 1;
82
- this.reset();
83
- }
84
- /**
85
- * Resets the particle object
86
- */
87
- reset() {
88
- this.maxLifeTime = 0;
89
- this.lifeTime = 0;
90
- this.lifeProgress = 0;
91
- this.x = 0;
92
- this.y = 0;
93
- this.z = 0;
94
- this.movement.set(0, 0);
95
- this.acceleration.set(0, 0);
96
- this.velocity.set(0, 0);
97
- this.sinXVal.set(0, 0);
98
- this.sinYVal.set(0, 0);
99
- this.velocityAngle = 0;
100
- this.radiansPerSecond = 0;
101
- this.radius = 0;
102
- this.radiusStart = 0;
103
- this.radiusEnd = 0;
104
- this.directionCos = 1;
105
- this.directionSin = 0;
106
- this.finishingTexture = 0;
107
- this.showVortices = false;
108
- this.turbulence = false;
109
- this.rotation = 0;
110
- this.rotationDelta = 0;
111
- this.size.set(1, 1);
112
- this.sizeStart.set(0, 0);
113
- this.warpSizeStart.set(0, 0);
114
- this.sizeEnd.set(0, 0);
115
- this.color.set(255, 255, 255, 1);
116
- this.colorStart.set(0, 0, 0, 1);
117
- this.colorEnd.set(0, 0, 0, 1);
118
- this.cameraZ = 0;
119
- this.cameraZConverter = 10;
120
- this.warpSpeed = 0;
121
- this.warpBaseSpeed = 0;
122
- this.warpFov = 20;
123
- this.warpStretch = 5;
124
- this.warpDistanceScaleConverter = 2000;
125
- this.fromAtoB = false;
126
- this.fromAtoBTwoWays = false;
127
- this.pointA.set(0, 0);
128
- this.pointB.set(0, 0);
129
- this.there.set('', '', '');
130
- this.back.set('', '', '');
131
- this.thereDuration = 1;
132
- this.backDuration = 1;
133
- this.thereAmplitude = 10;
134
- this.backAmplitude = 10;
135
- this.progress = 0;
136
- this.direction = 1;
137
- this.time = 0;
138
- this.xStart = 0;
139
- this.yStart = 0;
140
- this.xTarget = 0;
141
- this.yTarget = 0;
142
- }
143
- /**
144
- * Checks if the particle is almost dead
145
- *
146
- * @return {boolean} True if the particle is almost dead, otherwise false
147
- */
148
- isAlmostDead() {
149
- return this.lifeTime >= this.maxLifeTime - 0.1;
150
- }
151
- /**
152
- * Checks if the particle is dead
153
- *
154
- * @return {boolean} True if the particle is dead, otherwise false
155
- */
156
- isDead() {
157
- return this.lifeTime >= this.maxLifeTime;
158
- }
159
- /**
160
- * Hides the particle
161
- */
162
- hide() {
163
- if (!this.sprite)
164
- return;
165
- if (!this.sprite.visible)
166
- return;
167
- this.sprite.visible = false;
168
- }
169
- }
170
- Particle._UID = { value: 0 };
171
- export default Particle;
172
- //# sourceMappingURL=Particle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/lib/Particle.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import Particle from './Particle';
2
- /**
3
- * @class ParticlePool
4
- * A class for managing a pool of particles.
5
- */
6
- export default class ParticlePool {
7
- /**
8
- * A static global instance of ParticlePool.
9
- */
10
- static global: ParticlePool;
11
- /**
12
- * The first element in the pool.
13
- */
14
- first: Particle | null;
15
- /**
16
- * Removes a particle from the pool and returns it.
17
- *
18
- * @returns {Particle} The removed particle.
19
- */
20
- pop(): Particle;
21
- /**
22
- * Creates a new particle.
23
- *
24
- * @returns {Particle} The newly created particle.
25
- */
26
- create(): Particle;
27
- /**
28
- * Adds a particle to the pool.
29
- *
30
- * @param {Particle} particle The particle to add.
31
- */
32
- push(particle: Particle): void;
33
- /**
34
- * Resets the particle pool.
35
- */
36
- reset(): void;
37
- }
@@ -1,56 +0,0 @@
1
- import Particle from './Particle';
2
- /**
3
- * @class ParticlePool
4
- * A class for managing a pool of particles.
5
- */
6
- class ParticlePool {
7
- constructor() {
8
- /**
9
- * The first element in the pool.
10
- */
11
- this.first = null;
12
- }
13
- /**
14
- * Removes a particle from the pool and returns it.
15
- *
16
- * @returns {Particle} The removed particle.
17
- */
18
- pop() {
19
- if (!this.first)
20
- return this.create();
21
- const current = this.first;
22
- this.first = current.next;
23
- current.next = null;
24
- return current;
25
- }
26
- /**
27
- * Creates a new particle.
28
- *
29
- * @returns {Particle} The newly created particle.
30
- */
31
- create() {
32
- return new Particle();
33
- }
34
- /**
35
- * Adds a particle to the pool.
36
- *
37
- * @param {Particle} particle The particle to add.
38
- */
39
- push(particle) {
40
- particle.next = this.first;
41
- this.first = particle;
42
- }
43
- /**
44
- * Resets the particle pool.
45
- */
46
- reset() {
47
- this.first = null;
48
- ParticlePool.global = new ParticlePool();
49
- }
50
- }
51
- /**
52
- * A static global instance of ParticlePool.
53
- */
54
- ParticlePool.global = new ParticlePool();
55
- export default ParticlePool;
56
- //# sourceMappingURL=ParticlePool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ParticlePool.js","sourceRoot":"","sources":["../../src/lib/ParticlePool.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AAEjC;;;GAGG;AACH,MAAqB,YAAY;IAAjC;QAME;;WAEG;QACH,UAAK,GAAoB,IAAI,CAAA;IA0C/B,CAAC;IAxCC;;;;OAIG;IACH,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;QAErC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;QACzB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACnB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,QAAQ,EAAE,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAAkB;QACrB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,YAAY,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAA;IAC1C,CAAC;;AAjDD;;GAEG;AACI,mBAAM,GAAG,IAAI,YAAY,EAAE,AAArB,CAAqB;eAJf,YAAY"}
@@ -1,57 +0,0 @@
1
- import Behaviour from './Behaviour';
2
- import Particle from '../Particle';
3
- /**
4
- * AngularVelocityBehaviour is a subclass of Behaviour and defines the angular velocity of a particle.
5
- *
6
- * @class AngularVelocityBehaviour
7
- * @extends {Behaviour}
8
- */
9
- export default class AngularVelocityBehaviour extends Behaviour {
10
- protected priority: number;
11
- private enabled;
12
- private degrees;
13
- private degreesVariance;
14
- private maxRadius;
15
- private maxRadiusVariance;
16
- private minRadius;
17
- private minRadiusVariance;
18
- /**
19
- * Initializes particle properties of the behaviour
20
- *
21
- * @param {Particle} particle - The current particle
22
- * @memberof AngularVelocityBehaviour
23
- */
24
- init: (particle: Particle) => void;
25
- /**
26
- * Applies the behaviour to the particle
27
- *
28
- * @param {Particle} particle - The current particle
29
- * @param {number} deltaTime - Time elapsed since the last frame
30
- * @memberof AngularVelocityBehaviour
31
- */
32
- apply: (particle: Particle, deltaTime: number) => void;
33
- /**
34
- * Returns the name of the behaviour
35
- *
36
- * @returns {string} Name of the behaviour
37
- * @memberof AngularVelocityBehaviour
38
- */
39
- getName(): string;
40
- /**
41
- * Returns the properties of the behaviour
42
- *
43
- * @returns {object} Properties of the behaviour
44
- * @memberof AngularVelocityBehaviour
45
- */
46
- getProps(): {
47
- enabled: boolean;
48
- degrees: number;
49
- degreesVariance: number;
50
- maxRadius: number;
51
- maxRadiusVariance: number;
52
- minRadius: number;
53
- minRadiusVariance: number;
54
- priority: number;
55
- name: string;
56
- };
57
- }
@@ -1,87 +0,0 @@
1
- import Behaviour from './Behaviour';
2
- import math from '../util/maths';
3
- import BehaviourNames from './BehaviourNames';
4
- /**
5
- * AngularVelocityBehaviour is a subclass of Behaviour and defines the angular velocity of a particle.
6
- *
7
- * @class AngularVelocityBehaviour
8
- * @extends {Behaviour}
9
- */
10
- export default class AngularVelocityBehaviour extends Behaviour {
11
- constructor() {
12
- super(...arguments);
13
- this.priority = 100;
14
- this.enabled = false;
15
- this.degrees = 0;
16
- this.degreesVariance = 0;
17
- this.maxRadius = 0;
18
- this.maxRadiusVariance = 0;
19
- this.minRadius = 0;
20
- this.minRadiusVariance = 0;
21
- /**
22
- * Initializes particle properties of the behaviour
23
- *
24
- * @param {Particle} particle - The current particle
25
- * @memberof AngularVelocityBehaviour
26
- */
27
- this.init = (particle) => {
28
- particle.radiansPerSecond = math.degreesToRadians(this.degrees + this.varianceFrom(this.degreesVariance));
29
- const radiusStart = this.maxRadius + this.varianceFrom(this.maxRadiusVariance);
30
- particle.radiusStart = radiusStart;
31
- particle.radiusEnd = this.minRadius + this.varianceFrom(this.minRadiusVariance);
32
- particle.x = 0;
33
- particle.y = 0;
34
- particle.radius = radiusStart;
35
- particle.angle = 0;
36
- };
37
- /**
38
- * Applies the behaviour to the particle
39
- *
40
- * @param {Particle} particle - The current particle
41
- * @param {number} deltaTime - Time elapsed since the last frame
42
- * @memberof AngularVelocityBehaviour
43
- */
44
- this.apply = (particle, deltaTime) => {
45
- const { radiusStart, radiusEnd, radiansPerSecond, lifeProgress } = particle;
46
- const velocityAngle = particle.velocityAngle + radiansPerSecond * deltaTime;
47
- const radius = radiusStart + (radiusEnd - radiusStart) * lifeProgress;
48
- const movementX = Math.cos(velocityAngle) * radius;
49
- const movementY = Math.sin(velocityAngle) * radius;
50
- particle.velocityAngle = velocityAngle;
51
- particle.radius = radius;
52
- particle.movement.x = movementX;
53
- particle.movement.y = movementY;
54
- particle.x = movementX;
55
- particle.y = movementY;
56
- };
57
- }
58
- /**
59
- * Returns the name of the behaviour
60
- *
61
- * @returns {string} Name of the behaviour
62
- * @memberof AngularVelocityBehaviour
63
- */
64
- getName() {
65
- return BehaviourNames.ANGULAR_BEHAVIOUR;
66
- }
67
- /**
68
- * Returns the properties of the behaviour
69
- *
70
- * @returns {object} Properties of the behaviour
71
- * @memberof AngularVelocityBehaviour
72
- */
73
- getProps() {
74
- return {
75
- enabled: this.enabled,
76
- degrees: this.degrees,
77
- degreesVariance: this.degreesVariance,
78
- maxRadius: this.maxRadius,
79
- maxRadiusVariance: this.maxRadiusVariance,
80
- minRadius: this.minRadius,
81
- minRadiusVariance: this.minRadiusVariance,
82
- priority: this.priority,
83
- name: this.getName(),
84
- };
85
- }
86
- }
87
- //# sourceMappingURL=AngularVelocityBehaviour.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AngularVelocityBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/AngularVelocityBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAA/D;;QACY,aAAQ,GAAW,GAAG,CAAA;QACxB,YAAO,GAAY,KAAK,CAAA;QACxB,YAAO,GAAW,CAAC,CAAA;QACnB,oBAAe,GAAW,CAAC,CAAA;QAC3B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAC7B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAErC;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;YACzG,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC9E,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAA;YAClC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE/E,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAA;YAC7B,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAA;QACpB,CAAC,CAAA;QAED;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAA;YAC3E,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,GAAG,gBAAgB,GAAG,SAAS,CAAA;YAC3E,MAAM,MAAM,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,YAAY,CAAA;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;YAElD,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAA;YACtC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;YACxB,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YAC/B,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YAC/B,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YACtB,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;QACxB,CAAC,CAAA;IA+BH,CAAC;IA7BC;;;;;OAKG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,iBAAiB,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
@@ -1,33 +0,0 @@
1
- import BehaviourParser from '../parser/BehaviourParser';
2
- /**
3
- * Creates a new Behaviour
4
- *
5
- * @class
6
- */
7
- export default class Behaviour {
8
- /**
9
- * A protected property used to store the priority of the behaviour
10
- *
11
- * @protected
12
- */
13
- protected priority: number;
14
- /**
15
- * Calculates the variance from a given value
16
- *
17
- * @param {number} value - a given value
18
- * @returns {number} the variance based on the given value
19
- */
20
- varianceFrom: (value: number) => number;
21
- /**
22
- * Gets the name of the behaviour
23
- *
24
- * @returns {string} The name of the behaviour
25
- */
26
- getName(): void;
27
- /**
28
- * Gets the parser for the behaviour
29
- *
30
- * @returns {BehaviourParser} The parser for the behaviour
31
- */
32
- getParser: () => BehaviourParser;
33
- }
@@ -1,45 +0,0 @@
1
- import BehaviourParser from '../parser/BehaviourParser';
2
- import { Random } from '../util';
3
- /**
4
- * Creates a new Behaviour
5
- *
6
- * @class
7
- */
8
- export default class Behaviour {
9
- constructor() {
10
- /**
11
- * A protected property used to store the priority of the behaviour
12
- *
13
- * @protected
14
- */
15
- this.priority = 0;
16
- /**
17
- * Calculates the variance from a given value
18
- *
19
- * @param {number} value - a given value
20
- * @returns {number} the variance based on the given value
21
- */
22
- this.varianceFrom = (value) => {
23
- if (value === 0)
24
- return 0;
25
- return Random.uniform(-1.0, 1.0) * value;
26
- };
27
- /**
28
- * Gets the parser for the behaviour
29
- *
30
- * @returns {BehaviourParser} The parser for the behaviour
31
- */
32
- this.getParser = () => {
33
- return new BehaviourParser(this);
34
- };
35
- }
36
- /**
37
- * Gets the name of the behaviour
38
- *
39
- * @returns {string} The name of the behaviour
40
- */
41
- getName() {
42
- throw new Error('This method has to be overridden in subclass');
43
- }
44
- }
45
- //# sourceMappingURL=Behaviour.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Behaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/Behaviour.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEhC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAA9B;QACE;;;;WAIG;QACO,aAAQ,GAAG,CAAC,CAAA;QAEtB;;;;;WAKG;QACH,iBAAY,GAAG,CAAC,KAAa,EAAE,EAAE;YAC/B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAA;YACzB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;QAC1C,CAAC,CAAA;QAWD;;;;WAIG;QACH,cAAS,GAAG,GAAG,EAAE;YACf,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC,CAAA;IACH,CAAC;IAjBC;;;;OAIG;IACH,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;CAUF"}
@@ -1,11 +0,0 @@
1
- declare const _default: {
2
- ANGULAR_BEHAVIOUR: string;
3
- LIFE_BEHAVIOUR: string;
4
- COLOR_BEHAVIOUR: string;
5
- POSITION_BEHAVIOUR: string;
6
- SIZE_BEHAVIOUR: string;
7
- EMIT_DIRECTION: string;
8
- ROTATION_BEHAVIOUR: string;
9
- TURBULENCE_BEHAVIOUR: string;
10
- };
11
- export default _default;
@@ -1,11 +0,0 @@
1
- export default {
2
- ANGULAR_BEHAVIOUR: 'AngularVelocityBehaviour',
3
- LIFE_BEHAVIOUR: 'LifeBehaviour',
4
- COLOR_BEHAVIOUR: 'ColorBehaviour',
5
- POSITION_BEHAVIOUR: 'PositionBehaviour',
6
- SIZE_BEHAVIOUR: 'SizeBehaviour',
7
- EMIT_DIRECTION: 'EmitDirectionBehaviour',
8
- ROTATION_BEHAVIOUR: 'RotationBehaviour',
9
- TURBULENCE_BEHAVIOUR: 'TurbulenceBehaviour',
10
- };
11
- //# sourceMappingURL=BehaviourNames.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BehaviourNames.js","sourceRoot":"","sources":["../../../src/lib/behaviour/BehaviourNames.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,iBAAiB,EAAE,0BAA0B;IAC7C,cAAc,EAAE,eAAe;IAC/B,eAAe,EAAE,gBAAgB;IACjC,kBAAkB,EAAE,mBAAmB;IACvC,cAAc,EAAE,eAAe;IAC/B,cAAc,EAAE,wBAAwB;IACxC,kBAAkB,EAAE,mBAAmB;IACvC,oBAAoB,EAAE,qBAAqB;CAC5C,CAAA"}
@@ -1,45 +0,0 @@
1
- import { Color } from '../util';
2
- import Behaviour from './Behaviour';
3
- import Particle from '../Particle';
4
- export default class ColorBehaviour extends Behaviour {
5
- enabled: boolean;
6
- priority: number;
7
- start: Color;
8
- end: Color;
9
- startVariance: Color;
10
- endVariance: Color;
11
- sinus: boolean;
12
- init: (particle: Particle) => void;
13
- apply: (particle: Particle) => void;
14
- getName(): string;
15
- getProps(): {
16
- enabled: boolean;
17
- priority: number;
18
- start: {
19
- _r: number;
20
- _g: number;
21
- _b: number;
22
- _alpha: number;
23
- };
24
- end: {
25
- _r: number;
26
- _g: number;
27
- _b: number;
28
- _alpha: number;
29
- };
30
- startVariance: {
31
- _r: number;
32
- _g: number;
33
- _b: number;
34
- _alpha: number;
35
- };
36
- endVariance: {
37
- _r: number;
38
- _g: number;
39
- _b: number;
40
- _alpha: number;
41
- };
42
- sinus: boolean;
43
- name: string;
44
- };
45
- }
@@ -1,77 +0,0 @@
1
- import { Color } from '../util';
2
- import Behaviour from './Behaviour';
3
- import BehaviourNames from './BehaviourNames';
4
- export default class ColorBehaviour extends Behaviour {
5
- constructor() {
6
- super(...arguments);
7
- this.enabled = false;
8
- this.priority = 0;
9
- this.start = new Color();
10
- this.end = new Color();
11
- this.startVariance = new Color(0, 0, 0, 0);
12
- this.endVariance = new Color(0, 0, 0, 0);
13
- this.sinus = false;
14
- this.init = (particle) => {
15
- particle.colorStart.copyFrom(this.start);
16
- particle.colorStart.r += this.varianceFrom(this.startVariance.r);
17
- particle.colorStart.g += this.varianceFrom(this.startVariance.g);
18
- particle.colorStart.b += this.varianceFrom(this.startVariance.b);
19
- particle.colorStart.alpha += this.varianceFrom(this.startVariance.alpha);
20
- particle.colorEnd.copyFrom(this.end);
21
- particle.colorEnd.r += this.varianceFrom(this.endVariance.r);
22
- particle.colorEnd.g += this.varianceFrom(this.endVariance.g);
23
- particle.colorEnd.b += this.varianceFrom(this.endVariance.b);
24
- particle.colorEnd.alpha += this.varianceFrom(this.endVariance.alpha);
25
- particle.color.copyFrom(particle.colorStart);
26
- };
27
- this.apply = (particle) => {
28
- const { colorStart, lifeProgress, colorEnd } = particle;
29
- particle.color.copyFrom(colorStart);
30
- particle.color.r += (colorEnd.r - colorStart.r) * lifeProgress;
31
- particle.color.g += (colorEnd.g - colorStart.g) * lifeProgress;
32
- particle.color.b += (colorEnd.b - colorStart.b) * lifeProgress;
33
- if (!this.sinus) {
34
- particle.color.alpha += (colorEnd.alpha - colorStart.alpha) * lifeProgress;
35
- }
36
- else {
37
- particle.color.alpha = Math.sin(lifeProgress * 3.1);
38
- }
39
- };
40
- }
41
- getName() {
42
- return BehaviourNames.COLOR_BEHAVIOUR;
43
- }
44
- getProps() {
45
- return {
46
- enabled: this.enabled,
47
- priority: this.priority,
48
- start: {
49
- _r: this.start.r,
50
- _g: this.start.g,
51
- _b: this.start.b,
52
- _alpha: this.start.alpha,
53
- },
54
- end: {
55
- _r: this.end.r,
56
- _g: this.end.g,
57
- _b: this.end.b,
58
- _alpha: this.end.alpha,
59
- },
60
- startVariance: {
61
- _r: this.startVariance.r,
62
- _g: this.startVariance.g,
63
- _b: this.startVariance.b,
64
- _alpha: this.startVariance.alpha,
65
- },
66
- endVariance: {
67
- _r: this.endVariance.r,
68
- _g: this.endVariance.g,
69
- _b: this.endVariance.b,
70
- _alpha: this.endVariance.alpha,
71
- },
72
- sinus: this.sinus,
73
- name: this.getName(),
74
- };
75
- }
76
- }
77
- //# sourceMappingURL=ColorBehaviour.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/ColorBehaviour.ts"],"names":[],"mappings":"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"}