perf: slow emitter tick

This commit is contained in:
cha0s 2019-04-25 02:28:54 -05:00
parent 810e449012
commit 4c8ed08099

View File

@ -1,6 +1,7 @@
import {compose} from '@avocado/core';
import {Trait} from '@avocado/entity';
import {Property} from '@avocado/mixins';
import {Ticker} from '@avocado/timing';
const decorate = compose(
)
@ -9,6 +10,13 @@ export class Emitter extends decorate(Trait) {
initialize() {
this.emitters = {};
this.ticker = new Ticker(1 / 10);
this.ticker.on('tick', (elapsed) => {
for (const key in this.emitters) {
const emitter = this.emitters[key];
emitter.tick(elapsed);
}
});
}
hooks() {
@ -18,7 +26,7 @@ export class Emitter extends decorate(Trait) {
return (elapsed) => {
for (const key in this.emitters) {
const emitter = this.emitters[key];
emitter.tick(elapsed);
this.ticker.tick(elapsed);
if (!emitter.hasParticles()) {
delete this.emitters[key];
}
@ -55,10 +63,7 @@ export class Emitter extends decorate(Trait) {
}
renderTick(elapsed) {
for (const key in this.emitters) {
const emitter = this.emitters[key];
emitter.tick(elapsed);
}
this.ticker.tick(elapsed);
}
}