1 package com.badlogic.gdx.tools.flame; 2 3 import java.awt.GridBagConstraints; 4 import java.awt.Insets; 5 6 import com.badlogic.gdx.graphics.g3d.Model; 7 import com.badlogic.gdx.graphics.g3d.particles.influencers.ModelInfluencer; 8 9 /** @author Inferno */ 10 public class ModelInfluencerPanel extends InfluencerPanel<ModelInfluencer> implements TemplatePickerPanel.Listener<Model>, EventManager.Listener { 11 12 TemplatePickerPanel<Model> pickerPanel; 13 14 public ModelInfluencerPanel (FlameMain editor, ModelInfluencer influencer, boolean single, String name, String desc) { 15 super(editor, influencer, name, desc, true, false); 16 pickerPanel.setMultipleSelectionAllowed(!single); 17 EventManager.get().attach(FlameMain.EVT_ASSET_RELOADED, this); 18 } 19 20 @Override 21 public void setValue (ModelInfluencer value) { 22 super.setValue(value); 23 if(value == null) return; 24 pickerPanel.setValue(value.models); 25 } 26 27 protected void initializeComponents () { 28 super.initializeComponents(); 29 pickerPanel = new TemplatePickerPanel<Model>(editor, null, this, Model.class, new LoaderButton.ModelLoaderButton(editor)); 30 pickerPanel.setIsAlwayShown(true); 31 contentPanel.add(pickerPanel, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 32 0, 0, 6), 0, 0)); 33 } 34 35 @Override 36 public void onTemplateChecked (Model model, boolean isChecked) { 37 editor.restart(); 38 } 39 40 @Override 41 public void handle (int aEventType, Object aEventData) { 42 if(aEventType == FlameMain.EVT_ASSET_RELOADED){ 43 Object[] data = (Object[])aEventData; 44 if(data[0] instanceof Model){ 45 if(value.models.removeValue((Model)data[0], true)){ 46 value.models.add((Model)data[1]); 47 pickerPanel.reloadTemplates(); 48 pickerPanel.setValue(value.models); 49 editor.restart(); 50 } 51 } 52 } 53 } 54 55 } 56