
com.badlogic.gdx.tools.flame.ModelInfluencerPanel Maven / Gradle / Ivy
The newest version!
package com.badlogic.gdx.tools.flame;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import com.badlogic.gdx.graphics.g3d.Model;
import com.badlogic.gdx.graphics.g3d.particles.influencers.ModelInfluencer;
/** @author Inferno */
public class ModelInfluencerPanel extends InfluencerPanel
implements TemplatePickerPanel.Listener, EventManager.Listener {
TemplatePickerPanel pickerPanel;
public ModelInfluencerPanel (FlameMain editor, ModelInfluencer influencer, boolean single, String name, String desc) {
super(editor, influencer, name, desc, true, false);
pickerPanel.setMultipleSelectionAllowed(!single);
EventManager.get().attach(FlameMain.EVT_ASSET_RELOADED, this);
}
@Override
public void setValue (ModelInfluencer value) {
super.setValue(value);
if (value == null) return;
pickerPanel.setValue(value.models);
}
protected void initializeComponents () {
super.initializeComponents();
pickerPanel = new TemplatePickerPanel(editor, null, this, Model.class, new LoaderButton.ModelLoaderButton(editor));
pickerPanel.setIsAlwayShown(true);
contentPanel.add(pickerPanel, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0, 0, 0, 6), 0, 0));
}
@Override
public void onTemplateChecked (Model model, boolean isChecked) {
editor.restart();
}
@Override
public void handle (int aEventType, Object aEventData) {
if (aEventType == FlameMain.EVT_ASSET_RELOADED) {
Object[] data = (Object[])aEventData;
if (data[0] instanceof Model) {
if (value.models.removeValue((Model)data[0], true)) {
value.models.add((Model)data[1]);
pickerPanel.reloadTemplates();
pickerPanel.setValue(value.models);
editor.restart();
}
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy