public static Palette ExtractPaletteFromDirectoryRecursive(String Path) { var r = new Palette(); foreach (var file in AssetManager.EnumerateAllFiles(Path)) { var texture = AssetManager.RawLoadTexture(file); if (texture != null) { r.AddRange(OptimizedPaletteFromMemoryTexture(MemoryTextureFromTexture2D(texture))); } } r = new Palette(r.Distinct()); r.Sort((a, b) => (int)a.PackedValue - (int)b.PackedValue); return(r); }