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); } } }
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); } } }
@Override public void handle (int aEventType, Object aEventData) { if(aEventType == FlameMain.EVT_ASSET_RELOADED){ Object[] data = (Object[])aEventData; if(data[0] instanceof ParticleEffect){ ParticleEffect oldEffect = (ParticleEffect) data[0]; int currentCount = value.templates.size; value.templates.removeAll(oldEffect.getControllers(), true); if(value.templates.size != currentCount){ int diff = currentCount - value.templates.size; if(diff > 0){ ParticleEffect newEffect = (ParticleEffect) data[1]; Array<ParticleController> newControllers = newEffect.getControllers(); if(newControllers.size > 0){ for(int i=0, c=Math.min(diff, newControllers.size); i<c; ++i) value.templates.add(newControllers.get(i)); } } else { value.templates.addAll( ((ParticleEffect)editor.assetManager.get(FlameMain.DEFAULT_BILLBOARD_PARTICLE)).getControllers()); } controllerPicker.reloadTemplates(); controllerPicker.setValue(value.templates); editor.restart(); } } } }
@Override public void handle (int aEventType, Object aEventData) { if(aEventType == FlameMain.EVT_ASSET_RELOADED){ Object[] data = (Object[])aEventData; if(data[0] instanceof ParticleEffect){ ParticleEffect oldEffect = (ParticleEffect) data[0]; int currentCount = value.templates.size; value.templates.removeAll(oldEffect.getControllers(), true); if(value.templates.size != currentCount){ int diff = currentCount - value.templates.size; if(diff > 0){ ParticleEffect newEffect = (ParticleEffect) data[1]; Array<ParticleController> newControllers = newEffect.getControllers(); if(newControllers.size > 0){ for(int i=0, c=Math.min(diff, newControllers.size); i<c; ++i) value.templates.add(newControllers.get(i)); } } else { value.templates.addAll( ((ParticleEffect)editor.assetManager.get(FlameMain.DEFAULT_BILLBOARD_PARTICLE)).getControllers()); } controllerPicker.reloadTemplates(); controllerPicker.setValue(value.templates); editor.restart(); } } } }
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(); }
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(); }
private void reloadControllers () { Array<ParticleEffect> effects = new Array<ParticleEffect>(); Array<ParticleController> controllers = new Array<ParticleController>(); editor.assetManager.getAll(ParticleEffect.class, effects); for(ParticleEffect effect : effects){ controllers.addAll(effect.getControllers()); } controllerPicker.setLoadedTemplates(controllers); }
private void reloadControllers () { Array<ParticleEffect> effects = new Array<ParticleEffect>(); Array<ParticleController> controllers = new Array<ParticleController>(); editor.assetManager.getAll(ParticleEffect.class, effects); for(ParticleEffect effect : effects){ controllers.addAll(effect.getControllers()); } controllerPicker.setLoadedTemplates(controllers); }
@Override public void load (AssetManager manager, ResourceData resources) { SaveData data = resources.getSaveData(); Array<IntArray> effectsIndices = data.load("indices"); AssetDescriptor descriptor; Iterator<IntArray> iterator = effectsIndices.iterator(); while ((descriptor = data.loadAsset()) != null) { ParticleEffect effect = (ParticleEffect)manager.get(descriptor); if (effect == null) throw new RuntimeException("Template is null"); Array<ParticleController> effectControllers = effect.getControllers(); IntArray effectIndices = iterator.next(); for (int i = 0, n = effectIndices.size; i < n; i++) { templates.add(effectControllers.get(effectIndices.get(i))); } } } }
@Override public void load (AssetManager manager, ResourceData resources) { SaveData data = resources.getSaveData(); Array<IntArray> effectsIndices = data.load("indices"); AssetDescriptor descriptor; Iterator<IntArray> iterator = effectsIndices.iterator(); while ((descriptor = data.loadAsset()) != null) { ParticleEffect effect = (ParticleEffect)manager.get(descriptor); if (effect == null) throw new RuntimeException("Template is null"); Array<ParticleController> effectControllers = effect.getControllers(); IntArray effectIndices = iterator.next(); for (int i = 0, n = effectIndices.size; i < n; i++) { templates.add(effectControllers.get(effectIndices.get(i))); } } } }
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; }
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; }
public Array<ParticleEffect> getParticleEffects (Array<ParticleController> controllers, Array<ParticleEffect> out) { out.clear(); assetManager.getAll(ParticleEffect.class, out); for(int i=0; i < out.size;){ ParticleEffect effect = out.get(i); Array<ParticleController> effectControllers = effect.getControllers(); boolean remove = true; for(ParticleController controller : controllers){ if(effectControllers.contains(controller, true)){ remove = false; break; } } if(remove){ out.removeIndex(i); continue; } ++i; } return out; }
public Array<ParticleEffect> getParticleEffects (Array<ParticleController> controllers, Array<ParticleEffect> out) { out.clear(); assetManager.getAll(ParticleEffect.class, out); for(int i=0; i < out.size;){ ParticleEffect effect = out.get(i); Array<ParticleController> effectControllers = effect.getControllers(); boolean remove = true; for(ParticleController controller : controllers){ if(effectControllers.contains(controller, true)){ remove = false; break; } } if(remove){ out.removeIndex(i); continue; } ++i; } return out; }
/** 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); }
/** 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 void save (AssetManager manager, ResourceData resources) { SaveData data = resources.createSaveData(); Array<ParticleEffect> effects = manager.getAll(ParticleEffect.class, new Array<ParticleEffect>()); Array<ParticleController> controllers = new Array<ParticleController>(templates); Array<IntArray> effectsIndices = new Array<IntArray>(); for (int i = 0; i < effects.size && controllers.size > 0; ++i) { ParticleEffect effect = effects.get(i); Array<ParticleController> effectControllers = effect.getControllers(); Iterator<ParticleController> iterator = controllers.iterator(); IntArray indices = null; while (iterator.hasNext()) { ParticleController controller = iterator.next(); int index = -1; if ((index = effectControllers.indexOf(controller, true)) > -1) { if (indices == null) { indices = new IntArray(); } iterator.remove(); indices.add(index); } } if (indices != null) { data.saveAsset(manager.getAssetFileName(effect), ParticleEffect.class); effectsIndices.add(indices); } } data.save("indices", effectsIndices); }
@Override public void save (AssetManager manager, ResourceData resources) { SaveData data = resources.createSaveData(); Array<ParticleEffect> effects = manager.getAll(ParticleEffect.class, new Array<ParticleEffect>()); Array<ParticleController> controllers = new Array<ParticleController>(templates); Array<IntArray> effectsIndices = new Array<IntArray>(); for (int i = 0; i < effects.size && controllers.size > 0; ++i) { ParticleEffect effect = effects.get(i); Array<ParticleController> effectControllers = effect.getControllers(); Iterator<ParticleController> iterator = controllers.iterator(); IntArray indices = null; while (iterator.hasNext()) { ParticleController controller = iterator.next(); int index = -1; if ((index = effectControllers.indexOf(controller, true)) > -1) { if (indices == null) { indices = new IntArray(); } iterator.remove(); indices.add(index); } } if (indices != null) { data.saveAsset(manager.getAssetFileName(effect), ParticleEffect.class); effectsIndices.add(indices); } } data.save("indices", effectsIndices); }
new ParticleControllerInfluencer.Single(editor.assetManager.get(FlameMain.DEFAULT_TEMPLATE_PFX, ParticleEffect.class).getControllers().get(0)), spawnSource, scaleInfluencer,
new ParticleControllerInfluencer.Single(editor.assetManager.get(FlameMain.DEFAULT_TEMPLATE_PFX, ParticleEffect.class).getControllers().get(0)), spawnSource, scaleInfluencer,