using System.Collections.Generic; using System.Linq; namespace Unity.VisualScripting { public static class PluginUtility { public static IEnumerable OrderByDependencies(this IEnumerable plugins) { return plugins.OrderByDependencies(plugin => PluginContainer.pluginDependencies[plugin.id].Select(PluginContainer.GetPlugin)); } public static IEnumerable ResolveDependencies(this IEnumerable plugins) { return plugins.Concat(plugins.SelectMany(plugin => plugin.dependencies)).Distinct().OrderByDependencies(); } } }