private void learnFormAssetBundle(string path) { FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); DataReader br = new DataReader(fs); SerializeBundle bundle = new SerializeBundle(); bundle.DeSerialize(br); foreach (var bundleEntry in bundle.entrys) { int version = AssetToolUtility.GetAssetsFileVersion(bundleEntry.assetData); var serializeAssets = SerializeAssetFactory.CreateWithVersion(version); if (serializeAssets != null) { MemoryStream ms = new MemoryStream(bundleEntry.assetData); DataReader dr = new DataReader(ms); serializeAssets.DeSerialize(dr); var assetTypeTreeDB = AssetToolUtility.GenerateTypeTreeDataBase(serializeAssets); if (assetTypeTreeDB != null) { var allType = assetTypeTreeDB.GetAllType(version); foreach (var type in allType) { Console.WriteLine("AddType:Version:{0},ClassID{1},Name:{2}", version, type.Key, type.Value.type); } } typeTreeDatabase = assetTypeTreeDB.Merage(typeTreeDatabase); } else { Debug.LogError("can't deserialize bundle entry " + bundleEntry.name); } fs.Dispose(); } }
public override void run() { extrator = new AssetExtrator(); typeTreeDatabase = AssetToolUtility.LoadTypeTreeDataBase(Resources.TypeTreeDataBasePath); base.run(); AssetToolUtility.SaveTypeTreeDataBase(Resources.TypeTreeDataBasePath, typeTreeDatabase); }
public override void runAssetFile(Asset asset) { if (string.IsNullOrEmpty(OutputDir)) { OutputDir = Directory.GetCurrentDirectory() + "/extractObjects/"; } //try { var assetDB = asset.TypeTreeDatabase; typeTreeDatabase = typeTreeDatabase.Merage(assetDB); var extractMode = AssetExtrator.ExtractMode.Auto; if (mode == 1) { extractMode = AssetExtrator.ExtractMode.OnlyRawBits; } else if (mode == 2) { extractMode = AssetExtrator.ExtractMode.OnlyRawText; } else if (mode == 3) { extractMode = AssetExtrator.ExtractMode.RawTextOrRawBits; } extrator.Extract(asset, typeTreeDatabase, OutputDir, extractMode); //} catch { // Console.WriteLine("Can't extract asset {0}.",asset.GetType()); //} }
public override void run() { TypeTreeDataBase typeTreeDatabase = AssetToolUtility.LoadTypeTreeDataBase(Resources.TypeTreeDataBasePath); var allVertions = typeTreeDatabase.GetAllVersion(); if (version != -1) { if (classID != -1) { if (typeTreeDatabase.Contains(version, classID)) { var typeTree = typeTreeDatabase.GetType(version, classID); Console.WriteLine("Version:{0},ClassID:{1},Type:{2}:\n{3}", version, classID, typeTree.type, typeTree); } else { Console.WriteLine("No Found TypeTree."); } } else { var allTypes = typeTreeDatabase.GetAllType(version); Console.WriteLine("Version:{0} has {1} typetree {2}", version, allVertions.Length, classID); foreach (var kvr in allTypes) { Console.WriteLine("Version:{0},ClassID:{1},Type:{2}:\n{3}", version, kvr.Key, kvr.Value.type, kvr.Value); } } } else { if (classID != -1) { foreach (var version in allVertions) { if (typeTreeDatabase.Contains(version, classID)) { var typeTree = typeTreeDatabase.GetType(version, classID); Console.WriteLine("Version:{0},ClassID:{1},Type:{2}:\n{3}", version, classID, typeTree.type, typeTree); } } } else { foreach (var version in allVertions) { var allTypes = typeTreeDatabase.GetAllType(version); Console.WriteLine("Version:{0} has {1} typetree", version, allVertions.Length); foreach (var kvr in allTypes) { Console.WriteLine("Version:{0},ClassID:{1},Type:{2}:\n{3}", version, kvr.Key, kvr.Value.type, kvr.Value); } } } } }
private void learnFormAssetFile(string path) { FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); DataReader dr = new DataReader(fs); int version = AssetToolUtility.GetAssetsFileVersion(path); var serializeAssets = SerializeAssetFactory.CreateWithVersion(version); serializeAssets.DeSerialize(dr); var assetTypeTreeDB = AssetToolUtility.GenerateTypeTreeDataBase(serializeAssets); typeTreeDatabase = assetTypeTreeDB.Merage(typeTreeDatabase); dr.Close(); fs.Dispose(); }
public override void run() { mSizeDic.Clear(); typeTreeDatabase = AssetToolUtility.LoadTypeTreeDataBase(Resources.TypeTreeDataBasePath); base.run(); AssetToolUtility.SaveTypeTreeDataBase(Resources.TypeTreeDataBasePath, typeTreeDatabase); Console.WriteLine("TotalSize:{0} kb", totalSize / 1024.0f); var sortedDic = mSizeDic.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value); foreach (var kvp in sortedDic) { string className = AssetToolUtility.ClassIDToClassName(kvp.Key); Console.WriteLine("{0,-30} Size:{1,-15}kb {2,-15}%", className, kvp.Value / 1024.0f, (kvp.Value / (float)totalSize) * 100); } }
public override void runAssetFile(Asset asset) { if (string.IsNullOrEmpty(OutputDir)) { OutputDir = Directory.GetCurrentDirectory()+"/extractObjects/"; } //try { var assetDB = asset.TypeTreeDatabase; typeTreeDatabase = typeTreeDatabase.Merage(assetDB); var extractMode = AssetExtrator.ExtractMode.Auto; if (mode == 1) { extractMode = AssetExtrator.ExtractMode.OnlyRawBits; } else if (mode == 2) { extractMode = AssetExtrator.ExtractMode.OnlyRawText; } else if (mode == 3) { extractMode = AssetExtrator.ExtractMode.RawTextOrRawBits; } extrator.Extract(asset, typeTreeDatabase, OutputDir,extractMode); //} catch { // Console.WriteLine("Can't extract asset {0}.",asset.GetType()); //} }
public override void run() { extrator = new AssetExtrator(); db = AssetToolUtility.LoadTypeTreeDataBase(Properties.Resources.TypeTreeDataBasePath); base.run(); }