
com.badlogic.gdx.tools.flame.RegularEmitterPanel Maven / Gradle / Ivy
The newest version!
package com.badlogic.gdx.tools.flame;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.SwingConstants;
import com.badlogic.gdx.graphics.g3d.particles.emitters.RegularEmitter;
/** @author Inferno */
public class RegularEmitterPanel extends EditorPanel {
CountPanel countPanel;
RangedNumericPanel delayPanel, durationPanel;
ScaledNumericPanel emissionPanel, lifePanel, lifeOffsetPanel;
JCheckBox continuousCheckbox;
public RegularEmitterPanel (FlameMain particleEditor3D, RegularEmitter emitter) {
super(particleEditor3D, "Regular Emitter", "This is a generic emitter used to generate particles regularly.");
initializeComponents(emitter);
setValue(null);
}
private void initializeComponents (RegularEmitter emitter) {
continuousCheckbox = new JCheckBox("Continuous");
continuousCheckbox.setSelected(emitter.isContinuous());
continuousCheckbox.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent event) {
RegularEmitter emitter = (RegularEmitter)editor.getEmitter().emitter;
emitter.setContinuous(continuousCheckbox.isSelected());
}
});
continuousCheckbox.setHorizontalTextPosition(SwingConstants.LEFT);
int i = 0;
addContent(i++, 0, continuousCheckbox, GridBagConstraints.WEST, GridBagConstraints.NONE);
addContent(i++, 0,
countPanel = new CountPanel(editor, "Count", "Min number of particles at all times, max number of particles allowed.",
emitter.minParticleCount, emitter.maxParticleCount));
addContent(i++, 0, delayPanel = new RangedNumericPanel(editor, emitter.getDelay(), "Delay",
"Time from beginning of effect to emission start, in milliseconds.", false));
addContent(i++, 0, durationPanel = new RangedNumericPanel(editor, emitter.getDuration(), "Duration",
"Time particles will be emitted, in milliseconds."));
addContent(i++, 0, emissionPanel = new ScaledNumericPanel(editor, emitter.getEmission(), "Duration", "Emission",
"Number of particles emitted per second."));
addContent(i++, 0, lifePanel = new ScaledNumericPanel(editor, emitter.getLife(), "Duration", "Life",
"Time particles will live, in milliseconds."));
addContent(i++, 0, lifeOffsetPanel = new ScaledNumericPanel(editor, emitter.getLifeOffset(), "Duration", "Life Offset",
"Particle starting life consumed, in milliseconds.", false));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy