diff --git a/PCK-Studio/Classes/Misc/RenderBase.cs b/PCK-Studio/Classes/Misc/RenderBase.cs
index 47ee3c7b..05b8a0d9 100644
--- a/PCK-Studio/Classes/Misc/RenderBase.cs
+++ b/PCK-Studio/Classes/Misc/RenderBase.cs
@@ -1525,7 +1525,7 @@ namespace Ohana3DS_Rebirth.Ohana
///
public enum OTextureFormat
{
- rgba8 = 0,
+ argb8 = 0,
rgb8 = 1,
rgba5551 = 2,
rgb565 = 3,
diff --git a/PCK-Studio/Classes/Texturing/TextureCodec.cs b/PCK-Studio/Classes/Texturing/TextureCodec.cs
index fdb80e8d..fd139edf 100644
--- a/PCK-Studio/Classes/Texturing/TextureCodec.cs
+++ b/PCK-Studio/Classes/Texturing/TextureCodec.cs
@@ -1,6 +1,7 @@
using System;
using System.Linq;
using System.Drawing;
+using System.Collections.Generic;
namespace Ohana3DS_Rebirth.Ohana
{
@@ -17,15 +18,15 @@ namespace Ohana3DS_Rebirth.Ohana
/// Height of the Texture
/// Pixel Format of the Texture
///
- public static Bitmap decode(byte[] data, int width, int height, RenderBase.OTextureFormat format)
+ public static Bitmap Decode(byte[] data, int width, int height, RenderBase.OTextureFormat format)
{
byte[] output = new byte[width * height * 4];
- long dataOffset = 0;
+ int dataOffset = 0;
bool toggle = false;
switch (format)
{
- case RenderBase.OTextureFormat.rgba8:
+ case RenderBase.OTextureFormat.argb8:
for (int tY = 0; tY < height / 8; tY++)
{
for (int tX = 0; tX < width / 8; tX++)
@@ -34,11 +35,10 @@ namespace Ohana3DS_Rebirth.Ohana
{
int x = tileOrder[pixel] % 8;
int y = (tileOrder[pixel] - x) / 8;
- long outputOffset = ((tX * 8) + x + ((tY * 8 + y) * width)) * 4;
+ int outputOffset = ((tX * 8 + x) + ((tY * 8 + y) * width)) * 4;
- Buffer.BlockCopy(data, (int)dataOffset + 1, output, (int)outputOffset, 3);
+ Buffer.BlockCopy(data, dataOffset + 1, output, outputOffset, 3);
output[outputOffset + 3] = data[dataOffset];
-
dataOffset += 4;
}
}
@@ -54,9 +54,9 @@ namespace Ohana3DS_Rebirth.Ohana
{
int x = tileOrder[pixel] % 8;
int y = (tileOrder[pixel] - x) / 8;
- long outputOffset = ((tX * 8) + x + (((tY * 8 + y)) * width)) * 4;
+ long outputOffset = ((tX * 8) + x + ((tY * 8 + y) * width)) * 4;
- Buffer.BlockCopy(data, (int)dataOffset, output, (int)outputOffset, 3);
+ Buffer.BlockCopy(data, dataOffset, output, (int)outputOffset, 3);
output[outputOffset + 3] = 0xff;
dataOffset += 3;
@@ -310,7 +310,7 @@ namespace Ohana3DS_Rebirth.Ohana
break;
}
- return TextureUtils.getBitmap(output.ToArray(), width, height);
+ return TextureUtils.ToBitmap(output, width, height);
}
///
@@ -319,15 +319,15 @@ namespace Ohana3DS_Rebirth.Ohana
/// Input image to be encoded
/// Pixel Format of the Texture
///
- public static byte[] encode(Bitmap img, RenderBase.OTextureFormat format)
+ public static byte[] Encode(Bitmap img, RenderBase.OTextureFormat format)
{
- byte[] data = TextureUtils.getArray(img);
+ byte[] data = TextureUtils.ToArray(img);
byte[] output = new byte[data.Length];
- uint outputOffset = 0;
+ int outputOffset = 0;
switch (format)
{
- case RenderBase.OTextureFormat.rgba8:
+ case RenderBase.OTextureFormat.argb8:
for (int tY = 0; tY < img.Height / 8; tY++)
{
for (int tX = 0; tX < img.Width / 8; tX++)
@@ -336,18 +336,17 @@ namespace Ohana3DS_Rebirth.Ohana
{
int x = tileOrder[pixel] % 8;
int y = (tileOrder[pixel] - x) / 8;
- long dataOffset = ((tX * 8) + x + ((tY * 8 + y) * img.Width)) * 4;
+ int dataOffset = ((tX * 8) + x + (tY * 8 + y) * img.Width) * 4;
- Buffer.BlockCopy(data, (int)dataOffset, output, (int)outputOffset + 1, 3);
+ Buffer.BlockCopy(data, dataOffset, output, outputOffset + 1, 3);
output[outputOffset] = data[dataOffset + 3];
-
outputOffset += 4;
}
}
}
break;
- default: throw new NotImplementedException();
+ default: throw new NotImplementedException(nameof(format));
}
return output;
diff --git a/PCK-Studio/Classes/Texturing/TextureUtils.cs b/PCK-Studio/Classes/Texturing/TextureUtils.cs
index f98a7f62..4f8f1953 100644
--- a/PCK-Studio/Classes/Texturing/TextureUtils.cs
+++ b/PCK-Studio/Classes/Texturing/TextureUtils.cs
@@ -13,7 +13,7 @@ namespace Ohana3DS_Rebirth.Ohana
/// Width of the Texture
/// Height of the Texture
///
- public static Bitmap getBitmap(byte[] array, int width, int height)
+ public static Bitmap ToBitmap(byte[] array, int width, int height)
{
Bitmap img = new Bitmap(width, height, PixelFormat.Format32bppArgb);
BitmapData imgData = img.LockBits(new Rectangle(0, 0, img.Width, img.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
@@ -27,7 +27,7 @@ namespace Ohana3DS_Rebirth.Ohana
///
/// The Bitmap
///
- public static byte[] getArray(Bitmap img)
+ public static byte[] ToArray(Bitmap img)
{
BitmapData imgData = img.LockBits(new Rectangle(0, 0, img.Width, img.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
byte[] array = new byte[imgData.Stride * img.Height];
diff --git a/PCK-Studio/Classes/Utils/3DS/3DSUtil.cs b/PCK-Studio/Classes/Utils/3DS/3DSUtil.cs
new file mode 100644
index 00000000..0cbf28b4
--- /dev/null
+++ b/PCK-Studio/Classes/Utils/3DS/3DSUtil.cs
@@ -0,0 +1,110 @@
+using Ohana3DS_Rebirth.Ohana;
+using System;
+using System.Drawing;
+using System.IO;
+using System.Text;
+
+namespace PckStudio.Classes.Utils
+{
+ internal class _3DSUtil
+ {
+ private static string ReadString(Stream stream, int len)
+ {
+ byte[] buffer = new byte[len];
+ stream.Read(buffer, 0, len);
+ return Encoding.ASCII.GetString(buffer);
+ }
+
+ private static int ReadInt32(Stream stream)
+ {
+ byte[] buffer = new byte[4];
+ stream.Read(buffer, 0, 4);
+ return BitConverter.ToInt32(buffer, 0);
+ }
+
+ private static void WriteString(Stream stream, string s)
+ {
+ byte[] buffer = Encoding.ASCII.GetBytes(s);
+ stream.Write(buffer, 0, buffer.Length);
+ }
+
+ private static void WriteInt32(Stream stream, int value)
+ {
+ byte[] buffer = BitConverter.GetBytes(value);
+ stream.Write(buffer, 0, 4);
+ }
+
+ public static int CalcBufferSize(RenderBase.OTextureFormat fmt, int w, int h)
+ {
+ switch (fmt)
+ {
+ case RenderBase.OTextureFormat.argb8:
+ return w * h * 4;
+ case RenderBase.OTextureFormat.rgb8:
+ return w * h * 3;
+ case RenderBase.OTextureFormat.rgba5551:
+ case RenderBase.OTextureFormat.rgb565:
+ case RenderBase.OTextureFormat.rgba4:
+ case RenderBase.OTextureFormat.la8:
+ case RenderBase.OTextureFormat.hilo8:
+ return w * h * 2;
+ case RenderBase.OTextureFormat.l8:
+ case RenderBase.OTextureFormat.a8:
+ case RenderBase.OTextureFormat.la4:
+ case RenderBase.OTextureFormat.etc1a4:
+ return w * h;
+ case RenderBase.OTextureFormat.l4:
+ case RenderBase.OTextureFormat.a4:
+ case RenderBase.OTextureFormat.etc1:
+ return w * h >> 1;
+ default:
+ throw new InvalidDataException("Invalid texture format on BCH!");
+ }
+ }
+
+ public static Image GetImageFrom3DST(Stream stream)
+ {
+ if (ReadString(stream, 4) == "3DST")
+ {
+ const int offset = 32;
+ stream.Seek(8L, SeekOrigin.Begin);
+ RenderBase.OTextureFormat format = ReadInt32(stream) switch
+ {
+ 0 => RenderBase.OTextureFormat.argb8,
+ 1 => RenderBase.OTextureFormat.rgb8,
+ 2 => RenderBase.OTextureFormat.rgba5551,
+ 3 => RenderBase.OTextureFormat.rgb8,
+ 4 => RenderBase.OTextureFormat.rgba4,
+ 9 => RenderBase.OTextureFormat.la4,
+ _ => RenderBase.OTextureFormat.dontCare,
+ };
+ int width = ReadInt32(stream);
+ int height = ReadInt32(stream);
+ int bufferSize = CalcBufferSize(format, width, height);
+ stream.Seek(offset, SeekOrigin.Begin);
+ byte[] buffer = new byte[bufferSize];
+ stream.Read(buffer, 0, bufferSize);
+ var img = TextureCodec.Decode(buffer, width, height, format);
+ img.RotateFlip(RotateFlipType.RotateNoneFlipY);
+ return img;
+ }
+ return null;
+ }
+
+ public static void SetImageTo3DST(Stream stream, Image source, RenderBase.OTextureFormat format = RenderBase.OTextureFormat.argb8)
+ {
+ // TODO: fix Encoding
+ WriteString(stream, "3DST"); // 0
+ WriteInt32(stream, 2); // 4 unknown
+ WriteInt32(stream, (int)format); // 8
+ WriteInt32(stream, source.Width); // 12
+ WriteInt32(stream, source.Height); // 16
+ WriteInt32(stream, 0); // 20
+ WriteInt32(stream, 0); // 24
+ WriteInt32(stream, 0); // 28
+ source.RotateFlip(RotateFlipType.RotateNoneFlipY);
+ byte[] buffer = TextureCodec.Encode(new Bitmap(source), format);
+ stream.Write(buffer, 0, buffer.Length);
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.Designer.cs b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.Designer.cs
index 6bb08225..c88af519 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.Designer.cs
+++ b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.Designer.cs
@@ -29,8 +29,8 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(addNewSkin));
System.Windows.Forms.Label label3;
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(addNewSkin));
System.Windows.Forms.Label label2;
System.Windows.Forms.Label label1;
this.textTheme = new System.Windows.Forms.TextBox();
@@ -64,6 +64,24 @@
((System.ComponentModel.ISupportInitialize)(this.skinPictureBoxTexture)).BeginInit();
this.SuspendLayout();
//
+ // label3
+ //
+ resources.ApplyResources(label3, "label3");
+ label3.ForeColor = System.Drawing.Color.White;
+ label3.Name = "label3";
+ //
+ // label2
+ //
+ resources.ApplyResources(label2, "label2");
+ label2.ForeColor = System.Drawing.Color.White;
+ label2.Name = "label2";
+ //
+ // label1
+ //
+ resources.ApplyResources(label1, "label1");
+ label1.ForeColor = System.Drawing.Color.White;
+ label1.Name = "label1";
+ //
// textTheme
//
resources.ApplyResources(this.textTheme, "textTheme");
@@ -132,24 +150,6 @@
this.displayBox.Name = "displayBox";
this.displayBox.TabStop = false;
//
- // label3
- //
- resources.ApplyResources(label3, "label3");
- label3.ForeColor = System.Drawing.Color.White;
- label3.Name = "label3";
- //
- // label2
- //
- resources.ApplyResources(label2, "label2");
- label2.ForeColor = System.Drawing.Color.White;
- label2.Name = "label2";
- //
- // label1
- //
- resources.ApplyResources(label1, "label1");
- label1.ForeColor = System.Drawing.Color.White;
- label1.Name = "label1";
- //
// radioAUTO
//
resources.ApplyResources(this.radioAUTO, "radioAUTO");
@@ -305,7 +305,7 @@
//
resources.ApplyResources(this.skinPictureBoxTexture, "skinPictureBoxTexture");
this.skinPictureBoxTexture.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.skinPictureBoxTexture.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default;
+ this.skinPictureBoxTexture.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
this.skinPictureBoxTexture.Name = "skinPictureBoxTexture";
this.skinPictureBoxTexture.TabStop = false;
this.skinPictureBoxTexture.Click += new System.EventHandler(this.pictureBox1_Click);
diff --git a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs
index cb2e592d..2fc1348e 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs
+++ b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs
@@ -11,18 +11,17 @@ namespace PckStudio
{
public partial class addNewSkin : MetroFramework.Forms.MetroForm
{
+
+ public PCKFile.FileData SkinFile => skin;
+ public PCKFile.FileData CapeFile => cape;
+ public bool HasCape = false;
+
LOCFile currentLoc;
PCKFile.FileData skin = new PCKFile.FileData("dlcskinXYXYXYXY", PCKFile.FileData.FileType.SkinFile);
PCKFile.FileData cape = new PCKFile.FileData("dlccapeXYXYXYXY", PCKFile.FileData.FileType.CapeFile);
SkinANIM anim = new SkinANIM(eANIM_EFFECTS.NONE);
- public PCKFile.FileData Skin => skin;
- public PCKFile.FileData Cape => cape;
- public string ANIM => anim.ToString();
-
eSkinType skinType;
- public bool useCape = false;
- string localID = "0";
PCKProperties generatedModel = new PCKProperties();
enum eSkinType : int
@@ -38,11 +37,10 @@ namespace PckStudio
public addNewSkin(LOCFile loc)
{
InitializeComponent();
- textSkinID.Text = localID;
currentLoc = loc;
}
- private void checkImage(Image img)
+ private void CheckImage(Image img)
{
//Checks image dimensions and sets things accordingly
switch (img.Height) // 64x64
@@ -112,24 +110,16 @@ namespace PckStudio
}
break;
}
- /*
- comboBoxSkinType.Enabled = skinType == eSkinType._64x64 || skinType == eSkinType._64x64HD;
- if (comboBoxSkinType.Items.Count == 3)
- {
- comboBoxSkinType.Items.RemoveAt(0);
- }
- */
- skinPictureBoxTexture.Image = img;
+ skinPictureBoxTexture.Image = img;
buttonDone.Enabled = true;
labelSelectTexture.Visible = false;
-
- //skin.SetData();
}
- private void drawModel()
+ private void DrawModel()
{
Bitmap bmp = new Bitmap(displayBox.Width, displayBox.Height);
+ bool isSlim = anim.GetANIMFlag(eANIM_EFFECTS.SLIM_MODEL);
using (Graphics g = Graphics.FromImage(bmp))
{
if(!anim.GetANIMFlag(eANIM_EFFECTS.HEAD_DISABLED))
@@ -147,14 +137,14 @@ namespace PckStudio
if (!anim.GetANIMFlag(eANIM_EFFECTS.RIGHT_ARM_DISABLED))
{
//Arm0
- g.DrawRectangle(Pens.Black, anim.GetANIMFlag(eANIM_EFFECTS.SLIM_MODEL) ? 55 : 50, 55, anim.GetANIMFlag(eANIM_EFFECTS.SLIM_MODEL) ? 15 : 20, 60);
- g.FillRectangle(Brushes.Gray, anim.GetANIMFlag(eANIM_EFFECTS.SLIM_MODEL) ? 56 : 51, 56, anim.GetANIMFlag(eANIM_EFFECTS.SLIM_MODEL) ? 14 : 19, 59);
+ g.DrawRectangle(Pens.Black , isSlim ? 55 : 50, 55, isSlim ? 15 : 20, 60);
+ g.FillRectangle(Brushes.Gray, isSlim ? 56 : 51, 56, isSlim ? 14 : 19, 59);
}
if (!anim.GetANIMFlag(eANIM_EFFECTS.LEFT_ARM_DISABLED))
{
//Arm1
- g.DrawRectangle(Pens.Black, 110, 55, anim.GetANIMFlag(eANIM_EFFECTS.SLIM_MODEL) ? 15 : 20, 60);
- g.FillRectangle(Brushes.Gray, 111, 56, anim.GetANIMFlag(eANIM_EFFECTS.SLIM_MODEL) ? 14 : 19, 59);
+ g.DrawRectangle(Pens.Black, 110, 55, isSlim ? 15 : 20, 60);
+ g.FillRectangle(Brushes.Gray, 111, 56, isSlim ? 14 : 19, 59);
}
if (!anim.GetANIMFlag(eANIM_EFFECTS.RIGHT_LEG_DISABLED))
{
@@ -174,7 +164,7 @@ namespace PckStudio
private void addnewskin_Load(object sender, EventArgs e)
{
- drawModel();
+ DrawModel();
}
private void buttonSkin_Click(object sender, EventArgs e)
@@ -192,7 +182,7 @@ namespace PckStudio
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
- checkImage(Image.FromFile(ofd.FileName));
+ CheckImage(Image.FromFile(ofd.FileName));
}
}
@@ -207,7 +197,7 @@ namespace PckStudio
var img = Image.FromFile(ofd1.FileName);
if (img.Width == img.Height * 2)
{
- useCape = true;
+ HasCape = true;
capePictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
capePictureBox.InterpolationMode = InterpolationMode.NearestNeighbor;
capePictureBox.Image = Image.FromFile(ofd1.FileName);
@@ -231,48 +221,50 @@ namespace PckStudio
return;
}
string skinId = _skinId.ToString("d08");
- if (useCape)
+ skin.filepath = $"dlcskin{skinId}.png";
+ string skinDisplayNameLocKey = $"IDS_dlcskin{skinId}_DISPLAYNAME";
+ currentLoc.AddLocKey(skinDisplayNameLocKey, textSkinName.Text);
+ skin.properties.Add(("DISPLAYNAME", textSkinName.Text));
+ skin.properties.Add(("DISPLAYNAMEID", skinDisplayNameLocKey));
+ if (!string.IsNullOrEmpty(textThemeName.Text))
+ {
+ skin.properties.Add(("THEMENAME", textThemeName.Text));
+ skin.properties.Add(("THEMENAMEID", $"IDS_dlcskin{skinId}_THEMENAME"));
+ currentLoc.AddLocKey($"IDS_dlcskin{skinId}_THEMENAME", textThemeName.Text);
+ }
+ skin.properties.Add(("ANIM", anim.ToString()));
+ skin.properties.Add(("GAME_FLAGS", "0x18"));
+ skin.properties.Add(("FREE", "1"));
+
+ if (HasCape)
{
try
{
cape.filepath = $"dlccape{skinId}.png";
- skin.properties.Add(new ValueTuple("CAPEPATH", cape.filepath));
+ skin.properties.Add(("CAPEPATH", cape.filepath));
}
catch (Exception)
{
- MessageBox.Show("Cape Could Not be Added");
+ MessageBox.Show("Cape could not be added.");
}
}
- string skinDisplayNameLocKey = $"IDS_dlcskin{skinId}_DISPLAYNAME";
- currentLoc.AddLocKey(skinDisplayNameLocKey, textSkinName.Text);
- skin.properties.Add(new ValueTuple("DISPLAYNAME", textSkinName.Text));
- skin.properties.Add(new ValueTuple("DISPLAYNAMEID", skinDisplayNameLocKey));
using (var stream = new MemoryStream())
{
skinPictureBoxTexture.Image.Save(stream, ImageFormat.Png);
skin.SetData(stream.ToArray());
}
- skin.properties.Add(new ValueTuple("ANIM", anim.ToString()));
- if (generatedModel != null)
- {
- foreach (var item in generatedModel)
- {
- skin.properties.Add(item);
- }
+ //if (generatedModel != null)
+ //{
+ // foreach (var item in generatedModel)
+ // {
+ // skin.properties.Add(item);
+ // }
- generatedModel.Clear();
- }
+ // generatedModel.Clear();
+ //}
- if (!string.IsNullOrEmpty(textThemeName.Text))
- {
- skin.properties.Add(new ValueTuple("THEMENAME", textThemeName.Text));
- currentLoc.AddLocKey($"IDS_dlcskin{skinId}_THEMENAME", textThemeName.Text);
- }
- skin.properties.Add(new ValueTuple("GAME_FLAGS", "0x18"));
- skin.properties.Add(new ValueTuple("FREE", "1"));
- skin.filepath = "dlcskin" + skinId + ".png";
DialogResult = DialogResult.OK;
Close();
}
@@ -281,8 +273,6 @@ namespace PckStudio
{
bool validSkinId = int.TryParse(textSkinID.Text, out _);
textSkinID.ForeColor = validSkinId ? Color.Green : Color.Red;
- if (radioLOCAL.Checked && validSkinId)
- localID = textSkinID.Text;
}
private void CreateCustomModel_Click(object sender, EventArgs e)
@@ -303,14 +293,8 @@ namespace PckStudio
{
using (FileStream stream = File.OpenRead(Application.StartupPath + "\\temp.png"))
{
- skinPictureBoxTexture.SizeMode = PictureBoxSizeMode.StretchImage;
- skinPictureBoxTexture.InterpolationMode = InterpolationMode.NearestNeighbor;
skinPictureBoxTexture.Image = Image.FromStream(stream);
- stream.Close();
- stream.Dispose();
- File.Delete(Application.StartupPath + "\\temp.png");
}
- skinPictureBoxTexture.Width = skinPictureBoxTexture.Height;
buttonDone.Enabled = true;
labelSelectTexture.Visible = false;
if (skinType != eSkinType._64x64 && skinType != eSkinType._64x64HD)
@@ -346,29 +330,33 @@ namespace PckStudio
private void radioLOCAL_CheckedChanged(object sender, EventArgs e)
{
- if (radioLOCAL.Checked)
- {
- textSkinID.Text = localID;
- textSkinID.Enabled = true;
- }
+ textSkinID.Enabled = radioLOCAL.Checked;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
using (var ofdd = new OpenFileDialog())
{
- ofdd.Filter = "PNG Files | *.png";
- ofdd.Title = "Select a PNG File";
+ ofdd.Filter = "PNG Files | *.png | 3DS Texture|*.3dst";
+ ofdd.Title = "Select a Skin Texture File";
if (ofdd.ShowDialog() == DialogResult.OK)
{
- checkImage(Image.FromFile(ofdd.FileName));
+ if (ofdd.FileName.EndsWith(".3dst"))
+ {
+ using (var fs = File.OpenRead(ofdd.FileName))
+ {
+ CheckImage(_3DSUtil.GetImageFrom3DST(fs));
+ textSkinName.Text = Path.GetFileNameWithoutExtension(ofdd.FileName);
+ }
+ return;
+ }
+ CheckImage(Image.FromFile(ofdd.FileName));
}
}
}
private void radioSERVER_CheckedChanged(object sender, EventArgs e)
{
-
if (radioSERVER.Checked)
{
}
@@ -380,9 +368,8 @@ namespace PckStudio
if (diag.ShowDialog(this) == DialogResult.OK && diag.saved)
{
anim = new SkinANIM(diag.outANIM);
- drawModel();
+ DrawModel();
}
}
}
-}
-
+}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.resx b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.resx
index b8f6fba7..3e61805d 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.resx
+++ b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.resx
@@ -117,14 +117,114 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ False
+
+
+
+ True
+
+
+
+ NoControl
+
+
+ 215, 129
+
+
+ 71, 13
+
+
+ 106
+
+
+ Theme Name
+
+
+ label3
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 18
+
+
+ False
+
+
+ True
+
+
+ NoControl
+
+
+ 215, 97
+
+
+ 59, 13
+
+
+ 104
+
+
+ Skin Name
+
+
+ label2
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 19
+
+
+ False
+
+
+ True
+
+
+ NoControl
+
+
+ 215, 64
+
+
+ 42, 13
+
+
+ 102
+
+
+ Skin ID
+
+
+ label1
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 20
+
102, 78
239, 20
-
32
@@ -191,7 +291,6 @@
False
-
Flat
@@ -340,105 +439,6 @@
17
-
- False
-
-
- True
-
-
- NoControl
-
-
- 215, 129
-
-
- 71, 13
-
-
- 106
-
-
- Theme Name
-
-
- label3
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 18
-
-
- False
-
-
- True
-
-
- NoControl
-
-
- 215, 97
-
-
- 59, 13
-
-
- 104
-
-
- Skin Name
-
-
- label2
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 19
-
-
- False
-
-
- True
-
-
- NoControl
-
-
- 215, 64
-
-
- 42, 13
-
-
- 102
-
-
- Skin ID
-
-
- label1
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 20
-
True
@@ -787,6 +787,9 @@
82, 82
+
+ Zoom
+
108
diff --git a/PCK-Studio/MainForm.Designer.cs b/PCK-Studio/MainForm.Designer.cs
index 8f5151f8..017c8daf 100644
--- a/PCK-Studio/MainForm.Designer.cs
+++ b/PCK-Studio/MainForm.Designer.cs
@@ -39,6 +39,7 @@
this.colourscolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.importSkinsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.importSkinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.importExtractedSkinsFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.setFileTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -63,6 +64,7 @@
this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.viewFileInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.generateMipMapTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.as3DSTextureFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -150,6 +152,7 @@
this.contextMenuPCKEntries.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.createToolStripMenuItem,
this.importSkinsToolStripMenuItem,
+ this.exportToolStripMenuItem,
this.setFileTypeToolStripMenuItem,
this.extractToolStripMenuItem,
this.cloneFileToolStripMenuItem,
@@ -160,12 +163,12 @@
this.moveDownToolStripMenuItem,
this.viewFileInfoToolStripMenuItem,
this.generateMipMapTextureToolStripMenuItem});
- this.contextMenuPCKEntries.Name = "contextMenuStrip1";
- resources.ApplyResources(this.contextMenuPCKEntries, "contextMenuPCKEntries");
- //
- // createToolStripMenuItem
- //
- this.createToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.contextMenuPCKEntries.Name = "contextMenuStrip1";
+ resources.ApplyResources(this.contextMenuPCKEntries, "contextMenuPCKEntries");
+ //
+ // createToolStripMenuItem
+ //
+ this.createToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.folderToolStripMenuItem,
this.skinToolStripMenuItem,
this.createAnimatedTextureToolStripMenuItem,
@@ -210,30 +213,44 @@
this.importSkinToolStripMenuItem,
this.importExtractedSkinsFolderToolStripMenuItem,
this.addTextureToolStripMenuItem});
- resources.ApplyResources(this.importSkinsToolStripMenuItem, "importSkinsToolStripMenuItem");
- this.importSkinsToolStripMenuItem.Name = "importSkinsToolStripMenuItem";
- //
- // importSkinToolStripMenuItem
- //
- resources.ApplyResources(this.importSkinToolStripMenuItem, "importSkinToolStripMenuItem");
- this.importSkinToolStripMenuItem.Name = "importSkinToolStripMenuItem";
- this.importSkinToolStripMenuItem.Click += new System.EventHandler(this.importSkin);
- //
- // importExtractedSkinsFolderToolStripMenuItem
- //
- resources.ApplyResources(this.importExtractedSkinsFolderToolStripMenuItem, "importExtractedSkinsFolderToolStripMenuItem");
- this.importExtractedSkinsFolderToolStripMenuItem.Name = "importExtractedSkinsFolderToolStripMenuItem";
- this.importExtractedSkinsFolderToolStripMenuItem.Click += new System.EventHandler(this.importExtractedSkinsFolder);
- //
- // addTextureToolStripMenuItem
- //
- this.addTextureToolStripMenuItem.Name = "addTextureToolStripMenuItem";
- resources.ApplyResources(this.addTextureToolStripMenuItem, "addTextureToolStripMenuItem");
- this.addTextureToolStripMenuItem.Click += new System.EventHandler(this.addTextureToolStripMenuItem_Click);
- //
- // setFileTypeToolStripMenuItem
- //
- this.setFileTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ resources.ApplyResources(this.importSkinsToolStripMenuItem, "importSkinsToolStripMenuItem");
+ this.importSkinsToolStripMenuItem.Name = "importSkinsToolStripMenuItem";
+ //
+ // importSkinToolStripMenuItem
+ //
+ resources.ApplyResources(this.importSkinToolStripMenuItem, "importSkinToolStripMenuItem");
+ this.importSkinToolStripMenuItem.Name = "importSkinToolStripMenuItem";
+ this.importSkinToolStripMenuItem.Click += new System.EventHandler(this.importSkin);
+ //
+ // importExtractedSkinsFolderToolStripMenuItem
+ //
+ resources.ApplyResources(this.importExtractedSkinsFolderToolStripMenuItem, "importExtractedSkinsFolderToolStripMenuItem");
+ this.importExtractedSkinsFolderToolStripMenuItem.Name = "importExtractedSkinsFolderToolStripMenuItem";
+ this.importExtractedSkinsFolderToolStripMenuItem.Click += new System.EventHandler(this.importExtractedSkinsFolder);
+ //
+ // addTextureToolStripMenuItem
+ //
+ this.addTextureToolStripMenuItem.Image = global::PckStudio.Properties.Resources.AddTexture;
+ this.addTextureToolStripMenuItem.Name = "addTextureToolStripMenuItem";
+ resources.ApplyResources(this.addTextureToolStripMenuItem, "addTextureToolStripMenuItem");
+ this.addTextureToolStripMenuItem.Click += new System.EventHandler(this.addTextureToolStripMenuItem_Click);
+ //
+ // exportToolStripMenuItem
+ //
+ this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.as3DSTextureFileToolStripMenuItem});
+ this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
+ resources.ApplyResources(this.exportToolStripMenuItem, "exportToolStripMenuItem");
+ //
+ // as3DSTextureFileToolStripMenuItem
+ //
+ this.as3DSTextureFileToolStripMenuItem.Name = "as3DSTextureFileToolStripMenuItem";
+ resources.ApplyResources(this.as3DSTextureFileToolStripMenuItem, "as3DSTextureFileToolStripMenuItem");
+ this.as3DSTextureFileToolStripMenuItem.Click += new System.EventHandler(this.as3DSTextureFileToolStripMenuItem_Click);
+ //
+ // setFileTypeToolStripMenuItem
+ //
+ this.setFileTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.skinToolStripMenuItem1,
this.capeToolStripMenuItem,
this.textureToolStripMenuItem,
@@ -372,12 +389,12 @@
this.editToolStripMenuItem,
this.helpToolStripMenuItem,
this.storeToolStripMenuItem});
- this.menuStrip.Name = "menuStrip";
- //
- // fileToolStripMenuItem
- //
- this.fileToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
- this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.menuStrip.Name = "menuStrip";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.newToolStripMenuItem,
this.openToolStripMenuItem,
this.extractToolStripMenuItem1,
@@ -387,109 +404,109 @@
this.metaToolStripMenuItem,
this.convertPCTextrurePackToolStripMenuItem,
this.closeToolStripMenuItem});
- this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
- resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
- //
- // newToolStripMenuItem
- //
- this.newToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
+ //
+ // newToolStripMenuItem
+ //
+ this.newToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.skinPackToolStripMenuItem,
this.texturePackToolStripMenuItem,
this.mashUpPackToolStripMenuItem});
- resources.ApplyResources(this.newToolStripMenuItem, "newToolStripMenuItem");
- this.newToolStripMenuItem.Name = "newToolStripMenuItem";
- //
- // skinPackToolStripMenuItem
- //
- this.skinPackToolStripMenuItem.Name = "skinPackToolStripMenuItem";
- resources.ApplyResources(this.skinPackToolStripMenuItem, "skinPackToolStripMenuItem");
- this.skinPackToolStripMenuItem.Click += new System.EventHandler(this.skinPackToolStripMenuItem_Click);
- //
- // texturePackToolStripMenuItem
- //
- this.texturePackToolStripMenuItem.Name = "texturePackToolStripMenuItem";
- resources.ApplyResources(this.texturePackToolStripMenuItem, "texturePackToolStripMenuItem");
- this.texturePackToolStripMenuItem.Click += new System.EventHandler(this.texturePackToolStripMenuItem_Click);
- //
- // mashUpPackToolStripMenuItem
- //
- this.mashUpPackToolStripMenuItem.Name = "mashUpPackToolStripMenuItem";
- resources.ApplyResources(this.mashUpPackToolStripMenuItem, "mashUpPackToolStripMenuItem");
- this.mashUpPackToolStripMenuItem.Click += new System.EventHandler(this.mashUpPackToolStripMenuItem_Click);
- //
- // openToolStripMenuItem
- //
- resources.ApplyResources(this.openToolStripMenuItem, "openToolStripMenuItem");
- this.openToolStripMenuItem.Name = "openToolStripMenuItem";
- this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
- //
- // extractToolStripMenuItem1
- //
- resources.ApplyResources(this.extractToolStripMenuItem1, "extractToolStripMenuItem1");
- this.extractToolStripMenuItem1.Name = "extractToolStripMenuItem1";
- this.extractToolStripMenuItem1.Click += new System.EventHandler(this.extractToolStripMenuItem1_Click);
- //
- // saveToolStripMenuItem1
- //
- resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
- this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
- this.saveToolStripMenuItem1.Click += new System.EventHandler(this.savePCK);
- //
- // saveToolStripMenuItem
- //
- resources.ApplyResources(this.saveToolStripMenuItem, "saveToolStripMenuItem");
- this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
- this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveAsPCK);
- //
- // addPasswordToolStripMenuItem
- //
- resources.ApplyResources(this.addPasswordToolStripMenuItem, "addPasswordToolStripMenuItem");
- this.addPasswordToolStripMenuItem.Name = "addPasswordToolStripMenuItem";
- this.addPasswordToolStripMenuItem.Click += new System.EventHandler(this.addPasswordToolStripMenuItem_Click);
- //
- // metaToolStripMenuItem
- //
- resources.ApplyResources(this.metaToolStripMenuItem, "metaToolStripMenuItem");
- this.metaToolStripMenuItem.Name = "metaToolStripMenuItem";
- this.metaToolStripMenuItem.Click += new System.EventHandler(this.metaToolStripMenuItem_Click);
- //
- // convertPCTextrurePackToolStripMenuItem
- //
- this.convertPCTextrurePackToolStripMenuItem.Name = "convertPCTextrurePackToolStripMenuItem";
- resources.ApplyResources(this.convertPCTextrurePackToolStripMenuItem, "convertPCTextrurePackToolStripMenuItem");
- this.convertPCTextrurePackToolStripMenuItem.Click += new System.EventHandler(this.convertPCTextrurePackToolStripMenuItem_Click);
- //
- // closeToolStripMenuItem
- //
- this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
- resources.ApplyResources(this.closeToolStripMenuItem, "closeToolStripMenuItem");
- this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click);
- //
- // editToolStripMenuItem
- //
- this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ resources.ApplyResources(this.newToolStripMenuItem, "newToolStripMenuItem");
+ this.newToolStripMenuItem.Name = "newToolStripMenuItem";
+ //
+ // skinPackToolStripMenuItem
+ //
+ this.skinPackToolStripMenuItem.Name = "skinPackToolStripMenuItem";
+ resources.ApplyResources(this.skinPackToolStripMenuItem, "skinPackToolStripMenuItem");
+ this.skinPackToolStripMenuItem.Click += new System.EventHandler(this.skinPackToolStripMenuItem_Click);
+ //
+ // texturePackToolStripMenuItem
+ //
+ this.texturePackToolStripMenuItem.Name = "texturePackToolStripMenuItem";
+ resources.ApplyResources(this.texturePackToolStripMenuItem, "texturePackToolStripMenuItem");
+ this.texturePackToolStripMenuItem.Click += new System.EventHandler(this.texturePackToolStripMenuItem_Click);
+ //
+ // mashUpPackToolStripMenuItem
+ //
+ this.mashUpPackToolStripMenuItem.Name = "mashUpPackToolStripMenuItem";
+ resources.ApplyResources(this.mashUpPackToolStripMenuItem, "mashUpPackToolStripMenuItem");
+ this.mashUpPackToolStripMenuItem.Click += new System.EventHandler(this.mashUpPackToolStripMenuItem_Click);
+ //
+ // openToolStripMenuItem
+ //
+ resources.ApplyResources(this.openToolStripMenuItem, "openToolStripMenuItem");
+ this.openToolStripMenuItem.Name = "openToolStripMenuItem";
+ this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
+ //
+ // extractToolStripMenuItem1
+ //
+ resources.ApplyResources(this.extractToolStripMenuItem1, "extractToolStripMenuItem1");
+ this.extractToolStripMenuItem1.Name = "extractToolStripMenuItem1";
+ this.extractToolStripMenuItem1.Click += new System.EventHandler(this.extractToolStripMenuItem1_Click);
+ //
+ // saveToolStripMenuItem1
+ //
+ resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
+ this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
+ this.saveToolStripMenuItem1.Click += new System.EventHandler(this.savePCK);
+ //
+ // saveToolStripMenuItem
+ //
+ resources.ApplyResources(this.saveToolStripMenuItem, "saveToolStripMenuItem");
+ this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
+ this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveAsPCK);
+ //
+ // addPasswordToolStripMenuItem
+ //
+ resources.ApplyResources(this.addPasswordToolStripMenuItem, "addPasswordToolStripMenuItem");
+ this.addPasswordToolStripMenuItem.Name = "addPasswordToolStripMenuItem";
+ this.addPasswordToolStripMenuItem.Click += new System.EventHandler(this.addPasswordToolStripMenuItem_Click);
+ //
+ // metaToolStripMenuItem
+ //
+ resources.ApplyResources(this.metaToolStripMenuItem, "metaToolStripMenuItem");
+ this.metaToolStripMenuItem.Name = "metaToolStripMenuItem";
+ this.metaToolStripMenuItem.Click += new System.EventHandler(this.metaToolStripMenuItem_Click);
+ //
+ // convertPCTextrurePackToolStripMenuItem
+ //
+ this.convertPCTextrurePackToolStripMenuItem.Name = "convertPCTextrurePackToolStripMenuItem";
+ resources.ApplyResources(this.convertPCTextrurePackToolStripMenuItem, "convertPCTextrurePackToolStripMenuItem");
+ this.convertPCTextrurePackToolStripMenuItem.Click += new System.EventHandler(this.convertPCTextrurePackToolStripMenuItem_Click);
+ //
+ // closeToolStripMenuItem
+ //
+ this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
+ resources.ApplyResources(this.closeToolStripMenuItem, "closeToolStripMenuItem");
+ this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click);
+ //
+ // editToolStripMenuItem
+ //
+ this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.advancedMetaAddingToolStripMenuItem,
this.convertToBedrockToolStripMenuItem});
- this.editToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.editToolStripMenuItem.Name = "editToolStripMenuItem";
- resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem");
- //
- // advancedMetaAddingToolStripMenuItem
- //
- resources.ApplyResources(this.advancedMetaAddingToolStripMenuItem, "advancedMetaAddingToolStripMenuItem");
- this.advancedMetaAddingToolStripMenuItem.Name = "advancedMetaAddingToolStripMenuItem";
- this.advancedMetaAddingToolStripMenuItem.Click += new System.EventHandler(this.advancedMetaAddingToolStripMenuItem_Click);
- //
- // convertToBedrockToolStripMenuItem
- //
- resources.ApplyResources(this.convertToBedrockToolStripMenuItem, "convertToBedrockToolStripMenuItem");
- this.convertToBedrockToolStripMenuItem.Name = "convertToBedrockToolStripMenuItem";
- this.convertToBedrockToolStripMenuItem.Click += new System.EventHandler(this.convertToBedrockToolStripMenuItem_Click);
- //
- // helpToolStripMenuItem
- //
- this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.editToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.editToolStripMenuItem.Name = "editToolStripMenuItem";
+ resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem");
+ //
+ // advancedMetaAddingToolStripMenuItem
+ //
+ resources.ApplyResources(this.advancedMetaAddingToolStripMenuItem, "advancedMetaAddingToolStripMenuItem");
+ this.advancedMetaAddingToolStripMenuItem.Name = "advancedMetaAddingToolStripMenuItem";
+ this.advancedMetaAddingToolStripMenuItem.Click += new System.EventHandler(this.advancedMetaAddingToolStripMenuItem_Click);
+ //
+ // convertToBedrockToolStripMenuItem
+ //
+ resources.ApplyResources(this.convertToBedrockToolStripMenuItem, "convertToBedrockToolStripMenuItem");
+ this.convertToBedrockToolStripMenuItem.Name = "convertToBedrockToolStripMenuItem";
+ this.convertToBedrockToolStripMenuItem.Click += new System.EventHandler(this.convertToBedrockToolStripMenuItem_Click);
+ //
+ // helpToolStripMenuItem
+ //
+ this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.programInfoToolStripMenuItem,
this.binkaConversionToolStripMenuItem,
this.videosToolStripMenuItem,
@@ -498,25 +515,25 @@
this.donateToolStripMenuItem,
this.settingsToolStripMenuItem,
this.administrativeToolsToolStripMenuItem});
- this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
- resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
- //
- // programInfoToolStripMenuItem
- //
- resources.ApplyResources(this.programInfoToolStripMenuItem, "programInfoToolStripMenuItem");
- this.programInfoToolStripMenuItem.Name = "programInfoToolStripMenuItem";
- this.programInfoToolStripMenuItem.Click += new System.EventHandler(this.programInfoToolStripMenuItem_Click);
- //
- // binkaConversionToolStripMenuItem
- //
- resources.ApplyResources(this.binkaConversionToolStripMenuItem, "binkaConversionToolStripMenuItem");
- this.binkaConversionToolStripMenuItem.Name = "binkaConversionToolStripMenuItem";
- this.binkaConversionToolStripMenuItem.Click += new System.EventHandler(this.binkaConversionToolStripMenuItem_Click);
- //
- // videosToolStripMenuItem
- //
- this.videosToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
+ resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
+ //
+ // programInfoToolStripMenuItem
+ //
+ resources.ApplyResources(this.programInfoToolStripMenuItem, "programInfoToolStripMenuItem");
+ this.programInfoToolStripMenuItem.Name = "programInfoToolStripMenuItem";
+ this.programInfoToolStripMenuItem.Click += new System.EventHandler(this.programInfoToolStripMenuItem_Click);
+ //
+ // binkaConversionToolStripMenuItem
+ //
+ resources.ApplyResources(this.binkaConversionToolStripMenuItem, "binkaConversionToolStripMenuItem");
+ this.binkaConversionToolStripMenuItem.Name = "binkaConversionToolStripMenuItem";
+ this.binkaConversionToolStripMenuItem.Click += new System.EventHandler(this.binkaConversionToolStripMenuItem_Click);
+ //
+ // videosToolStripMenuItem
+ //
+ this.videosToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.howToMakeABasicSkinPackToolStripMenuItem,
this.howToMakeACustomSkinModelToolStripMenuItem,
this.howToMakeCustomSkinModelsbedrockToolStripMenuItem,
@@ -524,147 +541,147 @@
this.howToInstallPcksDirectlyToWiiUToolStripMenuItem,
this.pCKCenterReleaseToolStripMenuItem,
this.howPCKsWorkToolStripMenuItem});
- this.videosToolStripMenuItem.ForeColor = System.Drawing.Color.Black;
- resources.ApplyResources(this.videosToolStripMenuItem, "videosToolStripMenuItem");
- this.videosToolStripMenuItem.Name = "videosToolStripMenuItem";
- //
- // howToMakeABasicSkinPackToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeABasicSkinPackToolStripMenuItem, "howToMakeABasicSkinPackToolStripMenuItem");
- this.howToMakeABasicSkinPackToolStripMenuItem.Name = "howToMakeABasicSkinPackToolStripMenuItem";
- this.howToMakeABasicSkinPackToolStripMenuItem.Click += new System.EventHandler(this.howToMakeABasicSkinPackToolStripMenuItem_Click);
- //
- // howToMakeACustomSkinModelToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeACustomSkinModelToolStripMenuItem, "howToMakeACustomSkinModelToolStripMenuItem");
- this.howToMakeACustomSkinModelToolStripMenuItem.Name = "howToMakeACustomSkinModelToolStripMenuItem";
- this.howToMakeACustomSkinModelToolStripMenuItem.Click += new System.EventHandler(this.howToMakeACustomSkinModelToolStripMenuItem_Click);
- //
- // howToMakeCustomSkinModelsbedrockToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem, "howToMakeCustomSkinModelsbedrockToolStripMenuItem");
- this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Name = "howToMakeCustomSkinModelsbedrockToolStripMenuItem";
- this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click);
- //
- // howToMakeCustomMusicToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeCustomMusicToolStripMenuItem, "howToMakeCustomMusicToolStripMenuItem");
- this.howToMakeCustomMusicToolStripMenuItem.Name = "howToMakeCustomMusicToolStripMenuItem";
- this.howToMakeCustomMusicToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomMusicToolStripMenuItem_Click);
- //
- // howToInstallPcksDirectlyToWiiUToolStripMenuItem
- //
- resources.ApplyResources(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem, "howToInstallPcksDirectlyToWiiUToolStripMenuItem");
- this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Name = "howToInstallPcksDirectlyToWiiUToolStripMenuItem";
- this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Click += new System.EventHandler(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click);
- //
- // pCKCenterReleaseToolStripMenuItem
- //
- resources.ApplyResources(this.pCKCenterReleaseToolStripMenuItem, "pCKCenterReleaseToolStripMenuItem");
- this.pCKCenterReleaseToolStripMenuItem.Name = "pCKCenterReleaseToolStripMenuItem";
- this.pCKCenterReleaseToolStripMenuItem.Click += new System.EventHandler(this.pCKCenterReleaseToolStripMenuItem_Click);
- //
- // howPCKsWorkToolStripMenuItem
- //
- resources.ApplyResources(this.howPCKsWorkToolStripMenuItem, "howPCKsWorkToolStripMenuItem");
- this.howPCKsWorkToolStripMenuItem.Name = "howPCKsWorkToolStripMenuItem";
- this.howPCKsWorkToolStripMenuItem.Click += new System.EventHandler(this.howPCKsWorkToolStripMenuItem_Click);
- //
- // installationToolStripMenuItem
- //
- resources.ApplyResources(this.installationToolStripMenuItem, "installationToolStripMenuItem");
- this.installationToolStripMenuItem.Name = "installationToolStripMenuItem";
- //
- // fAQToolStripMenuItem1
- //
- resources.ApplyResources(this.fAQToolStripMenuItem1, "fAQToolStripMenuItem1");
- this.fAQToolStripMenuItem1.Name = "fAQToolStripMenuItem1";
- this.fAQToolStripMenuItem1.Click += new System.EventHandler(this.fAQToolStripMenuItem1_Click);
- //
- // donateToolStripMenuItem
- //
- this.donateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.videosToolStripMenuItem.ForeColor = System.Drawing.Color.Black;
+ resources.ApplyResources(this.videosToolStripMenuItem, "videosToolStripMenuItem");
+ this.videosToolStripMenuItem.Name = "videosToolStripMenuItem";
+ //
+ // howToMakeABasicSkinPackToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeABasicSkinPackToolStripMenuItem, "howToMakeABasicSkinPackToolStripMenuItem");
+ this.howToMakeABasicSkinPackToolStripMenuItem.Name = "howToMakeABasicSkinPackToolStripMenuItem";
+ this.howToMakeABasicSkinPackToolStripMenuItem.Click += new System.EventHandler(this.howToMakeABasicSkinPackToolStripMenuItem_Click);
+ //
+ // howToMakeACustomSkinModelToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeACustomSkinModelToolStripMenuItem, "howToMakeACustomSkinModelToolStripMenuItem");
+ this.howToMakeACustomSkinModelToolStripMenuItem.Name = "howToMakeACustomSkinModelToolStripMenuItem";
+ this.howToMakeACustomSkinModelToolStripMenuItem.Click += new System.EventHandler(this.howToMakeACustomSkinModelToolStripMenuItem_Click);
+ //
+ // howToMakeCustomSkinModelsbedrockToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem, "howToMakeCustomSkinModelsbedrockToolStripMenuItem");
+ this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Name = "howToMakeCustomSkinModelsbedrockToolStripMenuItem";
+ this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click);
+ //
+ // howToMakeCustomMusicToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeCustomMusicToolStripMenuItem, "howToMakeCustomMusicToolStripMenuItem");
+ this.howToMakeCustomMusicToolStripMenuItem.Name = "howToMakeCustomMusicToolStripMenuItem";
+ this.howToMakeCustomMusicToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomMusicToolStripMenuItem_Click);
+ //
+ // howToInstallPcksDirectlyToWiiUToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem, "howToInstallPcksDirectlyToWiiUToolStripMenuItem");
+ this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Name = "howToInstallPcksDirectlyToWiiUToolStripMenuItem";
+ this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Click += new System.EventHandler(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click);
+ //
+ // pCKCenterReleaseToolStripMenuItem
+ //
+ resources.ApplyResources(this.pCKCenterReleaseToolStripMenuItem, "pCKCenterReleaseToolStripMenuItem");
+ this.pCKCenterReleaseToolStripMenuItem.Name = "pCKCenterReleaseToolStripMenuItem";
+ this.pCKCenterReleaseToolStripMenuItem.Click += new System.EventHandler(this.pCKCenterReleaseToolStripMenuItem_Click);
+ //
+ // howPCKsWorkToolStripMenuItem
+ //
+ resources.ApplyResources(this.howPCKsWorkToolStripMenuItem, "howPCKsWorkToolStripMenuItem");
+ this.howPCKsWorkToolStripMenuItem.Name = "howPCKsWorkToolStripMenuItem";
+ this.howPCKsWorkToolStripMenuItem.Click += new System.EventHandler(this.howPCKsWorkToolStripMenuItem_Click);
+ //
+ // installationToolStripMenuItem
+ //
+ resources.ApplyResources(this.installationToolStripMenuItem, "installationToolStripMenuItem");
+ this.installationToolStripMenuItem.Name = "installationToolStripMenuItem";
+ //
+ // fAQToolStripMenuItem1
+ //
+ resources.ApplyResources(this.fAQToolStripMenuItem1, "fAQToolStripMenuItem1");
+ this.fAQToolStripMenuItem1.Name = "fAQToolStripMenuItem1";
+ this.fAQToolStripMenuItem1.Click += new System.EventHandler(this.fAQToolStripMenuItem1_Click);
+ //
+ // donateToolStripMenuItem
+ //
+ this.donateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toNobledezJackToolStripMenuItem,
this.toPhoenixARCDeveloperToolStripMenuItem,
this.forMattNLContributorToolStripMenuItem});
- this.donateToolStripMenuItem.Name = "donateToolStripMenuItem";
- resources.ApplyResources(this.donateToolStripMenuItem, "donateToolStripMenuItem");
- //
- // toNobledezJackToolStripMenuItem
- //
- this.toNobledezJackToolStripMenuItem.Name = "toNobledezJackToolStripMenuItem";
- resources.ApplyResources(this.toNobledezJackToolStripMenuItem, "toNobledezJackToolStripMenuItem");
- this.toNobledezJackToolStripMenuItem.Click += new System.EventHandler(this.toNobledezJackToolStripMenuItem_Click);
- //
- // toPhoenixARCDeveloperToolStripMenuItem
- //
- this.toPhoenixARCDeveloperToolStripMenuItem.Name = "toPhoenixARCDeveloperToolStripMenuItem";
- resources.ApplyResources(this.toPhoenixARCDeveloperToolStripMenuItem, "toPhoenixARCDeveloperToolStripMenuItem");
- this.toPhoenixARCDeveloperToolStripMenuItem.Click += new System.EventHandler(this.toPhoenixARCDeveloperToolStripMenuItem_Click);
- //
- // forMattNLContributorToolStripMenuItem
- //
- this.forMattNLContributorToolStripMenuItem.Name = "forMattNLContributorToolStripMenuItem";
- resources.ApplyResources(this.forMattNLContributorToolStripMenuItem, "forMattNLContributorToolStripMenuItem");
- this.forMattNLContributorToolStripMenuItem.Click += new System.EventHandler(this.forMattNLContributorToolStripMenuItem_Click);
- //
- // settingsToolStripMenuItem
- //
- this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
- resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem");
- this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
- //
- // administrativeToolsToolStripMenuItem
- //
- resources.ApplyResources(this.administrativeToolsToolStripMenuItem, "administrativeToolsToolStripMenuItem");
- this.administrativeToolsToolStripMenuItem.Name = "administrativeToolsToolStripMenuItem";
- this.administrativeToolsToolStripMenuItem.Click += new System.EventHandler(this.administrativeToolsToolStripMenuItem_Click);
- //
- // storeToolStripMenuItem
- //
- this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.donateToolStripMenuItem.Name = "donateToolStripMenuItem";
+ resources.ApplyResources(this.donateToolStripMenuItem, "donateToolStripMenuItem");
+ //
+ // toNobledezJackToolStripMenuItem
+ //
+ this.toNobledezJackToolStripMenuItem.Name = "toNobledezJackToolStripMenuItem";
+ resources.ApplyResources(this.toNobledezJackToolStripMenuItem, "toNobledezJackToolStripMenuItem");
+ this.toNobledezJackToolStripMenuItem.Click += new System.EventHandler(this.toNobledezJackToolStripMenuItem_Click);
+ //
+ // toPhoenixARCDeveloperToolStripMenuItem
+ //
+ this.toPhoenixARCDeveloperToolStripMenuItem.Name = "toPhoenixARCDeveloperToolStripMenuItem";
+ resources.ApplyResources(this.toPhoenixARCDeveloperToolStripMenuItem, "toPhoenixARCDeveloperToolStripMenuItem");
+ this.toPhoenixARCDeveloperToolStripMenuItem.Click += new System.EventHandler(this.toPhoenixARCDeveloperToolStripMenuItem_Click);
+ //
+ // forMattNLContributorToolStripMenuItem
+ //
+ this.forMattNLContributorToolStripMenuItem.Name = "forMattNLContributorToolStripMenuItem";
+ resources.ApplyResources(this.forMattNLContributorToolStripMenuItem, "forMattNLContributorToolStripMenuItem");
+ this.forMattNLContributorToolStripMenuItem.Click += new System.EventHandler(this.forMattNLContributorToolStripMenuItem_Click);
+ //
+ // settingsToolStripMenuItem
+ //
+ this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
+ resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem");
+ this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
+ //
+ // administrativeToolsToolStripMenuItem
+ //
+ resources.ApplyResources(this.administrativeToolsToolStripMenuItem, "administrativeToolsToolStripMenuItem");
+ this.administrativeToolsToolStripMenuItem.Name = "administrativeToolsToolStripMenuItem";
+ this.administrativeToolsToolStripMenuItem.Click += new System.EventHandler(this.administrativeToolsToolStripMenuItem_Click);
+ //
+ // storeToolStripMenuItem
+ //
+ this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.openToolStripMenuItem1,
this.wiiUPCKInstallerToolStripMenuItem,
this.PS3PCKInstallerToolStripMenuItem,
this.VitaPCKInstallerToolStripMenuItem,
this.joinDevelopmentDiscordToolStripMenuItem});
- this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- resources.ApplyResources(this.storeToolStripMenuItem, "storeToolStripMenuItem");
- this.storeToolStripMenuItem.Name = "storeToolStripMenuItem";
- //
- // openToolStripMenuItem1
- //
- resources.ApplyResources(this.openToolStripMenuItem1, "openToolStripMenuItem1");
- this.openToolStripMenuItem1.Name = "openToolStripMenuItem1";
- this.openToolStripMenuItem1.Click += new System.EventHandler(this.openToolStripMenuItem1_Click);
- //
- // wiiUPCKInstallerToolStripMenuItem
- //
- resources.ApplyResources(this.wiiUPCKInstallerToolStripMenuItem, "wiiUPCKInstallerToolStripMenuItem");
- this.wiiUPCKInstallerToolStripMenuItem.Name = "wiiUPCKInstallerToolStripMenuItem";
- this.wiiUPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.wiiUPCKInstallerToolStripMenuItem_Click);
- //
- // PS3PCKInstallerToolStripMenuItem
- //
- resources.ApplyResources(this.PS3PCKInstallerToolStripMenuItem, "PS3PCKInstallerToolStripMenuItem");
- this.PS3PCKInstallerToolStripMenuItem.Name = "PS3PCKInstallerToolStripMenuItem";
- this.PS3PCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.PS3PCKInstallerToolStripMenuItem_Click);
- //
- // VitaPCKInstallerToolStripMenuItem
- //
- resources.ApplyResources(this.VitaPCKInstallerToolStripMenuItem, "VitaPCKInstallerToolStripMenuItem");
- this.VitaPCKInstallerToolStripMenuItem.Name = "VitaPCKInstallerToolStripMenuItem";
- this.VitaPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.VitaPCKInstallerToolStripMenuItem_Click);
- //
- // joinDevelopmentDiscordToolStripMenuItem
- //
- resources.ApplyResources(this.joinDevelopmentDiscordToolStripMenuItem, "joinDevelopmentDiscordToolStripMenuItem");
- this.joinDevelopmentDiscordToolStripMenuItem.Name = "joinDevelopmentDiscordToolStripMenuItem";
- this.joinDevelopmentDiscordToolStripMenuItem.Click += new System.EventHandler(this.joinDevelopmentDiscordToolStripMenuItem_Click);
- //
- // contextMenuMetaTree
- //
- this.contextMenuMetaTree.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ resources.ApplyResources(this.storeToolStripMenuItem, "storeToolStripMenuItem");
+ this.storeToolStripMenuItem.Name = "storeToolStripMenuItem";
+ //
+ // openToolStripMenuItem1
+ //
+ resources.ApplyResources(this.openToolStripMenuItem1, "openToolStripMenuItem1");
+ this.openToolStripMenuItem1.Name = "openToolStripMenuItem1";
+ this.openToolStripMenuItem1.Click += new System.EventHandler(this.openToolStripMenuItem1_Click);
+ //
+ // wiiUPCKInstallerToolStripMenuItem
+ //
+ resources.ApplyResources(this.wiiUPCKInstallerToolStripMenuItem, "wiiUPCKInstallerToolStripMenuItem");
+ this.wiiUPCKInstallerToolStripMenuItem.Name = "wiiUPCKInstallerToolStripMenuItem";
+ this.wiiUPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.wiiUPCKInstallerToolStripMenuItem_Click);
+ //
+ // PS3PCKInstallerToolStripMenuItem
+ //
+ resources.ApplyResources(this.PS3PCKInstallerToolStripMenuItem, "PS3PCKInstallerToolStripMenuItem");
+ this.PS3PCKInstallerToolStripMenuItem.Name = "PS3PCKInstallerToolStripMenuItem";
+ this.PS3PCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.PS3PCKInstallerToolStripMenuItem_Click);
+ //
+ // VitaPCKInstallerToolStripMenuItem
+ //
+ resources.ApplyResources(this.VitaPCKInstallerToolStripMenuItem, "VitaPCKInstallerToolStripMenuItem");
+ this.VitaPCKInstallerToolStripMenuItem.Name = "VitaPCKInstallerToolStripMenuItem";
+ this.VitaPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.VitaPCKInstallerToolStripMenuItem_Click);
+ //
+ // joinDevelopmentDiscordToolStripMenuItem
+ //
+ resources.ApplyResources(this.joinDevelopmentDiscordToolStripMenuItem, "joinDevelopmentDiscordToolStripMenuItem");
+ this.joinDevelopmentDiscordToolStripMenuItem.Name = "joinDevelopmentDiscordToolStripMenuItem";
+ this.joinDevelopmentDiscordToolStripMenuItem.Click += new System.EventHandler(this.joinDevelopmentDiscordToolStripMenuItem_Click);
+ //
+ // contextMenuMetaTree
+ //
+ this.contextMenuMetaTree.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addPresetToolStripMenuItem1,
this.addEntryToolStripMenuItem,
this.deleteEntryToolStripMenuItem});
@@ -1029,6 +1046,7 @@
private System.Windows.Forms.ToolStripMenuItem extractToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem importSkinsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem importSkinToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem importExtractedSkinsFolderToolStripMenuItem;
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.ToolStripMenuItem createToolStripMenuItem;
@@ -1099,6 +1117,7 @@
private System.Windows.Forms.ToolStripMenuItem entityMaterialsFileBINToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem addTextureToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem viewFileInfoToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem as3DSTextureFileToolStripMenuItem;
private MetroFramework.Controls.MetroTabPage openTab;
private System.Windows.Forms.PictureBox pckOpen;
private MetroFramework.Controls.MetroLabel label5;
diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs
index 29172e0f..8491d81c 100644
--- a/PCK-Studio/MainForm.cs
+++ b/PCK-Studio/MainForm.cs
@@ -8,7 +8,6 @@ using System.Drawing.Drawing2D;
using System.Diagnostics;
using System.Drawing.Imaging;
using RichPresenceClient;
-using Ohana3DS_Rebirth.Ohana;
using PckStudio.Properties;
using PckStudio.Classes.FileTypes;
using PckStudio.Classes.IO;
@@ -19,6 +18,7 @@ using PckStudio.Forms.Utilities;
using PckStudio.Forms.Editor;
using PckStudio.Forms.Additional_Popups.Animation;
using PckStudio.Classes.IO.PCK;
+using PckStudio.Classes.Utils;
namespace PckStudio
{
@@ -83,7 +83,11 @@ namespace PckStudio
public void LoadFromPath(string filepath)
{
currentPCK = openPck(filepath);
- if (currentPCK == null) return;
+ if (currentPCK == null)
+ {
+ MessageBox.Show(string.Format("Failed to load {0}", Path.GetFileName(filepath)), "Error");
+ return;
+ }
if (addPasswordToolStripMenuItem.Enabled = checkForPassword())
{
LoadEditorTab();
@@ -93,7 +97,8 @@ namespace PckStudio
private void Form1_Load(object sender, EventArgs e)
{
RPC.Initialize();
- RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC");
+ if (currentPCK == null)
+ RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC");
skinToolStripMenuItem1.Click += (sender, e) => setFileType_Click(sender, e, PCKFile.FileData.FileType.SkinFile);
capeToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, PCKFile.FileData.FileType.CapeFile);
@@ -134,9 +139,9 @@ namespace PckStudio
if (ofd.ShowDialog() == DialogResult.OK)
{
LoadFromPath(ofd.FileName);
- }
}
}
+ }
private PCKFile openPck(string filePath)
{
@@ -166,7 +171,7 @@ namespace PckStudio
if (currentPCK.TryGetFile("0", PCKFile.FileData.FileType.InfoFile, out PCKFile.FileData file))
{
if (file.properties.Contains("LOCK"))
- return new pckLocked(file.properties.GetProperty("LOCK").Item2).ShowDialog() == DialogResult.OK;
+ return new pckLocked(file.properties.GetPropertyValue("LOCK")).ShowDialog() == DialogResult.OK;
}
return true;
}
@@ -281,7 +286,7 @@ namespace PckStudio
//throw new InvalidDataException(nameof(file.filetype));
break;
}
- setFileIcon(node, file.filetype);
+ SetPckFileIcon(node, file.filetype);
};
}
@@ -289,7 +294,7 @@ namespace PckStudio
{
treeViewMain.Nodes.Clear();
BuildPckTreeView(treeViewMain.Nodes, currentPCK);
- }
+ }
bool IsFilePathMipMapped(string filepath)
{
@@ -647,11 +652,11 @@ namespace PckStudio
using (addNewSkin add = new addNewSkin(locFile))
if (add.ShowDialog() == DialogResult.OK)
{
- if (add.useCape)
- currentPCK.Files.Add(add.Cape);
+ if (add.HasCape)
+ currentPCK.Files.Add(add.CapeFile);
if (!(treeViewMain.SelectedNode.Tag is PCKFile.FileData))
- add.Skin.filepath = $"{treeViewMain.SelectedNode.FullPath}/{add.Skin.filepath}";
- currentPCK.Files.Add(add.Skin);
+ add.SkinFile.filepath = $"{treeViewMain.SelectedNode.FullPath}/{add.SkinFile.filepath}";
+ currentPCK.Files.Add(add.SkinFile);
TrySetLocFile(locFile);
saved = false;
BuildMainTreeView();
@@ -1189,24 +1194,22 @@ namespace PckStudio
return;
}
// creates variable to indicate wether current pck skin structure is mashup or regular skin
- bool mashupStructure = false;
+ bool hasSkinsPck = currentPCK.HasFile("Skins.pck", PCKFile.FileData.FileType.SkinDataFile);
foreach (var fullfilename in Directory.GetFiles(contents.SelectedPath, "*.png"))
{
string filename = Path.GetFileNameWithoutExtension(fullfilename);
// sets file type based on wether its a cape or skin
- PCKFile.FileData.FileType pckfiletype = (PCKFile.FileData.FileType)Convert.ToInt32(filename.ToLower().StartsWith("dlccape"));
- string pckfilepath = (mashupStructure ? "Skins/" : string.Empty) + filename + ".png";
+ PCKFile.FileData.FileType pckfiletype = filename.StartsWith("dlccape", StringComparison.OrdinalIgnoreCase)
+ ? PCKFile.FileData.FileType.CapeFile
+ : PCKFile.FileData.FileType.SkinFile;
+ string pckfilepath = (hasSkinsPck ? "Skins/" : string.Empty) + filename + ".png";
PCKFile.FileData newFile = new PCKFile.FileData(pckfilepath, pckfiletype);
byte[] filedata = File.ReadAllBytes(fullfilename);
newFile.SetData(filedata);
- string locNameId = "";
- string locName = "";
- string locThemeId = "";
- string locTheme = "";
if (File.Exists(fullfilename + ".txt"))
{
string[] properties = File.ReadAllText(fullfilename + ".txt").Split(new string[]{ Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
@@ -1215,25 +1218,38 @@ namespace PckStudio
string[] param = property.Split(':');
if (param.Length < 2) continue;
newFile.properties.Add((param[0], param[1]));
- switch (param[0])
- {
- case "DISPLAYNAMEID":
- locNameId = param[1];
- continue;
+ //switch (param[0])
+ //{
+ // case "DISPLAYNAMEID":
+ // locNameId = param[1];
+ // continue;
- case "DISPLAYNAME":
- locName = param[1];
- continue;
+ // case "DISPLAYNAME":
+ // locName = param[1];
+ // continue;
- case "THEMENAMEID":
- locThemeId = param[1];
- continue;
+ // case "THEMENAMEID":
+ // locThemeId = param[1];
+ // continue;
- case "THEMENAME":
- locTheme = param[1];
- continue;
- }
+ // case "THEMENAME":
+ // locTheme = param[1];
+ // continue;
+ //}
}
+ }
+ if (hasSkinsPck)
+ {
+ var skinsfile = currentPCK.GetFile("Skins.pck", PCKFile.FileData.FileType.SkinDataFile);
+ using (var ms = new MemoryStream(skinsfile.data))
+ {
+ var skinspck = PCKFileReader.Read(ms, LittleEndianCheckBox.Checked);
+ skinspck.Files.Add(newFile);
+ ms.Position = 0;
+ PCKFileWriter.Write(ms, skinspck, LittleEndianCheckBox.Checked);
+ skinsfile.SetData(ms.ToArray());
+ }
+ continue;
}
currentPCK.Files.Add(newFile);
}
@@ -1262,7 +1278,7 @@ namespace PckStudio
}
catch (Exception ex)
{
- Console.WriteLine(ex.Message);
+ Debug.WriteLine(ex.Message);
}
locFile = null;
return false;
@@ -1357,9 +1373,20 @@ namespace PckStudio
TreeNode folerNode = CreateNode(folderNamePrompt.NewText);
folerNode.ImageIndex = 0;
folerNode.SelectedImageIndex = 0;
- TreeNodeCollection nodeCollection = treeViewMain.SelectedNode is TreeNode node
- ? node.Tag is PCKFile.FileData && node.Parent is TreeNode parentNode ? parentNode.Nodes : node.Nodes
- : treeViewMain.Nodes;
+
+ TreeNodeCollection nodeCollection = treeViewMain.Nodes;
+ if (treeViewMain.SelectedNode is TreeNode node)
+ {
+ if (node.Tag is PCKFile.FileData)
+ {
+ if (node.Parent is TreeNode parentNode)
+ {
+ nodeCollection = parentNode.Nodes;
+ }
+ }
+ else
+ nodeCollection = node.Nodes;
+ }
nodeCollection.Add(folerNode);
}
}
@@ -1388,6 +1415,7 @@ namespace PckStudio
{
//System.Diagnostics.Process.Start(hosturl + "pckStudio#faq");
}
+
// BIG TODO
#region converts and ports all skins in pck to mc bedrock format
// items class for use in bedrock skin conversion
@@ -2393,244 +2421,6 @@ namespace PckStudio
}
#endregion
- #region 3ds feature in testing
-
- private struct loadedTexture
- {
- public bool modified;
- public uint gpuCommandsOffset;
- public uint gpuCommandsWordCount;
- public uint offset;
- public int length;
- public RenderBase.OTexture texture;
- }
-
- private struct loadedMaterial
- {
- public string texture0;
- public string texture1;
- public string texture2;
- public uint gpuCommandsOffset;
- public uint gpuCommandsWordCount;
- }
-
- private class loadedBCH
- {
- public uint mainHeaderOffset;
- public uint gpuCommandsOffset;
- public uint dataOffset;
- public uint relocationTableOffset;
- public uint relocationTableLength;
- public List textures;
- public List materials;
-
- public loadedBCH()
- {
- textures = new List();
- materials = new List();
- }
- }
-
- private byte[] align(byte[] input)
- {
- int length = input.Length;
- while ((length & 0x7f) > 0) length++;
- byte[] output = new byte[length];
- Buffer.BlockCopy(input, 0, output, 0, input.Length);
- return output;
- }
-
- private void replaceData(Stream data, uint offset, int length, byte[] newData)
- {
- data.Seek(offset + length, SeekOrigin.Begin);
- byte[] after = new byte[data.Length - data.Position];
- data.Read(after, 0, after.Length);
- data.SetLength(offset);
- data.Seek(offset, SeekOrigin.Begin);
- data.Write(newData, 0, newData.Length);
- data.Write(after, 0, after.Length);
- }
-
- private void updateTexture(int index, loadedTexture newTex)
- {
- bch.textures.RemoveAt(index);
- bch.textures.Insert(index, newTex);
- }
-
- private void replaceCommand(Stream data, BinaryWriter output, uint newVal)
- {
- data.Seek(-8, SeekOrigin.Current);
- output.Write(newVal);
- data.Seek(4, SeekOrigin.Current);
- }
-
- private void updateAddress(Stream data, BinaryReader input, BinaryWriter output, int diff)
- {
- uint offset = input.ReadUInt32();
- offset = (uint)(offset + diff);
- data.Seek(-4, SeekOrigin.Current);
- output.Write(offset);
- }
-
- loadedBCH bch;
-
- private void create3dstToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (treeViewMain.SelectedNode != null)
- {
- loadedTexture tex = new loadedTexture();
-
- SaveFileDialog exportDs = new SaveFileDialog();
- exportDs.ShowDialog();
- string currentFile = exportDs.FileName;
-
- bch = new loadedBCH();
-
- using (FileStream data = new FileStream(currentFile, FileMode.Open))
- {
- BinaryReader input = new BinaryReader(data);
- BinaryWriter output = new BinaryWriter(data);
-
- MemoryStream png = new MemoryStream(((PCKFile.FileData)(treeViewMain.SelectedNode.Tag)).data); //Gets image data from minefile data
- Image skinPicture = Image.FromStream(png); //Constructs image data into image
- pictureBoxImagePreview.Image = skinPicture; //Sets image preview to image
-
- byte[] buffer = new byte[skinPicture.Width * skinPicture.Height * 4];
- input.Read(buffer, 0, buffer.Length);
- Bitmap texture = TextureCodec.decode(buffer, skinPicture.Width, skinPicture.Height, RenderBase.OTextureFormat.rgba8);
- tex.texture = new RenderBase.OTexture(texture, "Texure");
-
- //tex.texture = treeViewMain.SelectedNode.Tag;
-
- for (int i = 0; i < bch.textures.Count; i++)
- {
- tex = bch.textures[i];
- tex.modified = true;
-
- if (tex.modified)
- {
- byte[] bufferx = align(TextureCodec.encode(tex.texture.texture, RenderBase.OTextureFormat.rgba8));
- int diff = bufferx.Length - tex.length;
-
- replaceData(data, tex.offset, tex.length, bufferx);
-
- //Update offsets of next textures
- tex.length = bufferx.Length;
- tex.modified = false;
- updateTexture(i, tex);
- for (int j = i; j < bch.textures.Count; j++)
- {
- loadedTexture next = bch.textures[j];
- next.offset = (uint)(next.offset + diff);
- updateTexture(j, next);
- }
-
- //Update all addresses poiting after the replaced data
- bch.relocationTableOffset = (uint)(bch.relocationTableOffset + diff);
- for (int index = 0; index < bch.relocationTableLength; index += 4)
- {
- data.Seek(bch.relocationTableOffset + index, SeekOrigin.Begin);
- uint value = input.ReadUInt32();
- uint offset = value & 0x1ffffff;
- byte flags = (byte)(value >> 25);
-
- if ((flags & 0x20) > 0 || flags == 7 || flags == 0xc)
- {
- if ((flags & 0x20) > 0)
- data.Seek((offset * 4) + bch.gpuCommandsOffset, SeekOrigin.Begin);
- else
- data.Seek((offset * 4) + bch.mainHeaderOffset, SeekOrigin.Begin);
-
- uint address = input.ReadUInt32();
- if (address + bch.dataOffset > tex.offset)
- {
- address = (uint)(address + diff);
- data.Seek(-4, SeekOrigin.Current);
- output.Write(address);
- }
- }
- }
-
- uint newSize = (uint)((tex.texture.texture.Width << 16) | tex.texture.texture.Height);
-
- //Update texture format
- data.Seek(tex.gpuCommandsOffset, SeekOrigin.Begin);
- for (int index = 0; index < tex.gpuCommandsWordCount * 3; index++)
- {
- uint command = input.ReadUInt32();
-
- switch (command)
- {
- case 0xf008e:
- case 0xf0096:
- case 0xf009e:
- replaceCommand(data, output, 0); //Set texture format to 0 = RGBA8888
- break;
- case 0xf0082:
- case 0xf0092:
- case 0xf009a:
- replaceCommand(data, output, newSize); //Set new texture size
- break;
- }
- }
-
- //Update material texture format
- foreach (loadedMaterial mat in bch.materials)
- {
- data.Seek(mat.gpuCommandsOffset, SeekOrigin.Begin);
- for (int index = 0; index < mat.gpuCommandsWordCount; index++)
- {
- uint command = input.ReadUInt32();
-
- switch (command)
- {
- case 0xf008e: if (mat.texture0 == tex.texture.name || mat.texture0 == "") replaceCommand(data, output, 0); break;
- case 0xf0096: if (mat.texture1 == tex.texture.name || mat.texture1 == "") replaceCommand(data, output, 0); break;
- case 0xf009e: if (mat.texture2 == tex.texture.name || mat.texture2 == "") replaceCommand(data, output, 0); break;
- }
- }
- }
-
- //Patch up BCH header for new offsets and lengths
- data.Seek(4, SeekOrigin.Begin);
- byte backwardCompatibility = input.ReadByte();
- byte forwardCompatibility = input.ReadByte();
-
- //Update Data Extended and Relocation Table offsets
- data.Seek(18, SeekOrigin.Current);
- if (backwardCompatibility > 0x20) updateAddress(data, input, output, diff);
- updateAddress(data, input, output, diff);
-
- //Update data length
- data.Seek(12, SeekOrigin.Current);
- updateAddress(data, input, output, diff);
- }
- }
- using (Stream file = File.Create(currentFile + ".tmp"))
- {
- CopyStream(output.BaseStream, file);
- }
-
- }
-
- MessageBox.Show("Done!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
-
- }
-
-
- public static void CopyStream(Stream input, Stream output)
- {
- byte[] buffer = new byte[8 * 1024];
- int len;
- while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
- {
- output.Write(buffer, 0, len);
- }
- }
-
- #endregion
-
private void openToolStripMenuItem1_Click(object sender, EventArgs e)
{
DateTime Begin = DateTime.Now;
@@ -2809,9 +2599,9 @@ namespace PckStudio
Process.Start("https://ko-fi.com/mattnl");
}
- private void setFileIcon(TreeNode node, PCKFile.FileData.FileType type)
+ private void SetPckFileIcon(TreeNode node, PCKFile.FileData.FileType type)
{
- switch (type)
+ switch (type)
{
case PCKFile.FileData.FileType.AudioFile:
node.ImageIndex = 1;
@@ -2878,7 +2668,7 @@ namespace PckStudio
{
Console.WriteLine($"Setting {file.filetype} to {type}");
file.filetype = type;
- setFileIcon(t, type);
+ SetPckFileIcon(t, type);
}
}
@@ -2934,7 +2724,7 @@ namespace PckStudio
for (int i = 2; i < 2 + diag.Levels; i++)
{
string mippedPath = textureDirectory + "/" + textureName + "MipMapLevel" + i + textureExtension;
- Console.WriteLine(mippedPath);
+ Debug.WriteLine(mippedPath);
if (currentPCK.HasFile(mippedPath, PCKFile.FileData.FileType.TextureFile))
currentPCK.Files.Remove(currentPCK.GetFile(mippedPath, PCKFile.FileData.FileType.TextureFile));
PCKFile.FileData MipMappedFile = new PCKFile.FileData(mippedPath, PCKFile.FileData.FileType.TextureFile);
@@ -2982,5 +2772,26 @@ namespace PckStudio
{
if (!isSelectingTab) e.Cancel = true;
}
+
+ private void as3DSTextureFileToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (treeViewMain.SelectedNode is TreeNode node &&
+ node.Tag is PCKFile.FileData file &&
+ file.filetype == PCKFile.FileData.FileType.SkinFile)
+ {
+ SaveFileDialog saveFileDialog = new SaveFileDialog();
+ saveFileDialog.Filter = "3DS Texture | *.3dst";
+ saveFileDialog.DefaultExt = ".3dst";
+ if (saveFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ using (var fs = saveFileDialog.OpenFile())
+ {
+ using var ms = new MemoryStream(file.data);
+ Image img = Image.FromStream(ms);
+ _3DSUtil.SetImageTo3DST(fs, img);
+ }
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/PCK-Studio/MainForm.resx b/PCK-Studio/MainForm.resx
index 6da6c071..ce11116c 100644
--- a/PCK-Studio/MainForm.resx
+++ b/PCK-Studio/MainForm.resx
@@ -274,6 +274,18 @@
Import
+
+ 186, 22
+
+
+ Export as 3DS Texture
+
+
+ 210, 22
+
+
+ Export
+
222, 22
@@ -460,7 +472,7 @@
Generate MipMap Texture
- 211, 290
+ 211, 312
contextMenuPCKEntries
@@ -30486,7 +30498,7 @@
True
- 213, 119
+ 288, 119
0, 0
@@ -30558,7 +30570,7 @@
False
- 208, 119
+ 283, 119
186, 23
@@ -30603,7 +30615,7 @@
False
- 208, 151
+ 283, 151
186, 23
@@ -30627,7 +30639,7 @@
Bottom, Right
- 208, 180
+ 283, 180
186, 60
@@ -30660,7 +30672,7 @@
True
- 213, 68
+ 288, 68
0, 0
@@ -30687,7 +30699,7 @@
3, 3, 3, 3
- 588, 240
+ 663, 240
0
@@ -30708,10 +30720,10 @@
0
- 413, 277
+ 338, 277
- 596, 282
+ 671, 282
11
@@ -30780,7 +30792,7 @@
0
- 405, 501
+ 330, 501
10
@@ -30807,7 +30819,7 @@
NoControl
- 413, 50
+ 345, 50
231, 218
@@ -33501,6 +33513,18 @@
System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ exportToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ as3DSTextureFileToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
setFileTypeToolStripMenuItem
diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj
index fb5fdcd1..001f58c0 100644
--- a/PCK-Studio/PckStudio.csproj
+++ b/PCK-Studio/PckStudio.csproj
@@ -159,6 +159,7 @@
+
@@ -629,7 +630,6 @@
-
@@ -662,6 +662,7 @@
+
@@ -670,7 +671,7 @@
5.8.0-alpha0098
- runtime; build; native; contentfiles; analyzers; buildtransitive
+ compile; runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/PCK-Studio/Properties/Resources.Designer.cs b/PCK-Studio/Properties/Resources.Designer.cs
index 5b171c7d..f1953c7d 100644
--- a/PCK-Studio/Properties/Resources.Designer.cs
+++ b/PCK-Studio/Properties/Resources.Designer.cs
@@ -60,6 +60,16 @@ namespace PckStudio.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ public static System.Drawing.Bitmap AddTexture {
+ get {
+ object obj = ResourceManager.GetObject("AddTexture", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Byte[].
///
@@ -100,16 +110,6 @@ namespace PckStudio.Properties {
}
}
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- public static System.Drawing.Bitmap bg2 {
- get {
- object obj = ResourceManager.GetObject("bg2", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
///
/// Looks up a localized resource of type System.Byte[].
///
diff --git a/PCK-Studio/Properties/Resources.resx b/PCK-Studio/Properties/Resources.resx
index 8d86b2cc..9b83af55 100644
--- a/PCK-Studio/Properties/Resources.resx
+++ b/PCK-Studio/Properties/Resources.resx
@@ -220,9 +220,6 @@
..\Resources\Splash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\bg2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\MROE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -280,4 +277,7 @@
..\Resources\iconImageList\BEHAVIOURS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\AddTexture.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/PCK-Studio/Resources/AddTexture.png b/PCK-Studio/Resources/AddTexture.png
new file mode 100644
index 00000000..32c7380b
Binary files /dev/null and b/PCK-Studio/Resources/AddTexture.png differ
diff --git a/PCK-Studio/Resources/bg2.png b/PCK-Studio/Resources/bg2.png
deleted file mode 100644
index 8f9a1e5a..00000000
Binary files a/PCK-Studio/Resources/bg2.png and /dev/null differ
diff --git a/SFGraphics b/SFGraphics
new file mode 160000
index 00000000..ec1c5f07
--- /dev/null
+++ b/SFGraphics
@@ -0,0 +1 @@
+Subproject commit ec1c5f0741722cf6bea29fbe03c6f9226cc4d928