Browse Source

support xtra to hmd

ncannasse 11 years ago
parent
commit
cc998c6a3c
1 changed files with 11 additions and 2 deletions
  1. 11 2
      hxd/res/LocalFileSystem.hx

+ 11 - 2
hxd/res/LocalFileSystem.hx

@@ -21,7 +21,7 @@ private class LocalEntry extends FileEntry {
 		this.name = name;
 		this.relPath = relPath;
 		this.file = file;
-		if( fs.createHMD && extension == "fbx" )
+		if( fs.createHMD && (extension == "fbx" || extension == "xtra") )
 			convertToHMD();
 		else if( fs.createXBX && extension == "fbx" )
 			convertToXBX();
@@ -34,9 +34,18 @@ private class LocalEntry extends FileEntry {
 	function convertToHMD() {
 		function getHMD() {
 			var fbx = null;
-			try fbx = hxd.fmt.fbx.Parser.parse(getBytes().toString()) catch( e : Dynamic ) throw Std.string(e) + " in " + relPath;
+			var content;
+			if( extension == "xtra" ) {
+				fs.createHMD = false;
+				content = fs.get(relPath.substr(0, relPath.length - 4) + "FBX").getBytes();
+				fs.createHMD = true;
+			} else
+				content = getBytes();
+			try fbx = hxd.fmt.fbx.Parser.parse(content.toString()) catch( e : Dynamic ) throw Std.string(e) + " in " + relPath;
 			var hmdout = new hxd.fmt.fbx.HMDOut();
 			hmdout.load(fbx);
+			if( extension == "xtra" )
+				hmdout.loadXtra(getBytes().toString());
 			var hmd = hmdout.toHMD(null, !StringTools.startsWith(relPath, "Anim_"));
 			var out = new haxe.io.BytesOutput();
 			new hxd.fmt.hmd.Writer(out).write(hmd);