11var Class = require ( '../../utils/Class' ) ;
22var Components = require ( '../components' ) ;
33var GameObject = require ( '../GameObject' ) ;
4+ var List = require ( '../../structs/List' ) ;
45var ParticleEmitter = require ( './ParticleEmitter' ) ;
56var Render = require ( './ParticleManagerRender' ) ;
67
@@ -9,6 +10,7 @@ var ParticleEmitterManager = new Class({
910 Extends : GameObject ,
1011
1112 Mixins : [
13+ Components . Depth ,
1214 Components . RenderTarget ,
1315 Components . Visible ,
1416 Render
@@ -38,7 +40,7 @@ var ParticleEmitterManager = new Class({
3840
3941 this . setTexture ( texture , frame ) ;
4042
41- this . emitters = [ ] ;
43+ this . emitters = new List ( this ) ;
4244
4345 if ( emitters !== undefined )
4446 {
@@ -108,16 +110,36 @@ var ParticleEmitterManager = new Class({
108110
109111 addEmitter : function ( emitter )
110112 {
111- this . emitters . push ( emitter ) ;
112-
113- return emitter ;
113+ return this . emitters . add ( emitter ) ;
114114 } ,
115115
116116 createEmitter : function ( config )
117117 {
118118 return this . addEmitter ( new ParticleEmitter ( this , config ) ) ;
119119 } ,
120120
121+ emit : function ( count , x , y )
122+ {
123+ var emitters = this . emitters . list ;
124+
125+ for ( var i = 0 ; i < emitters . length ; i ++ )
126+ {
127+ var emitter = emitters [ i ] ;
128+
129+ if ( emitter . active )
130+ {
131+ emitter . emit ( count , x , y ) ;
132+ }
133+ }
134+
135+ return this ;
136+ } ,
137+
138+ emitAt : function ( x , y , count )
139+ {
140+ return this . emit ( count , x , y ) ;
141+ } ,
142+
121143 pause : function ( )
122144 {
123145 this . active = false ;
@@ -137,7 +159,7 @@ var ParticleEmitterManager = new Class({
137159 // Scale the delta
138160 delta *= this . timeScale ;
139161
140- var emitters = this . emitters ;
162+ var emitters = this . emitters . list ;
141163
142164 for ( var i = 0 ; i < emitters . length ; i ++ )
143165 {
0 commit comments