public static CodeGenFile[] Generate(ICodeGeneratorDataProvider provider, string directory, ICodeGenerator[] codeGenerators) { directory = GetSafeDir(directory); CleanDir(directory); var generatedFiles = new List<CodeGenFile>(); foreach (var generator in codeGenerators.OfType<IPoolCodeGenerator>()) { var files = generator.Generate(provider.poolNames); generatedFiles.AddRange(files); writeFiles(directory, files); } foreach (var generator in codeGenerators.OfType<IComponentCodeGenerator>()) { var files = generator.Generate(provider.componentInfos); generatedFiles.AddRange(files); writeFiles(directory, files); } foreach (var generator in codeGenerators.OfType<IBlueprintsCodeGenerator>()) { var files = generator.Generate(provider.blueprintNames); generatedFiles.AddRange(files); writeFiles(directory, files); } return generatedFiles.ToArray(); }
public static CodeGenFile[] Generate(ICodeGeneratorDataProvider provider, string directory, ICodeGenerator[] codeGenerators) { directory = GetSafeDir(directory); CleanDir(directory); var generatedFiles = new List <CodeGenFile>(); var componentInfos = provider.componentInfos; foreach (var generator in codeGenerators.OfType <IContextCodeGenerator>()) { var files = generator.Generate(provider.contextNames); generatedFiles.AddRange(files); writeFiles(directory, files); } foreach (var generator in codeGenerators.OfType <IComponentCodeGenerator>()) { var files = generator.Generate(componentInfos); generatedFiles.AddRange(files); writeFiles(directory, files); } foreach (var generator in codeGenerators.OfType <IBlueprintsCodeGenerator>()) { var files = generator.Generate(provider.blueprintNames); generatedFiles.AddRange(files); writeFiles(directory, files); } return(generatedFiles.ToArray()); }
public static void Generate(ICodeGeneratorDataProvider provider, string directory, ICodeGenerator[] codeGenerators) { directory = GetSafeDir(directory); CleanDir(directory); foreach (var generator in codeGenerators.OfType<IPoolCodeGenerator>()) { writeFiles(directory, generator.Generate(provider.poolNames)); } foreach (var generator in codeGenerators.OfType<IComponentCodeGenerator>()) { writeFiles(directory, generator.Generate(provider.componentInfos)); } }
public static void Generate(ICodeGeneratorDataProvider provider, string directory, ICodeGenerator[] codeGenerators) { directory = GetSafeDir(directory); CleanDir(directory); foreach (var generator in codeGenerators.OfType <IPoolCodeGenerator>()) { writeFiles(directory, generator.Generate(provider.poolNames)); } foreach (var generator in codeGenerators.OfType <IComponentCodeGenerator>()) { writeFiles(directory, generator.Generate(provider.componentInfos)); } }
static void generate() { var path = getEntitasProjectDir() + "/Readme/Readme/Generated/"; var types = Assembly .GetAssembly(typeof(MainClass)) .GetTypes(); var contextNames = new [] { "Game", "GameState", "Input" }; var dataProviders = new ICodeGeneratorDataProvider[] { new ContextDataProvider(contextNames), new ComponentDataProvider(types) }; var codeGenerators = new ICodeGenerator[] { new ComponentContextGenerator(), new ComponentEntityGenerator(), new ComponentGenerator(), new ComponentsLookupGenerator(), new ContextAttributeGenerator(), new ContextGenerator(), new ContextsGenerator(), new EntityGenerator(), new MatcherGenerator() }; var postProcessors = new ICodeGenFilePostProcessor [] { new MergeFilesPostProcessor(), new NewLinePostProcessor(), new WriteToDiskPostProcessor(path), }; var codeGenerator = new CodeGenerator(dataProviders, codeGenerators, postProcessors); var files = codeGenerator.Generate(); foreach (var file in files) { System.Console.WriteLine("file.fileName: " + file.fileName); } System.Console.WriteLine("Done. " + files.Length + " files generated."); }
public static void Main(string[] args) { var types = Assembly .GetAssembly(typeof(MainClass)) .GetTypes(); var dataProviders = new ICodeGeneratorDataProvider[] { new ContextDataProvider(contextNames), new ComponentDataProvider(types) }; var codeGenerators = new ICodeGenerator[] { new EntityGenerator(), new ContextGenerator(), new ContextAttributeGenerator(), new ContextsGenerator(), new ComponentsLookupGenerator(), new ComponentEntityGenerator(), new ComponentContextGenerator(), new ComponentGenerator(), new MatcherGenerator() }; var postProcessors = new ICodeGenFilePostProcessor [] { new AddFileHeaderPostProcessor(), new NewLinePostProcessor(), new WriteToDiskPostProcessor(path), }; var codeGenerator = new CodeGenerator(dataProviders, codeGenerators, postProcessors); var files = codeGenerator.Generate(); foreach (var file in files) { System.Console.WriteLine("file.fileName: " + file.fileName); } System.Console.WriteLine("Done. " + files.Length + " files generated."); }