Search in sources :

Example 1 with ModelInfluencer

use of com.badlogic.gdx.graphics.g3d.particles.influencers.ModelInfluencer in project libgdx by libgdx.

the class FlameMain method addInfluencer.

protected void addInfluencer(Class<Influencer> type, ParticleController controller) {
    if (controller.findInfluencer(type) != null)
        return;
    try {
        controller.end();
        Influencer newInfluencer = type.newInstance();
        boolean replaced = false;
        if (ColorInfluencer.class.isAssignableFrom(type)) {
            replaced = controller.replaceInfluencer(ColorInfluencer.class, (ColorInfluencer) newInfluencer);
        } else if (RegionInfluencer.class.isAssignableFrom(type)) {
            replaced = controller.replaceInfluencer(RegionInfluencer.class, (RegionInfluencer) newInfluencer);
        } else if (ModelInfluencer.class.isAssignableFrom(type)) {
            ModelInfluencer newModelInfluencer = (ModelInfluencer) newInfluencer;
            ModelInfluencer currentInfluencer = (ModelInfluencer) controller.findInfluencer(ModelInfluencer.class);
            if (currentInfluencer != null) {
                newModelInfluencer.models.add(currentInfluencer.models.first());
            }
            replaced = controller.replaceInfluencer(ModelInfluencer.class, (ModelInfluencer) newInfluencer);
        } else if (ParticleControllerInfluencer.class.isAssignableFrom(type)) {
            ParticleControllerInfluencer newModelInfluencer = (ParticleControllerInfluencer) newInfluencer;
            ParticleControllerInfluencer currentInfluencer = (ParticleControllerInfluencer) controller.findInfluencer(ParticleControllerInfluencer.class);
            if (currentInfluencer != null) {
                newModelInfluencer.templates.add(currentInfluencer.templates.first());
            }
            replaced = controller.replaceInfluencer(ParticleControllerInfluencer.class, (ParticleControllerInfluencer) newInfluencer);
        }
        if (!replaced) {
            if (getControllerType() != ControllerType.ParticleController)
                controller.influencers.add(newInfluencer);
            else {
                Influencer finalizer = controller.influencers.pop();
                controller.influencers.add(newInfluencer);
                controller.influencers.add(finalizer);
            }
        }
        controller.init();
        effect.start();
        reloadRows();
    } catch (Exception e1) {
        e1.printStackTrace();
    }
}
Also used : ModelInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ModelInfluencer) SpawnInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.SpawnInfluencer) ScaleInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ScaleInfluencer) ParticleControllerInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ParticleControllerInfluencer) DynamicsInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.DynamicsInfluencer) RegionInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.RegionInfluencer) ParticleControllerFinalizerInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ParticleControllerFinalizerInfluencer) Influencer(com.badlogic.gdx.graphics.g3d.particles.influencers.Influencer) ModelInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ModelInfluencer) ColorInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ColorInfluencer) ColorInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ColorInfluencer) ParticleControllerInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.ParticleControllerInfluencer) RegionInfluencer(com.badlogic.gdx.graphics.g3d.particles.influencers.RegionInfluencer)

Aggregations

ColorInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.ColorInfluencer)1 DynamicsInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.DynamicsInfluencer)1 Influencer (com.badlogic.gdx.graphics.g3d.particles.influencers.Influencer)1 ModelInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.ModelInfluencer)1 ParticleControllerFinalizerInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.ParticleControllerFinalizerInfluencer)1 ParticleControllerInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.ParticleControllerInfluencer)1 RegionInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.RegionInfluencer)1 ScaleInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.ScaleInfluencer)1 SpawnInfluencer (com.badlogic.gdx.graphics.g3d.particles.influencers.SpawnInfluencer)1