private void Button6_Click(object sender, EventArgs e) { Twinsanity.GCs GCs = (Twinsanity.GCs)twinsanityEditorForm.LevelData.Get_Item(TwinsanityEditorForm.CalculateIndexes(twinsanityEditorForm.TreeView1.Nodes[0].Nodes[0].Nodes[3])); Twinsanity.GC GC = new Twinsanity.GC(); for (int i = 0; i <= GCs._Item.Length - 1; i++) { if (GCs._Item[i].ID == uint.Parse(GCTree.SelectedNode.Text.Remove(0, 4))) { GC = (Twinsanity.GC)GCs._Item[i]; break; } } Twinsanity.Texture[] Texture = new Twinsanity.Texture[] { }; Twinsanity.Materials Materials = (Twinsanity.Materials)twinsanityEditorForm.LevelData.Get_Item(TwinsanityEditorForm.CalculateIndexes(twinsanityEditorForm.TreeView1.Nodes[0].Nodes[0].Nodes[1])); Twinsanity.Textures Textures = (Twinsanity.Textures)twinsanityEditorForm.LevelData.Get_Item(TwinsanityEditorForm.CalculateIndexes(twinsanityEditorForm.TreeView1.Nodes[0].Nodes[0].Nodes[0])); Twinsanity.Models Models = (Twinsanity.Models)twinsanityEditorForm.LevelData.Get_Item(TwinsanityEditorForm.CalculateIndexes(twinsanityEditorForm.TreeView1.Nodes[0].Nodes[0].Nodes[2])); Twinsanity.Material[] MAT = new Twinsanity.Material[] { }; for (int i = 0; i <= GC.MaterialNumber - 1; i++) { for (int j = 0; j <= Materials._Item.Length - 1; j++) { if (GC.Material[i] == Materials._Item[j].ID) { Array.Resize(ref MAT, MAT.Length + 1); MAT[MAT.Length - 1] = (Twinsanity.Material)Materials._Item[j]; break; } } } for (int i = 0; i <= GC.MaterialNumber - 1; i++) { for (int j = 0; j <= Textures._Item.Length - 1; j++) { if (MAT[i].Texture == Textures._Item[j].ID) { Array.Resize(ref Texture, Texture.Length + 1); Texture[Texture.Length - 1] = (Twinsanity.Texture)Textures._Item[j]; break; } } } for (int i = 0; i <= Models._Item.Length - 1; i++) { if (Models._Item[i].ID == GC.Model) { twinsanityEditorForm.context.viewerModel.Model = (Twinsanity.Model)Models._Item[i]; break; } } Array.Resize(ref twinsanityEditorForm.context.viewerModel.TwinTextures, Texture.Length); Texture.CopyTo(twinsanityEditorForm.context.viewerModel.TwinTextures, 0); twinsanityEditorForm.context.viewerModel.Show(); }
private void Button1_Click(object sender, EventArgs e) { if (OpenFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { Bitmap BMP = new Bitmap(OpenFileDialog1.FileName); Color[] RawData = new Color[BMP.Width * BMP.Height - 1 + 1]; for (int i = 0; i <= RawData.Length - 1; i++) { RawData[i] = BMP.GetPixel(i % BMP.Width, i / BMP.Width); } Twinsanity.Texture Texture = new Twinsanity.Texture(); uint width = uint.Parse(ComboBox1.Text.Split('x')[0]); uint height = uint.Parse(ComboBox1.Text.Split('x')[1].Split(' ')[0]); bool mip = ComboBox1.Text.Split('x')[1].Split(' ')[1] == "mip" ? true : false; Twinsanity.Texture.BlockFormats blockFormat = (Twinsanity.Texture.BlockFormats)ComboBox1.SelectedIndex; Texture.Import(RawData, width, height, blockFormat, mip); System.IO.FileStream File = new System.IO.FileStream(OpenFileDialog1.FileName.Remove(OpenFileDialog1.FileName.Length - 4, 4), System.IO.FileMode.Create, System.IO.FileAccess.Write); System.IO.BinaryWriter FileWriter = new System.IO.BinaryWriter(File); FileWriter.Write(Texture.ByteStream.ToArray()); FileWriter.Close(); File.Close(); } }