4 using System.Collections.Generic;
7 namespace SiliconStudio.Assets.Templates
14 private static readonly
object ThisLock =
new object();
15 private static readonly List<ITemplateGenerator> Generators =
new List<ITemplateGenerator>();
24 if (generator == null)
throw new ArgumentNullException(
"generator");
28 if (!Generators.Contains(generator))
30 Generators.Add(generator);
42 if (generator == null)
throw new ArgumentNullException(
"generator");
46 Generators.Remove(generator);
57 return PackageStore.Instance.GetInstalledPackages().SelectMany(package => package.Templates).OrderBy(tpl => tpl.Order).ThenBy(tpl => tpl.Name);
67 if (description == null)
throw new ArgumentNullException(
"description");
71 for (
int i = Generators.Count - 1; i >=0 ; i--)
73 var generator = Generators[i];
74 if (generator.IsSupportingTemplate(description))
static void Unregister(ITemplateGenerator generator)
Unregisters the specified factory.
Handle templates for creating Package, ProjectReference
Description of a template generator that can be displayed in the GameStudio.
static void Register(ITemplateGenerator generator)
Registers the specified factory.
static IEnumerable< TemplateDescription > FindTemplates()
Finds all template descriptions.
static ITemplateGenerator FindTemplateGenerator(TemplateDescription description)
Finds a template generator supporting the specified template description