Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 5
0
        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.");
        }
Ejemplo n.º 6
0
        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.");
        }