ソースを参照

SDK
- allow setting BlenderKey options for models supported via blender importer

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10288 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

nor..67 12 年 前
コミット
78e001b9d3

+ 17 - 5
jme3-blender/src/com/jme3/gde/blender/filetypes/AbstractBlenderImportDataObject.java

@@ -4,14 +4,15 @@
  */
 package com.jme3.gde.blender.filetypes;
 
+import com.jme3.asset.BlenderKey;
+import com.jme3.asset.ModelKey;
 import com.jme3.gde.blender.BlenderTool;
 import com.jme3.gde.core.assets.ProjectAssetManager;
 import com.jme3.gde.core.assets.SpatialAssetDataObject;
+import com.jme3.gde.core.util.Beans;
 import com.jme3.scene.Spatial;
+import com.jme3.scene.plugins.ogre.OgreMeshKey;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
 import java.util.logging.Level;
 import org.openide.DialogDisplayer;
 import org.openide.NotifyDescriptor;
@@ -63,12 +64,14 @@ public abstract class AbstractBlenderImportDataObject extends SpatialAssetDataOb
             i++;
             blend1File = FileUtil.findBrother(mainFile, BlenderTool.TEMP_SUFFIX + i);
         }
-        String assetKey = mgr.getRelativeAssetPath(outFile.getPath());
+        String assetKeyName = mgr.getRelativeAssetPath(outFile.getPath());
+        BlenderKey key = new BlenderKey(assetKeyName);
+        Beans.copyProperties(key, getAssetKey());
         FileLock lock = null;
         try {
             lock = getPrimaryFile().lock();
             listListener.start();
-            Spatial spatial = mgr.loadModel(assetKey);
+            Spatial spatial = mgr.loadModel(assetKeyName);
             replaceFiles();
             listListener.stop();
             savable = spatial;
@@ -89,6 +92,15 @@ public abstract class AbstractBlenderImportDataObject extends SpatialAssetDataOb
         return null;
     }
 
+    @Override
+    public synchronized ModelKey getAssetKey() {
+        if(super.getAssetKey() instanceof BlenderKey){
+            return (BlenderKey)assetKey;
+        }
+        assetKey = new BlenderKey(super.getAssetKey().getName());
+        return (BlenderKey)assetKey;
+    }
+    
     protected void replaceFiles() {
         for (int i = 0; i < assetList.size(); i++) {
             FileObject fileObject = assetList.get(i);