Esempio n. 1
0
 private IEnumerable <IObjectInfo <T> > MassFindAssets <T>(AssetsFile file, Func <IObjectInfo <T>, bool> filter, bool deepSearch, List <AssetsFile> searched, List <AssetsFile> deepSearched) where T : AssetsObject
 {
     if (!searched.Contains(file))
     {
         searched.Add(file);
         foreach (var res in file.FindAssets(filter))
         {
             yield return(res);
         }
     }
     if (deepSearch)
     {
         foreach (var extFile in file.Metadata.ExternalFiles)
         {
             var ext = GetAssetsFile(extFile.FileName);
             if (!deepSearched.Contains(ext))
             {
                 deepSearched.Add(ext);
                 foreach (var res in MassFindAssets(ext, filter, deepSearch, searched, deepSearched))
                 {
                     yield return(res);
                 }
             }
         }
     }
     yield break;
 }