Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void GenerateGameObjectList()
- {
- manager = new AssetsManager();
- instance = manager.LoadAssetsFile(new FileStream(FindPath(), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite), true);
- manager.UpdateDependencies();
- ClassDatabaseFile ex = manager.LoadClassPackage(new FileStream("Nitrox.dat", FileMode.Open));
- Log.Info(ex.classes != null);
- List<AssetFileInfoEx> localGameObjects = instance.table.GetAssetsOfType(0x00000001); // 0x00000001 = GameObject ID
- foreach (AssetFileInfoEx afi in localGameObjects)
- {
- AssetTypeValueField componentArray = manager.GetATI(instance.file, afi).GetBaseField().Get("m_Component").Get("Array");
- foreach (AssetTypeValueField field in componentArray.pChildren)
- {
- AssetTypeValueField componentRef = field.Get("component");
- AssetsManager.AssetExternal ext = manager.GetExtAsset(instance, componentRef);
- if (ext.info.curFileType == MONOBEHAVIOUR_CLASS_ID)
- {
- AssetTypeValueField tmpField = MonoClass.GetMonoBaseField(manager, instance, ext.info, Path.Combine(Path.GetDirectoryName(instance.path), "Managed"));
- AssetTypeValueField test = tmpField.Get("m_Script");
- if (!test.IsDummy())
- {
- AssetsManager.AssetExternal comp = manager.GetExtAsset(instance, test);
- AssetTypeValueField extField = manager.GetATI(instance.file, comp.info).GetBaseField();
- if (extField.Get("m_Name").value.AsString() == "PrefabIdentifier")
- {
- Log.Info("Found!");
- if (extField.Get("classId").value.AsString() != "None")
- {
- gameObjects.Add(afi);
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment