particle-flux 0.3.0 → 0.4.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/lib/core/Particle.d.ts +6 -6
- package/lib/core/Particle.d.ts.map +1 -1
- package/lib/core/Particle.js +25 -12
- package/lib/core/Particle.js.map +1 -1
- package/lib/core/ParticleContainer.d.ts +14 -4
- package/lib/core/ParticleContainer.d.ts.map +1 -1
- package/lib/core/ParticleContainer.js +65 -19
- package/lib/core/ParticleContainer.js.map +1 -1
- package/lib/core/ParticleEmitter.d.ts +2 -1
- package/lib/core/ParticleEmitter.d.ts.map +1 -1
- package/lib/core/ParticleEmitter.js +2 -3
- package/lib/core/ParticleEmitter.js.map +1 -1
- package/lib/scripts/test-perfomance.js +3 -3
- package/lib/scripts/test-perfomance.js.map +1 -1
- package/lib/types.d.ts +5 -4
- package/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
package/lib/core/Particle.d.ts
CHANGED
|
@@ -2,13 +2,11 @@ import { IParticle, ParticleConfig, Point2d, ViewContainer, ViewParticle, ViewRe
|
|
|
2
2
|
export type UpdateFunction<V> = (lifeTimeNormalizedProgress: number, elapsedDelta: number) => V;
|
|
3
3
|
export declare class Particle implements IParticle {
|
|
4
4
|
private readonly viewContainer;
|
|
5
|
-
|
|
6
|
-
private readonly config;
|
|
7
|
-
view: ViewParticle;
|
|
5
|
+
view: ViewParticle | null;
|
|
8
6
|
speed: number;
|
|
9
7
|
direction: Point2d;
|
|
10
|
-
shouldDestroy: boolean;
|
|
11
8
|
next: IParticle | null;
|
|
9
|
+
private inUse;
|
|
12
10
|
private lifeTimeBehavior;
|
|
13
11
|
private speedBehavior?;
|
|
14
12
|
private alphaBehavior?;
|
|
@@ -19,8 +17,10 @@ export declare class Particle implements IParticle {
|
|
|
19
17
|
private pathFunc?;
|
|
20
18
|
private deltaPath;
|
|
21
19
|
private initialPosition;
|
|
22
|
-
constructor(viewContainer: ViewContainer<ViewParticle
|
|
20
|
+
constructor(viewContainer: ViewContainer<ViewParticle>);
|
|
21
|
+
use(viewRenderFn: ViewRenderFn | ViewRenderFn[], config: ParticleConfig): void;
|
|
23
22
|
update(elapsedDelta: number, deltaMS: number): void;
|
|
24
|
-
|
|
23
|
+
noUse(): void;
|
|
24
|
+
isInUse(): boolean;
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=Particle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Particle.d.ts","sourceRoot":"","sources":["../../src/core/Particle.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAyBvG,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC,CAAC;AAKhG,qBAAa,QAAS,YAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"Particle.d.ts","sourceRoot":"","sources":["../../src/core/Particle.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAyBvG,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC,CAAC;AAKhG,qBAAa,QAAS,YAAW,SAAS;IAuB5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IArBnC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAE1B,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAE9B,OAAO,CAAC,KAAK,CAAU;IAEvB,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,aAAa,CAAC,CAAyB;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAyB;IAC/C,OAAO,CAAC,gBAAgB,CAAC,CAAyB;IAClD,OAAO,CAAC,aAAa,CAAC,CAA0B;IAChD,OAAO,CAAC,aAAa,CAAC,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,CAAe;IAEhC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,eAAe,CAAU;gBAEJ,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC;IAahE,GAAG,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAqG9E,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAwDnD,KAAK,IAAI,IAAI;IAQb,OAAO,IAAI,OAAO;CAG1B"}
|
package/lib/core/Particle.js
CHANGED
|
@@ -21,17 +21,21 @@ const parsePath_1 = require("../utils/parsePath");
|
|
|
21
21
|
const getSpawnPosition_1 = require("./spawn-shapes/getSpawnPosition");
|
|
22
22
|
const constants_1 = require("../constants");
|
|
23
23
|
class Particle {
|
|
24
|
-
constructor(viewContainer
|
|
24
|
+
constructor(viewContainer) {
|
|
25
25
|
this.viewContainer = viewContainer;
|
|
26
|
-
this.viewRenderFn = viewRenderFn;
|
|
27
|
-
this.config = config;
|
|
28
26
|
this.speed = 0;
|
|
29
|
-
this.
|
|
27
|
+
this.deltaPath = { x: 0, y: 0 };
|
|
28
|
+
this.initialPosition = { x: 0, y: 0 };
|
|
29
|
+
this.direction = { x: 0, y: 0 };
|
|
30
30
|
this.next = null;
|
|
31
|
-
this.
|
|
32
|
-
|
|
31
|
+
this.inUse = false;
|
|
32
|
+
this.view = null;
|
|
33
|
+
}
|
|
34
|
+
use(viewRenderFn, config) {
|
|
35
|
+
this.inUse = true;
|
|
36
|
+
this.view = createView(viewRenderFn);
|
|
37
|
+
this.viewContainer.addChild(this.view);
|
|
33
38
|
this.lifeTimeBehavior = (0, LifeTimeBehavior_1.getLifeTimeBehavior)(config.lifeTime || constants_1.DEFAULT_LIFE_TIME_CONFIG);
|
|
34
|
-
this.deltaPath = { x: 0, y: 0 };
|
|
35
39
|
this.initialPosition = config.spawnShape
|
|
36
40
|
? (0, getSpawnPosition_1.getSpawnPosition)(config.spawnShape, config.spawnPosition)
|
|
37
41
|
: config.spawnPosition || { x: 0, y: 0 };
|
|
@@ -114,19 +118,21 @@ class Particle {
|
|
|
114
118
|
if (config.gravity) {
|
|
115
119
|
this.gravityBehavior = (0, ScalarBehavior_1.getScalarBehavior)(config.gravity);
|
|
116
120
|
}
|
|
117
|
-
if (
|
|
118
|
-
this.pathFunc = (0, parsePath_1.parsePath)(
|
|
121
|
+
if (config.path) {
|
|
122
|
+
this.pathFunc = (0, parsePath_1.parsePath)(config.path.path);
|
|
119
123
|
}
|
|
120
124
|
this.update(0, 0);
|
|
121
125
|
}
|
|
122
126
|
update(elapsedDelta, deltaMS) {
|
|
127
|
+
if (!this.inUse || this.view === null)
|
|
128
|
+
return;
|
|
123
129
|
if (this.view.destroyed) {
|
|
124
|
-
this.
|
|
130
|
+
this.noUse();
|
|
125
131
|
return;
|
|
126
132
|
}
|
|
127
133
|
const lifeTimeNormalizedProgress = this.lifeTimeBehavior(deltaMS);
|
|
128
134
|
if (isDead(lifeTimeNormalizedProgress)) {
|
|
129
|
-
this.
|
|
135
|
+
this.noUse();
|
|
130
136
|
return;
|
|
131
137
|
}
|
|
132
138
|
if (this.speedBehavior) {
|
|
@@ -162,8 +168,15 @@ class Particle {
|
|
|
162
168
|
};
|
|
163
169
|
}
|
|
164
170
|
}
|
|
165
|
-
|
|
171
|
+
noUse() {
|
|
172
|
+
if (this.view === null)
|
|
173
|
+
return;
|
|
166
174
|
this.viewContainer.removeChild(this.view);
|
|
175
|
+
this.view = null;
|
|
176
|
+
this.inUse = false;
|
|
177
|
+
}
|
|
178
|
+
isInUse() {
|
|
179
|
+
return this.inUse;
|
|
167
180
|
}
|
|
168
181
|
}
|
|
169
182
|
exports.Particle = Particle;
|
package/lib/core/Particle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/core/Particle.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEjD,sFAAoF;AACpF,oFAAkF;AAClF,0GAAkG;AAClG,0GAAkG;AAClG,oFAAkF;AAClF,2DAAsD;AACtD,2DAAsD;AACtD,wDAAmD;AACnD,iFAA+E;AAC/E,uGAA+F;AAC/F,0GAAkG;AAClG,oFAAkF;AAClF,wGAImE;AACnE,qHAAmH;AACnH,kHAAgH;AAChH,kDAA6C;AAC7C,sEAAiE;AACjE,4CAAsD;AAQtD,MAAa,QAAQ;IAuBnB,
|
|
1
|
+
{"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/core/Particle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
|
-
import { IParticle, IParticleContainer } from '../types';
|
|
1
|
+
import { IParticle, IParticleContainer, ViewContainer, ViewParticle } from '../types';
|
|
2
|
+
import { ConfigManager } from './ConfigManager';
|
|
2
3
|
export declare class ParticleContainer implements IParticleContainer {
|
|
3
|
-
private readonly
|
|
4
|
+
private readonly viewContainer;
|
|
5
|
+
private readonly config;
|
|
4
6
|
headParticle: IParticle | null;
|
|
5
7
|
tailParticle: IParticle | null;
|
|
8
|
+
availableParticleHead: IParticle | null;
|
|
9
|
+
availableParticleTail: IParticle | null;
|
|
6
10
|
private containerParticlesCount;
|
|
7
|
-
constructor(
|
|
8
|
-
|
|
11
|
+
constructor(viewContainer: ViewContainer<ViewParticle>, config: ConfigManager);
|
|
12
|
+
getParticlesArray(): IParticle[];
|
|
13
|
+
getPoolParticlesArray(): IParticle[];
|
|
9
14
|
getParticlesCount(): number;
|
|
10
15
|
update(elapsedDelta: number, deltaMS: number): void;
|
|
11
16
|
clear(): void;
|
|
17
|
+
clearPool(): void;
|
|
12
18
|
addParticle(): IParticle;
|
|
19
|
+
fillPool(count: number): void;
|
|
20
|
+
private addParticleInUsedParticles;
|
|
21
|
+
private addParticleToPool;
|
|
22
|
+
private getParticleFromPool;
|
|
13
23
|
}
|
|
14
24
|
//# sourceMappingURL=ParticleContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleContainer.d.ts","sourceRoot":"","sources":["../../src/core/ParticleContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ParticleContainer.d.ts","sourceRoot":"","sources":["../../src/core/ParticleContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AACpF,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,qBAAa,iBAAkB,YAAW,kBAAkB;IAO9C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAA+B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzF,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,qBAAqB,EAAE,SAAS,GAAG,IAAI,CAAC;IACxC,qBAAqB,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/C,OAAO,CAAC,uBAAuB,CAAS;gBAEX,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,EAAmB,MAAM,EAAE,aAAa;IASxG,iBAAiB,IAAI,SAAS,EAAE;IAchC,qBAAqB,IAAI,SAAS,EAAE;IAepC,iBAAiB,IAAI,MAAM;IAK3B,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAqCnD,KAAK,IAAI,IAAI;IAiBb,SAAS,IAAI,IAAI;IAKjB,WAAW,IAAI,SAAS;IAYxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMpC,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,mBAAmB;CAS5B"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ParticleContainer = void 0;
|
|
4
|
+
const Particle_1 = require("./Particle");
|
|
4
5
|
class ParticleContainer {
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
6
|
+
constructor(viewContainer, config) {
|
|
7
|
+
this.viewContainer = viewContainer;
|
|
8
|
+
this.config = config;
|
|
7
9
|
this.headParticle = null;
|
|
8
10
|
this.tailParticle = null;
|
|
11
|
+
this.availableParticleHead = null;
|
|
12
|
+
this.availableParticleTail = null;
|
|
9
13
|
this.containerParticlesCount = 0;
|
|
10
14
|
}
|
|
11
|
-
|
|
15
|
+
getParticlesArray() {
|
|
12
16
|
const particleList = [];
|
|
13
17
|
let particle = this.headParticle;
|
|
14
18
|
while (particle !== null) {
|
|
@@ -17,49 +21,76 @@ class ParticleContainer {
|
|
|
17
21
|
}
|
|
18
22
|
return particleList;
|
|
19
23
|
}
|
|
24
|
+
getPoolParticlesArray() {
|
|
25
|
+
const particleList = [];
|
|
26
|
+
let particle = this.availableParticleHead;
|
|
27
|
+
while (particle !== null) {
|
|
28
|
+
particleList.push(particle);
|
|
29
|
+
particle = particle.next;
|
|
30
|
+
}
|
|
31
|
+
return particleList;
|
|
32
|
+
}
|
|
20
33
|
getParticlesCount() {
|
|
21
34
|
return this.containerParticlesCount;
|
|
22
35
|
}
|
|
23
36
|
update(elapsedDelta, deltaMS) {
|
|
24
|
-
var _a;
|
|
25
|
-
let particle = this.headParticle;
|
|
26
|
-
let prevParticle = null;
|
|
27
37
|
this.containerParticlesCount = 0;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
38
|
+
let pointer = this.headParticle;
|
|
39
|
+
let prevParticle = null;
|
|
40
|
+
while (pointer !== null) {
|
|
41
|
+
if (!pointer.isInUse()) {
|
|
42
|
+
if (pointer === this.headParticle) {
|
|
32
43
|
this.headParticle = this.headParticle.next;
|
|
33
44
|
}
|
|
34
45
|
else if (prevParticle === null) {
|
|
35
|
-
prevParticle =
|
|
46
|
+
prevParticle = pointer.next;
|
|
36
47
|
}
|
|
37
48
|
else {
|
|
38
|
-
prevParticle.next =
|
|
49
|
+
prevParticle.next = pointer.next;
|
|
39
50
|
}
|
|
51
|
+
const temp = pointer;
|
|
52
|
+
pointer = pointer.next;
|
|
53
|
+
temp.next = null;
|
|
54
|
+
this.addParticleToPool(temp);
|
|
40
55
|
}
|
|
41
56
|
else {
|
|
42
|
-
|
|
43
|
-
prevParticle =
|
|
57
|
+
pointer.update(elapsedDelta, deltaMS);
|
|
58
|
+
prevParticle = pointer;
|
|
44
59
|
this.containerParticlesCount++;
|
|
60
|
+
pointer = pointer.next;
|
|
45
61
|
}
|
|
46
|
-
particle = particle.next;
|
|
47
62
|
}
|
|
48
63
|
this.tailParticle = prevParticle;
|
|
49
64
|
}
|
|
50
65
|
clear() {
|
|
51
|
-
|
|
66
|
+
this.availableParticleHead = this.headParticle;
|
|
67
|
+
this.availableParticleTail = this.tailParticle;
|
|
52
68
|
let particle = this.headParticle;
|
|
53
69
|
while (particle !== null) {
|
|
54
|
-
|
|
70
|
+
particle.noUse();
|
|
55
71
|
particle = particle.next;
|
|
56
72
|
}
|
|
57
73
|
this.headParticle = null;
|
|
58
74
|
this.tailParticle = null;
|
|
59
75
|
this.containerParticlesCount = 0;
|
|
60
76
|
}
|
|
77
|
+
clearPool() {
|
|
78
|
+
this.availableParticleHead = null;
|
|
79
|
+
this.availableParticleTail = null;
|
|
80
|
+
}
|
|
61
81
|
addParticle() {
|
|
62
|
-
|
|
82
|
+
let particle = this.getParticleFromPool() || new Particle_1.Particle(this.viewContainer);
|
|
83
|
+
particle.use(this.config.view, this.config.particleConfig);
|
|
84
|
+
this.addParticleInUsedParticles(particle);
|
|
85
|
+
this.containerParticlesCount++;
|
|
86
|
+
return particle;
|
|
87
|
+
}
|
|
88
|
+
fillPool(count) {
|
|
89
|
+
for (let i = 0; i < count; i++) {
|
|
90
|
+
this.addParticleToPool(new Particle_1.Particle(this.viewContainer));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
addParticleInUsedParticles(particle) {
|
|
63
94
|
if (this.headParticle === null) {
|
|
64
95
|
this.headParticle = this.tailParticle = particle;
|
|
65
96
|
}
|
|
@@ -67,7 +98,22 @@ class ParticleContainer {
|
|
|
67
98
|
this.tailParticle.next = particle;
|
|
68
99
|
this.tailParticle = particle;
|
|
69
100
|
}
|
|
70
|
-
|
|
101
|
+
}
|
|
102
|
+
addParticleToPool(particle) {
|
|
103
|
+
if (this.availableParticleHead === null) {
|
|
104
|
+
this.availableParticleHead = this.availableParticleTail = particle;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.availableParticleTail.next = particle;
|
|
108
|
+
this.availableParticleTail = particle;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
getParticleFromPool() {
|
|
112
|
+
if (this.availableParticleHead === null)
|
|
113
|
+
return null;
|
|
114
|
+
const particle = this.availableParticleHead;
|
|
115
|
+
this.availableParticleHead = this.availableParticleHead.next;
|
|
116
|
+
particle.next = null;
|
|
71
117
|
return particle;
|
|
72
118
|
}
|
|
73
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleContainer.js","sourceRoot":"","sources":["../../src/core/ParticleContainer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ParticleContainer.js","sourceRoot":"","sources":["../../src/core/ParticleContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { IParticle, ParticleFluxConfig, ViewContainer, ViewParticle, ViewRenderFn } from '../types';
|
|
2
|
+
import { ConfigManager } from './ConfigManager';
|
|
2
3
|
export declare class ParticleEmitter<V extends ViewParticle = ViewParticle> {
|
|
4
|
+
readonly config: ConfigManager;
|
|
3
5
|
private currentTime;
|
|
4
6
|
private nextSpawnTime;
|
|
5
7
|
private readonly container;
|
|
6
|
-
private readonly config;
|
|
7
8
|
private readonly ticker;
|
|
8
9
|
constructor(viewContainer: ViewContainer<V>, viewFactory: ViewRenderFn[] | ViewRenderFn, initialConfig: ParticleFluxConfig);
|
|
9
10
|
emitOnce(particlesCount?: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleEmitter.d.ts","sourceRoot":"","sources":["../../src/core/ParticleEmitter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAGT,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ParticleEmitter.d.ts","sourceRoot":"","sources":["../../src/core/ParticleEmitter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAGT,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAK9C,qBAAa,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAChE,SAAgB,MAAM,EAAE,aAAa,CAAC;IAGtC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAG/B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAC/B,WAAW,EAAE,YAAY,EAAE,GAAG,YAAY,EAC1C,aAAa,EAAE,kBAAkB;IAqB5B,QAAQ,CAAC,cAAc,GAAE,MAAU,GAAG,IAAI;IAiB1C,QAAQ,IAAI,IAAI;IAchB,SAAS,IAAI,IAAI;IAKjB,SAAS,IAAI,IAAI;IAIjB,UAAU,IAAI,IAAI;IAQlB,QAAQ,IAAI,IAAI;IAOhB,KAAK,IAAI,IAAI;IAQb,YAAY,IAAI,OAAO;IAIvB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAInD,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5D,iBAAiB,IAAI,MAAM;IAI3B,YAAY,IAAI,SAAS,EAAE;IAKlC,OAAO,CAAC,YAAY,CAuBlB;IAGF,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,iCAAiC;CAQ1C"}
|
|
@@ -4,7 +4,6 @@ exports.ParticleEmitter = void 0;
|
|
|
4
4
|
const ParticleContainer_1 = require("./ParticleContainer");
|
|
5
5
|
const ConfigManager_1 = require("./ConfigManager");
|
|
6
6
|
const Ticker_1 = require("../utils/Ticker");
|
|
7
|
-
const Particle_1 = require("./Particle");
|
|
8
7
|
const RealRandom_1 = require("../utils/random/RealRandom");
|
|
9
8
|
const typeguards_1 = require("../typeguards");
|
|
10
9
|
class ParticleEmitter {
|
|
@@ -27,7 +26,7 @@ class ParticleEmitter {
|
|
|
27
26
|
};
|
|
28
27
|
this.ticker = Ticker_1.Ticker.getInstance();
|
|
29
28
|
this.config = new ConfigManager_1.ConfigManager(initialConfig, viewFactory);
|
|
30
|
-
this.container = new ParticleContainer_1.ParticleContainer(
|
|
29
|
+
this.container = new ParticleContainer_1.ParticleContainer(viewContainer, this.config);
|
|
31
30
|
this.ticker.setCallback(this.handleUpdate);
|
|
32
31
|
this.currentTime = 0;
|
|
33
32
|
this.nextSpawnTime = this.getNextSpawnTime();
|
|
@@ -85,7 +84,7 @@ class ParticleEmitter {
|
|
|
85
84
|
return this.container.getParticlesCount();
|
|
86
85
|
}
|
|
87
86
|
getParticles() {
|
|
88
|
-
return this.container.
|
|
87
|
+
return this.container.getParticlesArray();
|
|
89
88
|
}
|
|
90
89
|
emit() {
|
|
91
90
|
if (this.config.spawnChance !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleEmitter.js","sourceRoot":"","sources":["../../src/core/ParticleEmitter.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AAUtD,mDAA8C;AAC9C,4CAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"ParticleEmitter.js","sourceRoot":"","sources":["../../src/core/ParticleEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ class TestViewContainer {
|
|
|
24
24
|
this.children = this.children.filter((c) => c !== children);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
const
|
|
27
|
+
const emitter = new ParticleEmitter_1.ParticleEmitter(new TestViewContainer(), () => new TestViewParticle(), {
|
|
28
28
|
emitterConfig: {
|
|
29
29
|
autoStart: false,
|
|
30
30
|
},
|
|
@@ -44,8 +44,8 @@ const particleFlux = new ParticleEmitter_1.ParticleEmitter(new TestViewContainer
|
|
|
44
44
|
},
|
|
45
45
|
},
|
|
46
46
|
});
|
|
47
|
-
|
|
47
|
+
emitter.emitOnce(50000);
|
|
48
48
|
const startTime = performance.now();
|
|
49
|
-
|
|
49
|
+
emitter.updateContainer(1, 16.6);
|
|
50
50
|
console.log(performance.now() - startTime);
|
|
51
51
|
//# sourceMappingURL=test-perfomance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-perfomance.js","sourceRoot":"","sources":["../../src/scripts/test-perfomance.ts"],"names":[],"mappings":";;AAAA,6DAAwD;AAGxD,MAAM,gBAAgB;IAAtB;QACE,aAAQ,GAAY,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QACjC,UAAK,GAAY,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QAC9B,UAAK,GAAW,CAAC,CAAC;QAClB,SAAI,GAAoB,QAAQ,CAAC;QACjC,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;QAClB,WAAM,GAAW,CAAC,CAAC;QACnB,cAAS,GAAY,KAAK,CAAC;IAC7B,CAAC;CAAA;AAED,MAAM,iBAAiB;IAGrB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAC,QAAsB;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEM,WAAW,CAAC,QAAsB;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"test-perfomance.js","sourceRoot":"","sources":["../../src/scripts/test-perfomance.ts"],"names":[],"mappings":";;AAAA,6DAAwD;AAGxD,MAAM,gBAAgB;IAAtB;QACE,aAAQ,GAAY,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QACjC,UAAK,GAAY,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QAC9B,UAAK,GAAW,CAAC,CAAC;QAClB,SAAI,GAAoB,QAAQ,CAAC;QACjC,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;QAClB,WAAM,GAAW,CAAC,CAAC;QACnB,cAAS,GAAY,KAAK,CAAC;IAC7B,CAAC;CAAA;AAED,MAAM,iBAAiB;IAGrB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAC,QAAsB;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEM,WAAW,CAAC,QAAsB;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,OAAO,GAAG,IAAI,iCAAe,CAAC,IAAI,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE,EAAE;IACzF,aAAa,EAAE;QACb,SAAS,EAAE,KAAK;KACjB;IACD,cAAc,EAAE;QACd,QAAQ,EAAE;YACR,KAAK,EAAE,MAAM;SACd;QACD,KAAK,EAAE;YACL,KAAK,EAAE,CAAC;SACT;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,GAAG;SACd;QACD,KAAK,EAAE;YACL,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC,CAAC;AAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAExB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AAEpC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEjC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -26,18 +26,19 @@ export interface ViewContainer<U extends ViewParticle> {
|
|
|
26
26
|
export interface IParticleContainer {
|
|
27
27
|
addParticle(): void;
|
|
28
28
|
getParticlesCount(): number;
|
|
29
|
-
|
|
29
|
+
getParticlesArray(): IParticle[];
|
|
30
30
|
clear(): void;
|
|
31
31
|
update(elapsedDelta: number, deltaMS: number): void;
|
|
32
32
|
}
|
|
33
33
|
export interface IParticle {
|
|
34
|
+
use(viewRenderFn: ViewRenderFn | ViewRenderFn[], config: ParticleConfig): void;
|
|
34
35
|
update(elapsedDelta: number, deltaMS: number): void;
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
noUse(): void;
|
|
37
|
+
isInUse(): boolean;
|
|
37
38
|
next: IParticle | null;
|
|
38
39
|
speed: number;
|
|
39
40
|
direction: Point2d;
|
|
40
|
-
view: ViewParticle;
|
|
41
|
+
view: ViewParticle | null;
|
|
41
42
|
}
|
|
42
43
|
export interface ITicker {
|
|
43
44
|
FPS: number;
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAC,mBAAmB,EAAC,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAC,sBAAsB,EAAC,MAAM,4DAA4D,CAAC;AAClG,OAAO,EAAC,sBAAsB,EAAC,MAAM,2DAA2D,CAAC;AACjG,OAAO,EAAC,mBAAmB,EAAC,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAC,kBAAkB,EAAC,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAC,mBAAmB,EAAC,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,UAAU,CAAC;AAGtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,YAAY;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,IAAI,IAAI,CAAC;IACpB,iBAAiB,IAAI,MAAM,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|