Exemplo n.º 1
0
        static void RunDirectory(List <string> inputDirectories, string outputName)
        {
            // Load xml file (if exists)
            string         xmlFilename = GetXmlFilename(outputName);
            InputFileStore fileStore   = InputFileStore.LoadXmlFile(xmlFilename);

            // see if any images have been added / removed / modified
            if (Settings.Instance.ForceBuild || fileStore.RequiresBuild(inputDirectories))
            {
                System.Console.WriteLine("Modifications detected, processing...");

                if (fileStore.XmlSettings != null)
                {
                    Settings.Instance.MergeSettings(fileStore.XmlSettings);
                }

                // if they have, rebuild entire texture listing
                List <InputBitmap> inputBitmaps = new List <InputBitmap>();

                foreach (string dir in inputDirectories)
                {
                    ParseDir(dir, inputBitmaps);
                }

                List <OutputBitmap> outputBitmaps = PackingProcess.BreakIntoOutputBitmaps(inputBitmaps, outputName);

                int index = 0;
                foreach (OutputBitmap obi in outputBitmaps)
                {
                    obi.SaveFile();
                    index++;
                }

                foreach (InputBitmap ib in inputBitmaps)
                {
                    ib.mBitmap.Dispose();
                    ib.mBitmap = null;
                }

                OutputBitmap.OutputXmlFile(outputBitmaps, xmlFilename);

                System.Console.WriteLine("Texture building completed successfully");
            }
            else
            {
                System.Console.WriteLine("No modifications detected, exiting...");
            }
        }