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();
     }
 }
示例#2
0
 public override void run()
 {
     extrator         = new AssetExtrator();
     typeTreeDatabase = AssetToolUtility.LoadTypeTreeDataBase(Resources.TypeTreeDataBasePath);
     base.run();
     AssetToolUtility.SaveTypeTreeDataBase(Resources.TypeTreeDataBasePath, typeTreeDatabase);
 }
示例#3
0
        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());
            //}
        }
示例#4
0
        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);
 }
示例#6
0
        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);
     }
 }
示例#9
0
        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();
        }
示例#10
0
        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());
     //}
 }
示例#12
0
 public override void run()
 {
     extrator = new AssetExtrator();
     db       = AssetToolUtility.LoadTypeTreeDataBase(Properties.Resources.TypeTreeDataBasePath);
     base.run();
 }
 public override void run()
 {
     extrator = new AssetExtrator();
     db = AssetToolUtility.LoadTypeTreeDataBase(Properties.Resources.TypeTreeDataBasePath);
     base.run();
 }