From 6ccae5ec4939e331e57e46b5f0eb1eb119fc14f4 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Fri, 17 Nov 2017 13:30:29 +0000 Subject: [PATCH] Particle Manager no longer uses BuildGameObject and instead manages its own addition to the system lists. --- .../particles/ParticleManagerCreator.js | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/v3/src/gameobjects/particles/ParticleManagerCreator.js b/v3/src/gameobjects/particles/ParticleManagerCreator.js index a4cf61dcf..cacc4ad2c 100644 --- a/v3/src/gameobjects/particles/ParticleManagerCreator.js +++ b/v3/src/gameobjects/particles/ParticleManagerCreator.js @@ -1,19 +1,33 @@ -var BuildGameObject = require('../BuildGameObject'); var GameObjectCreator = require('../../scene/plugins/GameObjectCreator'); +var GetFastValue = require('../../utils/object/GetFastValue'); var GetAdvancedValue = require('../../utils/object/GetAdvancedValue'); var ParticleEmitterManager = require('./ParticleEmitterManager'); // When registering a factory function 'this' refers to the GameObjectCreator context. +// +// There are several properties available to use: +// +// this.scene - a reference to the Scene that owns the GameObjectFactory +// this.displayList - a reference to the Display List the Scene owns +// this.updateList - a reference to the Update List the Scene owns GameObjectCreator.register('particles', function (config) { var key = GetAdvancedValue(config, 'key', null); var frame = GetAdvancedValue(config, 'frame', null); - var emitters = GetAdvancedValue(config, 'emitters', null); + var emitters = GetFastValue(config, 'emitters', null); + // frame is optional and can contain the emitters array or object if skipped var manager = new ParticleEmitterManager(this.scene, key, frame, emitters); - BuildGameObject(this.scene, manager, config); + var add = GetFastValue(config, 'add', false); + + if (add) + { + this.displayList.add(manager); + } + + this.updateList.add(manager); return manager; });