public void StartSpriteSheetGeneration() { MilkshakePreferences prefs = MilkshakeForm.Instance.Preferences; CheckForNewEntry(comboBoxInputDir.Text, this.LastInputDir); CheckForNewEntry(comboBoxOutputDir.Text, this.LastOutputDir); CheckForNewEntry(comboBoxName.Text, this.LastNames); prefs.ToolSpritesheetLastInputFolder = ConvertListToString(this.LastInputDir); prefs.ToolSpritesheetLastOutputFolder = ConvertListToString(this.LastOutputDir); prefs.ToolSpritesheetLastOutputName = ConvertListToString(this.LastNames); prefs.ToolSpritesheetLastSafeBorderSize = (int)numericUpDownSafeBorderSize.Value; prefs.ToolSpritesheetLastCorrectTransparencyColor = checkBoxAlphaCorrection.Checked; prefs.ToolSpritesheetLastReplaceBaseColor = checkBoxOverrideBaseColor.Checked; prefs.ToolSpritesheetLastPadTexturePowerOfTwo = checkBoxPowerOf2.Checked; prefs.ToolSpritesheetLastBaseColor = new XnaColor(this.BaseTextureColor.R, this.BaseTextureColor.G, this.BaseTextureColor.B); this.Sprites.Clear(); String path = comboBoxInputDir.Text; DirectoryInfo di = new DirectoryInfo(path); FileInfo[] rgFiles = di.GetFiles("*.*"); foreach (FileInfo fi in rgFiles) { String fileExt = fi.Extension.ToLower(); if (fileExt == ".png" || fileExt == ".jpg" || fileExt == ".dds" || fileExt == ".bmp" || fileExt == ".tga") { Console.WriteLine(Sprites.Count + "] Packing sprite " + fi.Name); SpriteInfo newInfo = new SpriteInfo(Path.GetFileNameWithoutExtension(fi.Name)); newInfo.Texture2D = Texture2D.FromFile(IceCream.Drawing.DrawingManager.GraphicsDevice, fi.FullName); newInfo.PixelData = new uint[newInfo.Texture2D.Width * newInfo.Texture2D.Height]; newInfo.Texture2D.GetData <uint>(newInfo.PixelData); Sprites.Add(newInfo); } } PackSprites((int)numericUpDownSafeBorderSize.Value, comboBoxOutputDir.Text, comboBoxName.Text); }
/// <summary> /// Comparison function for sorting sprites by their original indices. /// </summary> static int CompareSpriteIndices(SpriteInfo a, SpriteInfo b) { return a.Index.CompareTo(b.Index); }
/// <summary> /// Comparison function for sorting sprites by size. /// </summary> public int CompareSpriteSizes(SpriteInfo a, SpriteInfo b) { int aSize = a.Height * 1024 + a.Width; int bSize = b.Height * 1024 + b.Width; return bSize.CompareTo(aSize); }
public void StartSpriteSheetGeneration() { MilkshakePreferences prefs = MilkshakeForm.Instance.Preferences; CheckForNewEntry(comboBoxInputDir.Text, this.LastInputDir); CheckForNewEntry(comboBoxOutputDir.Text, this.LastOutputDir); CheckForNewEntry(comboBoxName.Text, this.LastNames); prefs.ToolSpritesheetLastInputFolder = ConvertListToString(this.LastInputDir); prefs.ToolSpritesheetLastOutputFolder = ConvertListToString(this.LastOutputDir); prefs.ToolSpritesheetLastOutputName = ConvertListToString(this.LastNames); prefs.ToolSpritesheetLastSafeBorderSize = (int)numericUpDownSafeBorderSize.Value; prefs.ToolSpritesheetLastCorrectTransparencyColor = checkBoxAlphaCorrection.Checked; prefs.ToolSpritesheetLastReplaceBaseColor = checkBoxOverrideBaseColor.Checked; prefs.ToolSpritesheetLastPadTexturePowerOfTwo = checkBoxPowerOf2.Checked; prefs.ToolSpritesheetLastBaseColor = new XnaColor(this.BaseTextureColor.R, this.BaseTextureColor.G, this.BaseTextureColor.B); this.Sprites.Clear(); String path = comboBoxInputDir.Text; DirectoryInfo di = new DirectoryInfo(path); FileInfo[] rgFiles = di.GetFiles("*.*"); foreach (FileInfo fi in rgFiles) { String fileExt = fi.Extension.ToLower(); if (fileExt == ".png" || fileExt == ".jpg" || fileExt == ".dds" || fileExt == ".bmp" || fileExt == ".tga") { Console.WriteLine(Sprites.Count + "] Packing sprite " + fi.Name); SpriteInfo newInfo = new SpriteInfo(Path.GetFileNameWithoutExtension(fi.Name)); newInfo.Texture2D = Texture2D.FromStream(IceCream.Drawing.DrawingManager.GraphicsDevice, System.IO.File.OpenRead(fi.FullName)); newInfo.PixelData = new uint[newInfo.Texture2D.Width * newInfo.Texture2D.Height]; newInfo.Texture2D.GetData<uint>(newInfo.PixelData); Sprites.Add(newInfo); } } PackSprites((int)numericUpDownSafeBorderSize.Value, comboBoxOutputDir.Text, comboBoxName.Text); }
/// <summary> /// Comparison function for sorting sprites by their original indices. /// </summary> static int CompareSpriteIndices(SpriteInfo a, SpriteInfo b) { return(a.Index.CompareTo(b.Index)); }