Use location override for loaded JME files.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@13 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
@@ -40,6 +40,9 @@ import java.io.FileOutputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
@@ -88,6 +91,7 @@ import com.jme.scene.state.WireframeState;
|
|||||||
import com.jme.scene.state.ZBufferState;
|
import com.jme.scene.state.ZBufferState;
|
||||||
import com.jme.system.JmeException;
|
import com.jme.system.JmeException;
|
||||||
import com.jme.util.LoggingSystem;
|
import com.jme.util.LoggingSystem;
|
||||||
|
import com.jme.util.TextureKey;
|
||||||
import com.jme.util.TextureManager;
|
import com.jme.util.TextureManager;
|
||||||
import com.jme.util.export.binary.BinaryImporter;
|
import com.jme.util.export.binary.BinaryImporter;
|
||||||
import com.jme.util.geom.Debugger;
|
import com.jme.util.geom.Debugger;
|
||||||
@@ -681,6 +685,13 @@ public class ModelViewer extends JmeCanvasApp
|
|||||||
*/
|
*/
|
||||||
protected void importFile (File file)
|
protected void importFile (File file)
|
||||||
{
|
{
|
||||||
|
final File parent = file.getParentFile();
|
||||||
|
TextureKey.setLocationOverride(new TextureKey.LocationOverride() {
|
||||||
|
public URL getLocation (String name)
|
||||||
|
throws MalformedURLException {
|
||||||
|
return new URL(parent.toURL(), name);
|
||||||
|
}
|
||||||
|
});
|
||||||
try {
|
try {
|
||||||
new ImportDialog(file,
|
new ImportDialog(file,
|
||||||
(Spatial)BinaryImporter.getInstance().load(
|
(Spatial)BinaryImporter.getInstance().load(
|
||||||
@@ -690,6 +701,7 @@ public class ModelViewer extends JmeCanvasApp
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
_status.setText(_msg.get("m.load_error", file, e));
|
_status.setText(_msg.get("m.load_error", file, e));
|
||||||
}
|
}
|
||||||
|
TextureKey.setLocationOverride(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user