jaypar

Test

Jan 31st, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.17 KB | None | 0 0
  1. private static void GenerateGameObjectList()
  2.         {
  3.             manager = new AssetsManager();
  4.             instance = manager.LoadAssetsFile(new FileStream(FindPath(), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite), true);
  5.             manager.UpdateDependencies();
  6.             ClassDatabaseFile ex = manager.LoadClassPackage(new FileStream("Nitrox.dat", FileMode.Open));
  7.             Log.Info(ex.classes != null);
  8.  
  9.             List<AssetFileInfoEx> localGameObjects = instance.table.GetAssetsOfType(0x00000001); // 0x00000001 = GameObject ID
  10.             foreach (AssetFileInfoEx afi in localGameObjects)
  11.             {
  12.                 AssetTypeValueField componentArray = manager.GetATI(instance.file, afi).GetBaseField().Get("m_Component").Get("Array");
  13.                 foreach (AssetTypeValueField field in componentArray.pChildren)
  14.                 {
  15.                     AssetTypeValueField componentRef = field.Get("component");
  16.                     AssetsManager.AssetExternal ext = manager.GetExtAsset(instance, componentRef);
  17.                     if (ext.info.curFileType == MONOBEHAVIOUR_CLASS_ID)
  18.                     {
  19.                         AssetTypeValueField tmpField = MonoClass.GetMonoBaseField(manager, instance, ext.info, Path.Combine(Path.GetDirectoryName(instance.path), "Managed"));
  20.                         AssetTypeValueField test = tmpField.Get("m_Script");
  21.                         if (!test.IsDummy())
  22.                         {
  23.                             AssetsManager.AssetExternal comp = manager.GetExtAsset(instance, test);
  24.                             AssetTypeValueField extField = manager.GetATI(instance.file, comp.info).GetBaseField();
  25.                             if (extField.Get("m_Name").value.AsString() == "PrefabIdentifier")
  26.                             {
  27.                                 Log.Info("Found!");
  28.                                 if (extField.Get("classId").value.AsString() != "None")
  29.                                 {
  30.                                     gameObjects.Add(afi);
  31.                                 }
  32.                             }
  33.                         }
  34.                     }
  35.                 }
  36.             }
  37.         }
Advertisement
Add Comment
Please, Sign In to add comment