public static IEnumerable <UPlugin> FindPluginsInProject(UProject project) { List <UPlugin> plugins = new List <UPlugin>(); var plugins_dir = project.PluginsDirectory; if (Directory.Exists(plugins_dir)) { var uplugin_files = Directory.GetFiles(plugins_dir, "*.uplugin", SearchOption.AllDirectories); foreach (var filename in uplugin_files) { string name = Path.GetFileName(filename); var idx = name.IndexOf('.'); name = name.Substring(0, idx); plugins_dir = EnsureTrailingSeparator(plugins_dir); string uplugin_dir = EnsureTrailingSeparator(Path.GetDirectoryName(filename)); string relative = MakeRelativePath(plugins_dir, uplugin_dir); plugins.Add(new UPlugin(name, project, relative)); } } return(plugins); }
public UPlugin(string name, UProject proj, string rel_path) : base(name, Path.Combine(proj.PluginsDirectory, rel_path)) { Project = proj; RelativePath = rel_path; }