All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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