ParticleEffect pe = new ParticleEffect(); pe.load(Gdx.files.internal("data/particle/particle.p"), Gdx.files.internal("data/particle")); pe.setPosition(x, y); float pScale = 0.2f; float scaling = pe.getEmitters().get(0).getScale().getHighMax(); pe.getEmitters().get(0).getScale().setHigh(scaling * pScale); scaling = pe.getEmitters().get(0).getScale().getLowMax(); pe.getEmitters().get(0).getScale().setLow(scaling * pScale); scaling = pe.getEmitters().get(0).getVelocity().getHighMax(); pe.getEmitters().get(0).getVelocity().setHigh(scaling * pScale); scaling = pe.getEmitters().get(0).getVelocity().getLowMax(); pe.getEmitters().get(0).getVelocity().setLow(scaling * pScale);
public ParticleEmitter getEmitter () { return effect.getEmitters().get(effectPanel.editIndex); }
public ParticleEmitter getEmitter () { return effect.getEmitters().get(effectPanel.editIndex); }
void deleteEmitter () { if (editor.effect.getEmitters().size == 1) return; int row = emitterTable.getSelectedRow(); if (row == -1) return; if (row <= editIndex) { int oldEditIndex = editIndex; editIndex = Math.max(0, editIndex - 1); if (oldEditIndex == row) editor.reloadRows(); } editor.effect.getEmitters().removeIndex(row); emitterTableModel.removeRow(row); emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex); }
void deleteEmitter () { if (editor.effect.getEmitters().size == 1) return; int row = emitterTable.getSelectedRow(); if (row == -1) return; if (row <= editIndex) { int oldEditIndex = editIndex; editIndex = Math.max(0, editIndex - 1); if (oldEditIndex == row) editor.reloadRows(); } editor.effect.getEmitters().removeIndex(row); emitterTableModel.removeRow(row); emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex); }
void updateSkipCleanupState () { for (ParticleEffect eff : effects) { for (ParticleEmitter e : eff.getEmitters()) e.setCleansUpBlendFunction(!skipCleanup.isChecked()); } }
void duplicateEmitter () { int row = emitterTable.getSelectedRow(); if (row == -1) return; String name = (String)emitterTableModel.getValueAt(row, 0); addEmitter(name, true, new ParticleEmitter(editor.effect.getEmitters().get(row))); }
void duplicateEmitter () { int row = emitterTable.getSelectedRow(); if (row == -1) return; String name = (String)emitterTableModel.getValueAt(row, 0); addEmitter(name, true, new ParticleEmitter(editor.effect.getEmitters().get(row))); }
void emitterChecked (int index, boolean checked) { editor.setEnabled(editor.effect.getEmitters().get(index), checked); editor.effect.start(); }
void emitterChecked (int index, boolean checked) { editor.setEnabled(editor.effect.getEmitters().get(index), checked); editor.effect.start(); }
public boolean touchDown (int x, int y, int pointer, int newParam) { // effect.setPosition(x, Gdx.graphics.getHeight() - y); ParticleEmitter emitter = emitters.get(emitterIndex); particleCount += 100; System.out.println(particleCount); particleCount = Math.max(0, particleCount); if (particleCount > emitter.getMaxParticleCount()) emitter.setMaxParticleCount(particleCount * 2); emitter.getEmission().setHigh(particleCount / emitter.getLife().getHighMax() * 1000); effect.getEmitters().clear(); effect.getEmitters().add(emitter); return false; }
for (ParticleEmitter emitter : editor.effect.getEmitters()) { emitter.setName((String)emitterTableModel.getValueAt(index++, 0)); Array<String> imagePaths = emitter.getImagePaths();
void move (int direction) { if (direction < 0 && editIndex == 0) return; Array<ParticleEmitter> emitters = editor.effect.getEmitters(); if (direction > 0 && editIndex == emitters.size - 1) return; int insertIndex = editIndex + direction; Object name = emitterTableModel.getValueAt(editIndex, 0); emitterTableModel.removeRow(editIndex); ParticleEmitter emitter = emitters.removeIndex(editIndex); emitterTableModel.insertRow(insertIndex, new Object[] {name}); emitters.insert(insertIndex, emitter); editIndex = insertIndex; emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex); }
void move (int direction) { if (direction < 0 && editIndex == 0) return; Array<ParticleEmitter> emitters = editor.effect.getEmitters(); if (direction > 0 && editIndex == emitters.size - 1) return; int insertIndex = editIndex + direction; Object name = emitterTableModel.getValueAt(editIndex, 0); emitterTableModel.removeRow(editIndex); ParticleEmitter emitter = emitters.removeIndex(editIndex); emitterTableModel.insertRow(insertIndex, new Object[] {name}); emitters.insert(insertIndex, emitter); editIndex = insertIndex; emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex); }
effect.loadEmitters(Gdx.files.absolute(effectFile.getAbsolutePath())); if (mergeIntoCurrent){ for (ParticleEmitter emitter : effect.getEmitters()){ addEmitter(emitter.getName(), false, emitter); return; for (ParticleEmitter emitter : editor.effect.getEmitters()) { emitter.setPosition(editor.worldCamera.viewportWidth / 2, editor.worldCamera.viewportHeight / 2); emitterTableModel.addRow(new Object[] {emitter.getName(), true});
private void addEmitter (String name, boolean select, final ParticleEmitter emitter) { Array<ParticleEmitter> emitters = editor.effect.getEmitters(); if (emitters.size == 0) emitter.setPosition(editor.worldCamera.viewportWidth / 2, editor.worldCamera.viewportHeight / 2); else { ParticleEmitter p = emitters.get(0); emitter.setPosition(p.getX(), p.getY()); } emitters.add(emitter); emitterTableModel.addRow(new Object[] {name, true}); if (select) { editor.reloadRows(); int row = emitterTableModel.getRowCount() - 1; emitterTable.getSelectionModel().setSelectionInterval(row, row); } }
private void addEmitter (String name, boolean select, final ParticleEmitter emitter) { Array<ParticleEmitter> emitters = editor.effect.getEmitters(); if (emitters.size == 0) emitter.setPosition(editor.worldCamera.viewportWidth / 2, editor.worldCamera.viewportHeight / 2); else { ParticleEmitter p = emitters.get(0); emitter.setPosition(p.getX(), p.getY()); } emitters.add(emitter); emitterTableModel.addRow(new Object[] {name, true}); if (select) { editor.reloadRows(); int row = emitterTableModel.getRowCount() - 1; emitterTable.getSelectionModel().setSelectionInterval(row, row); } }
public void free (PooledEffect effect) { super.free(effect); effect.reset(false); // copy parameters exactly to avoid introducing error if (effect.xSizeScale != this.effect.xSizeScale || effect.ySizeScale != this.effect.ySizeScale || effect.motionScale != this.effect.motionScale){ Array<ParticleEmitter> emitters = effect.getEmitters(); Array<ParticleEmitter> templateEmitters = this.effect.getEmitters(); for (int i=0; i<emitters.size; i++){ ParticleEmitter emitter = emitters.get(i); ParticleEmitter templateEmitter = templateEmitters.get(i); emitter.matchSize(templateEmitter); emitter.matchMotion(templateEmitter); } effect.xSizeScale = this.effect.xSizeScale; effect.ySizeScale = this.effect.ySizeScale; effect.motionScale = this.effect.motionScale; } }
public void free (PooledEffect effect) { super.free(effect); effect.reset(false); // copy parameters exactly to avoid introducing error if (effect.xSizeScale != this.effect.xSizeScale || effect.ySizeScale != this.effect.ySizeScale || effect.motionScale != this.effect.motionScale){ Array<ParticleEmitter> emitters = effect.getEmitters(); Array<ParticleEmitter> templateEmitters = this.effect.getEmitters(); for (int i=0; i<emitters.size; i++){ ParticleEmitter emitter = emitters.get(i); ParticleEmitter templateEmitter = templateEmitters.get(i); emitter.matchSize(templateEmitter); emitter.matchMotion(templateEmitter); } effect.xSizeScale = this.effect.xSizeScale; effect.ySizeScale = this.effect.ySizeScale; effect.motionScale = this.effect.motionScale; } }
public boolean keyDown (int keycode) { ParticleEmitter emitter = emitters.get(emitterIndex); if (keycode == Input.Keys.DPAD_UP) particleCount += 5; else if (keycode == Input.Keys.PLUS) { emitter = new ParticleEmitter(emitter); } else if (keycode == Input.Keys.DPAD_DOWN) particleCount -= 5; else if (keycode == Input.Keys.SPACE) { emitterIndex = (emitterIndex + 1) % emitters.size; emitter = emitters.get(emitterIndex); // if we've previously stopped the emitter reset it if (emitter.isComplete()) emitter.reset(); particleCount = (int)(emitter.getEmission().getHighMax() * emitter.getLife().getHighMax() / 1000f); } else if (keycode == Input.Keys.ENTER) { emitter = emitters.get(emitterIndex); if (emitter.isComplete()) emitter.reset(); else emitter.allowCompletion(); } else return false; particleCount = Math.max(0, particleCount); if (particleCount > emitter.getMaxParticleCount()) emitter.setMaxParticleCount(particleCount * 2); emitter.getEmission().setHigh(particleCount / emitter.getLife().getHighMax() * 1000); effect.getEmitters().clear(); effect.getEmitters().add(emitter); return false; }