Esempio n. 1
0
void SpritePackerHelper::EnumerateSpritesForParticleEmitter(ParticleEmitter* emitter, Map<String, Sprite *> &sprites)
{
	if (!emitter)
	{
		return;
	}
	
	Vector<ParticleLayer*> & layers = emitter->GetLayers();
	int32 layersCount = layers.size();
	for (int il = 0; il < layersCount; ++il)
	{
		ParticleLayer* curLayer = layers[il];
		Sprite *sprite = curLayer->GetSprite();
		if (sprite)
		{
			sprites[sprite->GetRelativePathname().GetAbsolutePathname()] = sprite;
		}
		
		// Superemitter layers might have inner emitter with its own sprites.
		if (curLayer->GetInnerEmitter())
		{
			EnumerateSpritesForParticleEmitter(curLayer->GetInnerEmitter(), sprites);
		}
	}
}