Exemplo n.º 1
0
        public static void Generate()
        {
            checkCanGenerate();

            Debug.Log("Generating...");

            var codeGenerators     = GetCodeGenerators();
            var codeGeneratorNames = codeGenerators.Select(cg => cg.Name).ToArray();
            var config             = new CodeGeneratorConfig(EntitasPreferences.LoadConfig(), codeGeneratorNames);

            var enabledCodeGeneratorNames = config.enabledCodeGenerators;
            var enabledCodeGenerators     = codeGenerators
                                            .Where(type => enabledCodeGeneratorNames.Contains(type.Name))
                                            .Select(type => (ICodeGenerator)Activator.CreateInstance(type))
                                            .ToArray();

            var assembly       = Assembly.GetAssembly(typeof(Entity));
            var generatedFiles = TypeReflectionCodeGenerator.Generate(assembly, config.pools, config.generatedFolderPath, enabledCodeGenerators);

            AssetDatabase.Refresh();

            foreach (var file in generatedFiles)
            {
                Debug.Log(file.generatorName + ": " + file.fileName);
            }

            var totalGeneratedFiles = generatedFiles.Select(file => file.fileName).Distinct().Count();

            Debug.Log("Generated " + totalGeneratedFiles + " files.");
        }
Exemplo n.º 2
0
        public static void Generate()
        {
            assertCanGenerate();

            var codeGenerators     = GetCodeGenerators();
            var codeGeneratorNames = codeGenerators.Select(cg => cg.Name).ToArray();
            var config             = new CodeGeneratorConfig(EntitasPreferences.LoadConfig(), codeGeneratorNames);

            var enabledCodeGeneratorNames = config.enabledCodeGenerators;
            var enabledCodeGenerators     = codeGenerators
                                            .Where(type => enabledCodeGeneratorNames.Contains(type.Name))
                                            .Select(type => (ICodeGenerator)Activator.CreateInstance(type))
                                            .ToArray();

            var assembly = Assembly.GetAssembly(typeof(Entity));

            TypeReflectionCodeGenerator.Generate(assembly, config.pools, config.generatedFolderPath, enabledCodeGenerators);

            AssetDatabase.Refresh();
        }