Exemple #1
0
        private static void WriteContentToTarget(CompileContext context)
        {
            StringBuilder contentTocBuilder = new StringBuilder();
            contentTocBuilder.AppendLine("## Interface: 60200");
            contentTocBuilder.AppendLine("## Title: Built");
            contentTocBuilder.AppendLine("## Notes: Built");
            contentTocBuilder.AppendLine("## Author: AddonCompiler");
            contentTocBuilder.AppendLine("## Version: 6.0.001");

            int filesCopied = 0;
            int resourcesCopied = 0;
            foreach (CompileContent content in context.FullContentList)
            {
                CarbonFile targetRelativeFile = new CarbonDirectory(content.Addon.Name).ToFile(content.RelativeFile);
                CarbonFile targetAbsoluteFile = context.Target.ToFile(targetRelativeFile);

                if (content.AbsoluteFile.Extension == Constants.ExtensionXml)
                {
                    if (!WriteXmlContentToTarget(content.AbsoluteFile, targetAbsoluteFile))
                    {
                        continue;
                    }

                    filesCopied++;
                }
                else
                {
                    if (!WriteScriptContentToTarget(content, targetAbsoluteFile))
                    {
                        continue;
                    }

                    filesCopied++;
                }

                // Register the content in the TOC
                contentTocBuilder.AppendLine(targetRelativeFile.GetPath());
            }

            foreach (AddonEntry addon in context.EntriesOrderedByPriority)
            {
                foreach (CarbonFile resource in addon.Resources)
                {
                    CarbonFile targetAbsoluteResourceFile = context.Target.ToDirectory(addon.Name).ToFile(resource);
                    CarbonFile sourceAbsoluteResourceFile = addon.RootDirectory.ToFile(resource);
                    sourceAbsoluteResourceFile.CopyTo(targetAbsoluteResourceFile, true);
                    resourcesCopied++;
                }
            }

            CarbonFile builtTocFile = context.Target.ToFile("Built.toc");
            builtTocFile.WriteAsString(contentTocBuilder.ToString());

            Diagnostic.Info("Finished Compile with {0} content files and {1} resources", filesCopied, resourcesCopied);
        }