ExplosionDeps GetExplosionDependencies(string explosionName, IEnumerable <TexturePair> texturePairs, IEnumerable <SpawnerPair> spawners, IEnumerable <FilePair> filePairs) { var ret = new ExplosionDeps { Name = explosionName }; foreach (var texturePair in texturePairs.Where(p => p.ExplosionName == explosionName).ToArray()) { ret.Textures.Add(texturePair.TextureName); } foreach (var filePair in filePairs.Where(p => p.ExplosionName == explosionName).ToArray()) { ret.Files.Add(filePair.FilePath); } // if (explosionName.ToLower() == "roachplosion") Debugger.Break(); foreach (var sp in spawners.Where(p => p.SpawnerName == explosionName)) { var deps = GetExplosionDependencies(sp.SpawnedExplosion, texturePairs, spawners, filePairs); ret.Files.AddRange(deps.Files); ret.Textures.AddRange(deps.Textures); } return(ret); }
ExplosionDeps GetExplosionDependencies(string explosionName, IEnumerable<TexturePair> texturePairs, IEnumerable<SpawnerPair> spawners, IEnumerable<FilePair> filePairs) { var ret = new ExplosionDeps { Name = explosionName }; foreach (var texturePair in texturePairs.Where(p => p.ExplosionName == explosionName).ToArray()) { ret.Textures.Add(texturePair.TextureName); } foreach (var filePair in filePairs.Where(p => p.ExplosionName == explosionName).ToArray()) { ret.Files.Add(filePair.FilePath); } // if (explosionName.ToLower() == "roachplosion") Debugger.Break(); foreach (var sp in spawners.Where(p => p.SpawnerName == explosionName)) { var deps = GetExplosionDependencies(sp.SpawnedExplosion, texturePairs, spawners, filePairs); ret.Files.AddRange(deps.Files); ret.Textures.AddRange(deps.Textures); } return ret; }