private RunList<StepDescriptor> BuildRunlist(CodeModelBuilder modelBuilder, string[] finalResources) { var mutators = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(x => x.GetTypes()) .Where(x => typeof(IMutator).IsAssignableFrom(x) && x.IsClass && !x.IsAbstract) .Select(x => new MutatorStepDescriptor(modelBuilder, x)); var finalResourcesStep = new RequiredResources(finalResources); var dependencyNetwork = new DependencyManager<StepDescriptor>(x => x.Provides, x => x.Needs, x => x.OptionalNeeds); dependencyNetwork.AddRange(mutators); dependencyNetwork.Add(finalResourcesStep); dependencyNetwork.RequireElements(finalResourcesStep); return dependencyNetwork.CalculateRunList(); }
private void Awake() { DependencyManager.Add <IItemPreview>(this); }