Example #1
0
 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();
     }
 }