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<RegularEmitter> { 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)); } }