/** @return a copy of this effect, should be used after the particle effect has been loaded. */ public ParticleEffect copy () { return new ParticleEffect(this); }
private void rebuildActiveControllers () { //rebuild list Array<ParticleController> effectControllers = effect.getControllers(); effectControllers.clear(); for(ControllerData controllerData : controllersData){ if(controllerData.enabled) effectControllers.add(controllerData.controller); } //System.out.println("rebuilding active controllers"); effect.init(); effect.start(); }
protected void importEffect () { File file = editor.showFileLoadDialog(); if(file != null){ ParticleEffect effect; if( (effect = editor.openEffect(file, false)) != null){ for(ParticleController controller : effect.getControllers()) addEmitter(controller, false); editIndex = 0; emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex); } } }
public ParticleEffect openEffect (File file, boolean replaceCurrentWorkspace) { try { ParticleEffect loadedEffect = load(file.getAbsolutePath(), ParticleEffect.class, null, new ParticleEffectLoader.ParticleEffectLoadParameter(particleSystem.getBatches())); loadedEffect = loadedEffect.copy(); loadedEffect.init(); if(replaceCurrentWorkspace){ effect = loadedEffect; controllersData.clear(); particleSystem.removeAll(); particleSystem.add(effect); for(ParticleController controller : effect.getControllers()) controllersData.add(new ControllerData(controller)); rebuildActiveControllers(); } reloadRows(); return loadedEffect; } catch (Exception ex) { System.out.println("Error loading effect: " + file.getAbsolutePath()); ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Error opening effect."); } return null; }
ParticleEffect originalEffect = assets.getAsset(bp.pfx, ParticleEffect.class); ParticleEffect effect = originalEffect.copy(); particleEffects.add(effect); effect.translate(bp.position); effect.rotate(Vector3.X, 180); effect.init(); effect.start(); ParticleSystem particleSystem = ParticleSystem.get(); particleSystem.add(effect);
/** Saves the effect to the given file contained in the passed in parameter. */ public void save (ParticleEffect effect, ParticleEffectSaveParameter parameter) throws IOException { ResourceData<ParticleEffect> data = new ResourceData<ParticleEffect>(effect); // effect assets effect.save(parameter.manager, data); // Batches configurations if (parameter.batches != null) { for (ParticleBatch<?> batch : parameter.batches) { boolean save = false; for (ParticleController controller : effect.getControllers()) { if (controller.renderer.isCompatible(batch)) { save = true; break; } } if (save) batch.save(parameter.manager, data); } } // save Json json = new Json(); json.toJson(data, parameter.file); }
@Override public ParticleEffect loadSync (AssetManager manager, String fileName, FileHandle file, ParticleEffectLoadParameter parameter) { ResourceData<ParticleEffect> effectData = null; synchronized (items) { for (int i = 0; i < items.size; ++i) { ObjectMap.Entry<String, ResourceData<ParticleEffect>> entry = items.get(i); if (entry.key.equals(fileName)) { effectData = entry.value; items.removeIndex(i); break; } } } effectData.resource.load(manager, effectData); if (parameter != null) { if (parameter.batches != null) { for (ParticleBatch<?> batch : parameter.batches) { batch.load(manager, effectData); } } effectData.resource.setBatch(parameter.batches); } return effectData.resource; }
effect.start(); reloadRows(); } catch (Exception e1) {
public void update (float deltaTime) { for (ParticleEffect effect : effects) { effect.update(deltaTime); } } public void updateAndDraw(float deltaTime) {
/** Draws all the particle effects. Call {@link #begin()} before this method and {@link #end()} after. */ public void draw () { for (ParticleEffect effect : effects) { effect.draw(); } }
protected void importEffect () { File file = editor.showFileLoadDialog(); if(file != null){ ParticleEffect effect; if( (effect = editor.openEffect(file, false)) != null){ for(ParticleController controller : effect.getControllers()) addEmitter(controller, false); editIndex = 0; emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex); } } }
public ParticleEffect openEffect (File file, boolean replaceCurrentWorkspace) { try { ParticleEffect loadedEffect = load(file.getAbsolutePath(), ParticleEffect.class, null, new ParticleEffectLoader.ParticleEffectLoadParameter(particleSystem.getBatches())); loadedEffect = loadedEffect.copy(); loadedEffect.init(); if(replaceCurrentWorkspace){ effect = loadedEffect; controllersData.clear(); particleSystem.removeAll(); particleSystem.add(effect); for(ParticleController controller : effect.getControllers()) controllersData.add(new ControllerData(controller)); rebuildActiveControllers(); } reloadRows(); return loadedEffect; } catch (Exception ex) { System.out.println("Error loading effect: " + file.getAbsolutePath()); ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Error opening effect."); } return null; }
/** Saves the effect to the given file contained in the passed in parameter. */ public void save (ParticleEffect effect, ParticleEffectSaveParameter parameter) throws IOException { ResourceData<ParticleEffect> data = new ResourceData<ParticleEffect>(effect); // effect assets effect.save(parameter.manager, data); // Batches configurations if (parameter.batches != null) { for (ParticleBatch<?> batch : parameter.batches) { boolean save = false; for (ParticleController controller : effect.getControllers()) { if (controller.renderer.isCompatible(batch)) { save = true; break; } } if (save) batch.save(parameter.manager, data); } } // save Json json = new Json(); json.toJson(data, parameter.file); }
@Override public ParticleEffect loadSync (AssetManager manager, String fileName, FileHandle file, ParticleEffectLoadParameter parameter) { ResourceData<ParticleEffect> effectData = null; synchronized (items) { for (int i = 0; i < items.size; ++i) { ObjectMap.Entry<String, ResourceData<ParticleEffect>> entry = items.get(i); if (entry.key.equals(fileName)) { effectData = entry.value; items.removeIndex(i); break; } } } effectData.resource.load(manager, effectData); if (parameter != null) { if (parameter.batches != null) { for (ParticleBatch<?> batch : parameter.batches) { batch.load(manager, effectData); } } effectData.resource.setBatch(parameter.batches); } return effectData.resource; }
effect.start(); reloadRows(); } catch (Exception e1) {
/** Updates the simulation of all effects */ public void update () { for (ParticleEffect effect : effects) { effect.update(); } }
/** Draws all the particle effects. Call {@link #begin()} before this method and {@link #end()} after. */ public void draw () { for (ParticleEffect effect : effects) { effect.draw(); } }