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()); } } }