Example #1
0
        private void GenerateMissingImages()
        {
            if (this.IsWallItem)
            {
                if (this.Assets.Count(asset => asset.FlashAssetName != null && asset.FlashAssetName.Contains("_a_")) > 0 && this.Assets.Count(asset => asset.FlashAssetName != null && asset.FlashAssetName.Contains("_b_")) == 0)
                {
                    // Shift a->b and so forth
                    AssetUtil.CrudeReplace(this.CAST_PATH);

                    foreach (var file in Directory.GetFiles(this.IMAGE_PATH))
                    {
                        if (Path.GetExtension(file) != ".png" || Path.GetFileNameWithoutExtension(file).EndsWith("_small"))
                        {
                            continue;
                        }

                        string newFile      = Path.Combine(this.IMAGE_PATH, Path.GetFileNameWithoutExtension(file).Replace("_b_", "_a_") + ".png");
                        string regPointFile = Path.Combine(this.IMAGE_PATH, Path.GetFileNameWithoutExtension(file).Replace("_b_", "_a_") + ".txt");

                        File.WriteAllText(regPointFile, "0,0");

                        Console.WriteLine("Generating: " + newFile);

                        Bitmap bmp = new Bitmap(1, 1);
                        bmp.Save(newFile, ImageFormat.Png);
                    }
                }
                else
                {
                    // Shift a->b and so forth
                    AssetUtil.CrudeReplace(this.CAST_PATH);

                    foreach (var file in Directory.GetFiles(this.IMAGE_PATH))
                    {
                        if (Path.GetExtension(file) != ".png" || Path.GetFileNameWithoutExtension(file).EndsWith("_small"))
                        {
                            continue;
                        }

                        string newFile = Path.Combine(this.IMAGE_PATH, Path.GetFileNameWithoutExtension(file).Replace("_b_", "_a_") + ".png");

                        if (!File.Exists(newFile))
                        {
                            string regPointFile = Path.Combine(this.IMAGE_PATH, Path.GetFileNameWithoutExtension(file).Replace("_b_", "_a_") + ".txt");

                            File.WriteAllText(regPointFile, "0,0");

                            Console.WriteLine("Generating: " + newFile);

                            Bitmap bmp = new Bitmap(1, 1);
                            bmp.Save(newFile, ImageFormat.Png);
                        }
                    }
                }

                var dataPath = Path.Combine(this.CAST_PATH, this.Sprite + ".data");
                var data     = File.Exists(dataPath) ? File.ReadAllText(dataPath) : "";

                if (data.Length == 0)
                {
                    List <string> layers = new List <string>();

                    foreach (var file in Directory.GetFiles(this.IMAGE_PATH))
                    {
                        if (Path.GetExtension(file) != ".png" || Path.GetFileNameWithoutExtension(file).EndsWith("_small"))
                        {
                            continue;
                        }

                        string layer = Path.GetFileNameWithoutExtension(file).Split('_')[Path.GetFileNameWithoutExtension(file).Split('_').Length - 2];

                        if (!layers.Contains(layer) && layer != "sd")
                        {
                            layers.Add(layer);
                        }
                    }

                    StringBuilder output = new StringBuilder();
                    output.Append("[\r" +
                                  "states:[1],\r" +
                                  "layers:[ \r");

                    int k = 0;
                    foreach (string layer in layers)
                    {
                        output.Append(layer + ":[ [ frames:[ 0 ] ] ]");

                        if (layers.Count - 1 > k)
                        {
                            output.Append(", ");
                        }

                        k++;

                        output.Append("\r");
                    }

                    output.Append("]\r");
                    output.Append("]\r");

                    File.WriteAllText(dataPath, output.ToString());
                }
            }
        }