From 08b769b70d25ae63f13eb8d884fe186674b7c4d0 Mon Sep 17 00:00:00 2001 From: MattN-L Date: Mon, 4 Mar 2024 18:41:31 -0500 Subject: [PATCH 01/14] Updated entity resources -Added an icon for invalid entity entries on the entity atlas resource -Fix for "Spectral Arrow" icon being incorrectly offset on the entity atlas resource -Fix for "Zombie Villager" appearing as "Villager" in the Materials Editor --- PCK-Studio/Forms/Editor/MaterialsEditor.resx | 10 +++++----- PCK-Studio/Resources/entities.png | Bin 46157 -> 49985 bytes PCK-Studio/Resources/entityData.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.resx b/PCK-Studio/Forms/Editor/MaterialsEditor.resx index 64662fee..b78bf73d 100644 --- a/PCK-Studio/Forms/Editor/MaterialsEditor.resx +++ b/PCK-Studio/Forms/Editor/MaterialsEditor.resx @@ -127,11 +127,11 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 - QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C - y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga - QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN - 38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADdSURBVDhPzZJB + CoJQEIa9jy0iPFAnCDpAtG3ZooUE4b6oVtIuClpJIAgqZEVlKpqEHUAm5pGPmhTbRA18G//5P5iHgvA3 + I7ZniiQ7aVM9QZzcOKYbwVDbw8I6A2YAICBvg2VJdtjSs2Cse1Dt6tCYbliGO0UCFlLBxAj590yA0D4X + 1Ec7CK8JF9j+lUmWzoVlpYJaz4JKZ5ULZqWCT6F9Jhhowcv9eeBOoQBvPXoBrA0zF8yyR6V9LvCjGLYH + NxfMvipIMaQ3Ux6ClPYFsaUq/bmd0rspuIO/Pe3/bu5p+sr3gTvFEQAAAABJRU5ErkJggg== diff --git a/PCK-Studio/Resources/entities.png b/PCK-Studio/Resources/entities.png index 31371595e4822382bae1364327fa7fd501faeb7a..46881de8483a3d436834c4f878fbddfc2e9cc96f 100644 GIT binary patch literal 49985 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 ScN;;#ua}Ci6)NS;!u~(}uG|^` literal 46157 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Ξ)bieb#VXXFUiY z;GKph^j!29t#$y}d2M`LW2nx(nu8}_yFp>jGOr>D?lW8~Pg$d5LJCIEN1eW9RzJf% zSNY2LfmrPLfZ_#jQl_8M(EQ!o7uXkuCfYzAa=&GKMjLaX_~hiTpeha!ZyBY#2YEl{a&--m50 zBC@*`u}2GHwl7dZJQ}P3yQ(rZnASl0Tm8#SG0eHLIoSWQva-^9Ugp6IGevHO_H&Yg zA4FvAMbUS}AFlfqSP^hheihpwF0*NX2mb}jV*_*wAq+|^WjTv+a6_ zk$h^kjJ!=$zjC=S{-V8!tskRXa?4y22Y90a;G--+O1vq4xwAxt?#b+ACK8&QRE{R= z%zPw5gjI*)BsC}H_S)KfC9z!h!UjW1}v$sauj5qe!Bq{KValFUXH zu~TuLk4c1lT(Zkxy?2Ar*0Ge#0d5Oe#VA5_mhY1P2&18^_Dkrv`;_(_Il!OkY_Ux9~RLuLtPbbP^NE=n#{e0IN7U~$Cv zrK0^}C3dy#HxzPY#Q<5Gii*l~Am){IS+E5bH!isZ^5O^Sa_f>%Fi;;s&ZpCZtW@Cf z=L7+gJ`a&QtS1?gaj1wW^)rufj8*m9i=9y1#d7l@;UQQSW5VuztMB64wSg;V8jx}+ z`n`jrBd4MilO~H^K`a%qz34EY75e`qJ=xCEIy%D-Z87xy{gGBr=Ap*u$%@zdh{5T@ z*=uZf=Gp#KTB|fQimOsMaMfYc(F#51bq@~dNQ|Y~rKP2L%UYO-$ikU8G`Eg+xg>F~ zRb1rQzNL(r=f4mJiJ1`s7p&m(5S2)frSE$g-Thj3XVAn;{~{se;+_UXco4Rzt@B>c zfZ1sWKnws57{d<1kw-P@-o+lM5in#2?vdOI58i(|vIw`iD-QxbFBH|El|8Wt`F~MF BMGF7` diff --git a/PCK-Studio/Resources/entityData.json b/PCK-Studio/Resources/entityData.json index 27621c86..42c39cb0 100644 --- a/PCK-Studio/Resources/entityData.json +++ b/PCK-Studio/Resources/entityData.json @@ -225,7 +225,7 @@ { "": "" }, { "": "" }, { "villager": "Villager (PS4 EXCLUSIVE)" }, - { "zombie_villager": "Villager (PS4 EXCLUSIVE)" }, + { "zombie_villager": "Zombie Villager (PS4 EXCLUSIVE)" }, { "": "" }, { "phantom_invisible": "Phantom (Second Layer)" }, { "enderman_invisible": "Enderman (Second Layer)" }, From 89c29051d417d4ceb2400f815d3c8657b2052796 Mon Sep 17 00:00:00 2001 From: MattN-L Date: Mon, 4 Mar 2024 23:13:55 -0500 Subject: [PATCH 02/14] EntityMaterials Editor fix -Files with invalid materials, such as TNBC pack, no longer crash the program -Invalid material entries now have a unique icon -Invalid materials can be hidden by the user should they be detected. -Entity Materials Editor UI has been improved slightly --- .../Forms/Editor/MaterialsEditor.Designer.cs | 13 ++-- PCK-Studio/Forms/Editor/MaterialsEditor.cs | 65 ++++++++++++------- PCK-Studio/PckStudio.csproj | 4 +- Vendor/OMI-Lib | 2 +- 4 files changed, 51 insertions(+), 33 deletions(-) diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs b/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs index ce1049e5..7d93ab77 100644 --- a/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs @@ -54,12 +54,11 @@ this.treeView1.Location = new System.Drawing.Point(20, 84); this.treeView1.Margin = new System.Windows.Forms.Padding(0); this.treeView1.Name = "treeView1"; - this.treeView1.Size = new System.Drawing.Size(136, 176); + this.treeView1.Size = new System.Drawing.Size(246, 234); this.treeView1.TabIndex = 13; this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); this.treeView1.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick); this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown); - this.treeView1.MouseHover += new System.EventHandler(this.treeView1_MouseHover); // // metroContextMenu1 // @@ -92,7 +91,7 @@ this.helpToolStripMenuItem}); this.menuStrip.Location = new System.Drawing.Point(20, 60); this.menuStrip.Name = "menuStrip"; - this.menuStrip.Size = new System.Drawing.Size(348, 24); + this.menuStrip.Size = new System.Drawing.Size(246, 24); this.menuStrip.TabIndex = 14; this.menuStrip.Text = "menuStrip1"; // @@ -123,7 +122,7 @@ // xLabel // this.xLabel.AutoSize = true; - this.xLabel.Location = new System.Drawing.Point(159, 147); + this.xLabel.Location = new System.Drawing.Point(98, 325); this.xLabel.Name = "xLabel"; this.xLabel.Size = new System.Drawing.Size(91, 19); this.xLabel.TabIndex = 30; @@ -141,9 +140,9 @@ "entity_emissive_alpha_only", "entity_alphatest_change_color", "entity_change_color"}); - this.materialComboBox.Location = new System.Drawing.Point(159, 169); + this.materialComboBox.Location = new System.Drawing.Point(20, 347); this.materialComboBox.Name = "materialComboBox"; - this.materialComboBox.Size = new System.Drawing.Size(209, 29); + this.materialComboBox.Size = new System.Drawing.Size(246, 29); this.materialComboBox.TabIndex = 31; this.materialComboBox.Theme = MetroFramework.MetroThemeStyle.Dark; this.materialComboBox.UseSelectable = true; @@ -153,7 +152,7 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(388, 280); + this.ClientSize = new System.Drawing.Size(286, 399); this.Controls.Add(this.materialComboBox); this.Controls.Add(this.xLabel); this.Controls.Add(this.menuStrip); diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.cs b/PCK-Studio/Forms/Editor/MaterialsEditor.cs index 88bb11e8..c1364ab3 100644 --- a/PCK-Studio/Forms/Editor/MaterialsEditor.cs +++ b/PCK-Studio/Forms/Editor/MaterialsEditor.cs @@ -23,6 +23,11 @@ namespace PckStudio.Forms.Editor private readonly JObject EntityJSONData = JObject.Parse(Properties.Resources.entityData); + private bool showInvalidEntries; + + //Holds invalid entries so they can be added back to the material file on save should the user decide to hide them + List hiddenInvalidEntries = new List(); + void SetUpTree() { treeView1.BeginUpdate(); @@ -31,6 +36,8 @@ namespace PckStudio.Forms.Editor { TreeNode EntryNode = new TreeNode(entry.Name); + EntryNode.ImageIndex = -1; + foreach (JObject content in EntityJSONData["materials"].Children()) { var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.Name); @@ -38,13 +45,27 @@ namespace PckStudio.Forms.Editor { EntryNode.Text = (string)prop.Value; EntryNode.ImageIndex = EntityJSONData["materials"].Children().ToList().IndexOf(content); - EntryNode.SelectedImageIndex = EntryNode.ImageIndex; break; } } EntryNode.Tag = entry; + // check for invalid material entry + if (EntryNode.ImageIndex == -1) + { + EntryNode.ImageIndex = 127; // icon for invalid entry + EntryNode.Text += " (Invalid)"; + + if (!showInvalidEntries) + { + hiddenInvalidEntries.Add(entry); + continue; + } + } + + EntryNode.SelectedImageIndex = EntryNode.ImageIndex; + treeView1.Nodes.Add(EntryNode); } treeView1.EndUpdate(); @@ -58,13 +79,21 @@ namespace PckStudio.Forms.Editor using (var stream = new MemoryStream(file.Data)) { var reader = new MaterialFileReader(); - materialFile = reader.FromStream(stream); - } + materialFile = reader.FromStream(stream); - treeView1.ImageList = new ImageList(); - ApplicationScope.EntityImages.ToList().ForEach(treeView1.ImageList.Images.Add); - treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit; - SetUpTree(); + if (materialFile.hasInvalidEntries()) + { + DialogResult dr = MessageBox.Show(this, "Unsupported entities were found in this file. Would you like to display them?", "Invalid data found", MessageBoxButtons.YesNoCancel); + if(dr == DialogResult.Cancel) Close(); + + showInvalidEntries = dr == DialogResult.Yes; + } + + treeView1.ImageList = new ImageList(); + ApplicationScope.EntityImages.ToList().ForEach(treeView1.ImageList.Images.Add); + treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit; + SetUpTree(); + } } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) @@ -93,26 +122,11 @@ namespace PckStudio.Forms.Editor materialComboBox.Enabled = false; } - private void addNewPositionOverrideToolStripMenuItem_Click(object sender, EventArgs e) - { - - } - - private void addNewEntryToolStripMenuItem_Click(object sender, EventArgs e) - { - - } - private void treeView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) removeToolStripMenuItem_Click(sender, e); } - private void treeView1_MouseHover(object sender, EventArgs e) - { - - } - private void saveToolStripMenuItem1_Click(object sender, EventArgs e) { materialFile = new MaterialContainer(); @@ -125,6 +139,11 @@ namespace PckStudio.Forms.Editor } } + foreach (MaterialContainer.Material mat in hiddenInvalidEntries) + { + materialFile.Add(mat); + } + _file.SetData(new MaterialFileWriter(materialFile)); DialogResult = DialogResult.OK; @@ -158,8 +177,6 @@ namespace PckStudio.Forms.Editor } } treeView1.Nodes.Add(NewEntryNode); - - addNewPositionOverrideToolStripMenuItem_Click(sender, e); // adds a Position Override to the new Override } } diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index c7685cff..3013435f 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -4,7 +4,7 @@ preview true - NDEBUG + NDEBUG publish\ true Disk @@ -456,6 +456,7 @@ AddEntry.cs + Designer AddLanguage.cs @@ -531,6 +532,7 @@ AddParameter.cs + Designer InProgressPrompt.cs diff --git a/Vendor/OMI-Lib b/Vendor/OMI-Lib index 3209ecca..036d680f 160000 --- a/Vendor/OMI-Lib +++ b/Vendor/OMI-Lib @@ -1 +1 @@ -Subproject commit 3209ecca8568933fac8c20c20a9952ee3dc1b526 +Subproject commit 036d680f977f1db2e2ec7ab8fc5813b990278aed From 4809f6a71f80d485e68028a3e89285759a7337a0 Mon Sep 17 00:00:00 2001 From: MattN-L Date: Tue, 5 Mar 2024 01:39:00 -0500 Subject: [PATCH 03/14] Improved file extraction code --- PCK-Studio/MainForm.cs | 129 ++++++++++++++++++++++++----------------- 1 file changed, 76 insertions(+), 53 deletions(-) diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 183f207e..d9c7cb3d 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -555,74 +555,97 @@ namespace PckStudio } } + private void extractFile(string outFilePath, PckFileData file) + { + File.WriteAllBytes(outFilePath, file.Data); + if (file.Properties.Count > 0) + { + using var fs = File.CreateText($"{outFilePath}.txt"); + file.Properties.ForEach(property => fs.WriteLine($"{property.Key}: {property.Value}")); + } + } + + private void extractFolderFile(string outPath, PckFileData file) + { + TreeNode node = treeViewMain.SelectedNode; + + // abb = "Abbreviated Path" + string abbPath = Path.GetDirectoryName(file.Filename); + int startIndex = abbPath.IndexOf(node.Text); + abbPath = abbPath.Substring(startIndex, abbPath.Length - startIndex); + string finalPath = ($"{outPath}/{abbPath}/").Replace('\\', '/'); + + if (!Directory.Exists(finalPath)) Directory.CreateDirectory(finalPath); + + extractFile(finalPath + "/" + Path.GetFileName(file.Filename), file); + } + + private void extractFolder(string outPath) + { + TreeNode node = treeViewMain.SelectedNode; + + string selectedFolder = node.FullPath; + + if (IsSubPCKNode(node.FullPath)) + { + GetAllChildNodes(node.Nodes).ForEach(fileNode => + { + if (fileNode.TryGetTagData(out PckFileData file)) + { + extractFolderFile(outPath, file); + } + } + ); + } + else + { + foreach (var _file in currentPCK.GetFiles()) + { + if (_file.Filename.StartsWith(selectedFolder)) + { + extractFolderFile(outPath, _file); + } + }; + } + } + private void extractToolStripMenuItem_Click(object sender, EventArgs e) { var node = treeViewMain.SelectedNode; + if (node == null) + { + MessageBox.Show(this, "The selected node was null. Please select a node and try again.", "Node not extracted"); + return; - if (node.TryGetTagData(out PckFileData file)) + } + + if (node.Tag == null) + { + OpenFolderDialog dialog = new OpenFolderDialog(); + dialog.Title = @"Select destination folder"; + + if (dialog.ShowDialog(Handle) == true) extractFolder(dialog.ResultPath); + } + else if (node.TryGetTagData(out PckFileData file)) { using SaveFileDialog exFile = new SaveFileDialog(); exFile.FileName = Path.GetFileName(file.Filename); exFile.Filter = Path.GetExtension(file.Filename).Replace(".", string.Empty) + " File|*" + Path.GetExtension(file.Filename); if (exFile.ShowDialog() != DialogResult.OK || // Makes sure chosen directory isn't null or whitespace AKA makes sure its usable - string.IsNullOrWhiteSpace(Path.GetDirectoryName(exFile.FileName))) return; - string extractFilePath = exFile.FileName; + string.IsNullOrWhiteSpace(Path.GetDirectoryName(exFile.FileName))) + { + MessageBox.Show(this, "The chosen directory is invalid. Please choose a different one and try again.", "Node not extracted"); - File.WriteAllBytes(extractFilePath, file.Data); - if (file.Properties.Count > 0) - { - using var fs = File.CreateText($"{extractFilePath}.txt"); - file.Properties.ForEach(property => fs.WriteLine($"{property.Key}: {property.Value}")); + return; } - // Verification that file extraction path was successful - MessageBox.Show("File Extracted"); - return; + + extractFile(exFile.FileName, file); } - string selectedFolder = node.FullPath; - OpenFolderDialog dialog = new OpenFolderDialog(); - dialog.Title = @"Select destination folder"; - - if (dialog.ShowDialog() == true) - { - string extractPath = dialog.ResultPath; - if (IsSubPCKNode(node.FullPath) && node.Tag == null) - { - GetAllChildNodes(node.Nodes).ForEach(fileNode => - { - if (fileNode.TryGetTagData(out PckFileData file)) - { - Directory.CreateDirectory($"{extractPath}/{Path.GetDirectoryName(file.Filename)}"); - File.WriteAllBytes($"{extractPath}/{file.Filename}", file.Data); - if (file.Properties.Count > 0) - { - using var fs = File.CreateText($"{extractPath}/{file.Filename}.txt"); - file.Properties.ForEach(property => fs.WriteLine($"{property.Key}: {property.Value}")); - } - } - } - ); - } - else - { - foreach (var _file in currentPCK.GetFiles()) - { - if (_file.Filename.StartsWith(selectedFolder)) - { - Directory.CreateDirectory($"{extractPath}/{Path.GetDirectoryName(_file.Filename)}"); - File.WriteAllBytes($"{extractPath}/{_file.Filename}", _file.Data); - if (_file.Properties.Count > 0) - { - using var fs = File.CreateText($"{extractPath}/{_file.Filename}.txt"); - _file.Properties.ForEach(property => fs.WriteLine($"{property.Key}: {property.Value}")); - } - } - }; - } - MessageBox.Show("Folder Extracted"); - } + // Verification that file extraction path was successful + MessageBox.Show($"\"{node.Text}\" successfully extracted"); } private void SaveTemplate() From 11fe0e1ff1ff3ca27d124fc0fe8b89250f058102 Mon Sep 17 00:00:00 2001 From: MattN-L Date: Tue, 5 Mar 2024 11:23:16 -0500 Subject: [PATCH 04/14] Removed cancel option from invalid entry prompt --- PCK-Studio/Forms/Editor/MaterialsEditor.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.cs b/PCK-Studio/Forms/Editor/MaterialsEditor.cs index c1364ab3..614487e1 100644 --- a/PCK-Studio/Forms/Editor/MaterialsEditor.cs +++ b/PCK-Studio/Forms/Editor/MaterialsEditor.cs @@ -83,8 +83,7 @@ namespace PckStudio.Forms.Editor if (materialFile.hasInvalidEntries()) { - DialogResult dr = MessageBox.Show(this, "Unsupported entities were found in this file. Would you like to display them?", "Invalid data found", MessageBoxButtons.YesNoCancel); - if(dr == DialogResult.Cancel) Close(); + DialogResult dr = MessageBox.Show(this, "Unsupported entities were found in this file. Would you like to display them?", "Invalid data found", MessageBoxButtons.YesNo); showInvalidEntries = dr == DialogResult.Yes; } From b862ffbf0fcb4a2de33d9b9339685ccf7d734c08 Mon Sep 17 00:00:00 2001 From: MattN-L Date: Tue, 5 Mar 2024 13:26:29 -0500 Subject: [PATCH 05/14] Update tileData.json -Added color variants for stems, double tall grass, tall fern, vines -Added internal names for kelp for use in the atlas editor --- PCK-Studio/Resources/tileData.json | 108 ++++++++++++++++++++++++----- 1 file changed, 91 insertions(+), 17 deletions(-) diff --git a/PCK-Studio/Resources/tileData.json b/PCK-Studio/Resources/tileData.json index 4a25fc48..9bbd3d12 100644 --- a/PCK-Studio/Resources/tileData.json +++ b/PCK-Studio/Resources/tileData.json @@ -521,7 +521,16 @@ }, { "internalName": "stem_straight", - "displayName": "Stem" + "displayName": "Stem", + "hasColourEntry": true, + "colourEntry": { + "isWaterColour": false, + "defaultName": "Tile_StemMin", + "variants": [ + "Tile_StemMin", + "Tile_StemMax" + ] + } }, { "internalName": "rail_normal_turned", @@ -585,7 +594,16 @@ }, { "internalName": "stem_bent", - "displayName": "Stem (Attached)" + "displayName": "Stem (Attached)", + "hasColourEntry": true, + "colourEntry": { + "isWaterColour": false, + "defaultName": "Tile_StemMin", + "variants": [ + "Tile_StemMin", + "Tile_StemMax" + ] + } }, { "internalName": "rail_normal", @@ -673,7 +691,19 @@ }, { "internalName": "vine", - "displayName": "Vines" + "displayName": "Vines", + "hasColourEntry": true, + "colourEntry": { + "isWaterColour": false, + "defaultName": "Foliage_Default", + "variants": [ + "Foliage_Default", + "Foliage_Evergreen", + "Foliage_Birch", + "Foliage_Mesa", + "Foliage_Swampland" + ] + } }, { "internalName": "lapis_block", @@ -971,8 +1001,8 @@ "hasColourEntry": true, "colourEntry": { "isWaterColour": true, - "defaultName": "default", - "variants": [ "default" ] + "defaultName": "", + "variants": [] } }, { @@ -981,8 +1011,8 @@ "hasColourEntry": true, "colourEntry": { "isWaterColour": true, - "defaultName": "default", - "variants": [ "default" ] + "defaultName": "", + "variants": [] } }, { @@ -1439,11 +1469,33 @@ }, { "internalName": "double_plant_fern_top", - "displayName": "Large Fern (Top)" + "displayName": "Large Fern (Top)", + "hasColourEntry": true, + "colourEntry": { + "isWaterColour": false, + "defaultName": "Grass_Common", + "variants": [ + "Grass_Common", + "Grass_Mesa", + "Grass_Swamp1", + "Grass_Swamp2" + ] + } }, { "internalName": "double_plant_grass_top", - "displayName": "Double Tall Grass (Top)" + "displayName": "Double Tall Grass (Top)", + "hasColourEntry": true, + "colourEntry": { + "isWaterColour": false, + "defaultName": "Grass_Common", + "variants": [ + "Grass_Common", + "Grass_Mesa", + "Grass_Swamp1", + "Grass_Swamp2" + ] + } }, { "internalName": "double_plant_paeonia_top", @@ -1527,11 +1579,33 @@ }, { "internalName": "double_plant_fern_bottom", - "displayName": "Large Fern (Bottom)" + "displayName": "Large Fern (Bottom)", + "hasColourEntry": true, + "colourEntry": { + "isWaterColour": false, + "defaultName": "Grass_Common", + "variants": [ + "Grass_Common", + "Grass_Mesa", + "Grass_Swamp1", + "Grass_Swamp2" + ] + } }, { "internalName": "double_plant_grass_bottom", - "displayName": "Double Tall Grass (Bottom)" + "displayName": "Double Tall Grass (Bottom)", + "hasColourEntry": true, + "colourEntry": { + "isWaterColour": false, + "defaultName": "Grass_Common", + "variants": [ + "Grass_Common", + "Grass_Mesa", + "Grass_Swamp1", + "Grass_Swamp2" + ] + } }, { "internalName": "double_plant_paeonia_bottom", @@ -2318,15 +2392,15 @@ "displayName": "Kelp (Bottom)" }, { - "internalName": "", + "internalName": "kelp_a", "displayName": "" }, { - "internalName": "", + "internalName": "kelp_a", "displayName": "" }, { - "internalName": "", + "internalName": "kelp_a", "displayName": "" }, { @@ -2334,15 +2408,15 @@ "displayName": "Kelp (Top)" }, { - "internalName": "", + "internalName": "kelp_top_a", "displayName": "" }, { - "internalName": "", + "internalName": "kelp_top_a", "displayName": "" }, { - "internalName": "", + "internalName": "kelp_top_a", "displayName": "" }, { From 550ee7ab6d75897fde3ca81891e466511734b8c9 Mon Sep 17 00:00:00 2001 From: MattN-L Date: Tue, 5 Mar 2024 13:28:09 -0500 Subject: [PATCH 06/14] Updated Atlas Editor -Fixed keyboard input not working on tiles with duplicate names -Duplicate tiles now display the texture, variants, and name of its "parent" tile -Fixed Animated tiles not correctly displaying variant box -Water tiles now automatically fill in colors from the water table --- PCK-Studio/Forms/Editor/TextureAtlasEditor.cs | 68 +++++++++++++------ 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs b/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs index 1d71098f..99cb4972 100644 --- a/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs +++ b/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs @@ -56,6 +56,8 @@ namespace PckStudio.Forms.Editor private readonly List _tiles; private AtlasTile _selectedTile; + // the "parent" tile for tiles that share name; i.e. parts of water_flow + private AtlasTile dataTile; private sealed class AtlasTile { internal readonly int Index; @@ -137,18 +139,20 @@ namespace PckStudio.Forms.Editor if (_tiles is null || !_tiles.IndexInRange(index) || (_selectedTile = _tiles[index]) is null) return; - if(string.IsNullOrEmpty(_selectedTile.Tile.DisplayName)) - { - // changes the selected tile to the base flowing tile (carries all properties over) - Matt - _selectedTile = _tiles.Find(t => t.Tile.InternalName == _selectedTile.Tile.InternalName); - } + dataTile = _selectedTile; - tileNameLabel.Text = $"{_selectedTile.Tile.DisplayName}"; + if (string.IsNullOrEmpty(dataTile.Tile.DisplayName)) + { + dataTile = _tiles.Find(t => t.Tile.InternalName == _selectedTile.Tile.InternalName); + } + + selectTilePictureBox.Image = dataTile.Texture; + tileNameLabel.Text = $"{dataTile.Tile.DisplayName}"; selectTilePictureBox.BlendColor = GetBlendColor(); selectTilePictureBox.UseBlendColor = applyColorMaskToolStripMenuItem.Checked; bool hasAnimation = - _pckFile.TryGetValue($"res/textures/{_atlasType}/{_selectedTile.Tile.InternalName}.png", PckFileType.TextureFile, out var animationFile); + _pckFile.TryGetValue($"res/textures/{_atlasType}/{dataTile.Tile.InternalName}.png", PckFileType.TextureFile, out var animationFile); animationButton.Text = hasAnimation ? "Edit Animation" : "Create Animation"; replaceButton.Enabled = !hasAnimation; @@ -158,16 +162,24 @@ namespace PckStudio.Forms.Editor { var animation = AnimationHelper.GetAnimationFromFile(animationFile); selectTilePictureBox.Start(animation); - return; } - if (variantComboBox.Enabled = variantLabel.Visible = variantComboBox.Visible = _selectedTile.Tile.HasColourEntry && _selectedTile.Tile.ColourEntry.Variants.Length > 1) + if (variantComboBox.Enabled = variantLabel.Visible = variantComboBox.Visible = + dataTile.Tile.HasColourEntry && dataTile.Tile.ColourEntry.Variants.Length > 1) { - variantComboBox.Items.AddRange(_selectedTile.Tile.ColourEntry.Variants); - variantComboBox.SelectedItem = _selectedTile.Tile.ColourEntry.DefaultName; + variantComboBox.Items.AddRange(dataTile.Tile.ColourEntry.Variants); + variantComboBox.SelectedItem = dataTile.Tile.ColourEntry.DefaultName; + } + else if(variantComboBox.Enabled = variantLabel.Visible = variantComboBox.Visible = + dataTile.Tile.HasColourEntry && dataTile.Tile.ColourEntry.IsWaterColour && _colourTable.WaterColors.Count > 0) + { + foreach (var col in _colourTable.WaterColors) + { + variantComboBox.Items.Add(col.Name); + } + + variantComboBox.SelectedItem = _colourTable.WaterColors[0].Name; } - - selectTilePictureBox.Image = _selectedTile.Texture; } private static int GetSelectedImageIndex( @@ -291,18 +303,21 @@ namespace PckStudio.Forms.Editor private Color GetBlendColor() { - if (_selectedTile.Tile.HasColourEntry && _selectedTile.Tile.ColourEntry is not null) - return FindBlendColorByKey(_selectedTile.Tile.ColourEntry.DefaultName); + if (dataTile.Tile.HasColourEntry && dataTile.Tile.ColourEntry is not null) + { + var col = FindBlendColorByKey(dataTile.Tile.ColourEntry.DefaultName); + return col; + } return Color.White; } private Color FindBlendColorByKey(string colorKey) { if (_colourTable is not null && - _selectedTile.Tile.HasColourEntry && - _selectedTile.Tile.ColourEntry is not null) + dataTile.Tile.HasColourEntry && + dataTile.Tile.ColourEntry is not null) { - if (_selectedTile.Tile.ColourEntry.IsWaterColour && + if (dataTile.Tile.ColourEntry.IsWaterColour && _colourTable.WaterColors.FirstOrDefault(entry => entry.Name == colorKey) is ColorContainer.WaterColor waterColor) { return waterColor.SurfaceColor; @@ -408,6 +423,8 @@ namespace PckStudio.Forms.Editor } AnimationHelper.SaveAnimationToFile(file, animation); + // so animations can automatically update upon saving + SelectedIndex = _selectedTile.Index; } private void extractTileToolStripMenuItem_Click(object sender, EventArgs e) @@ -425,13 +442,20 @@ namespace PckStudio.Forms.Editor private void variantComboBox_SelectedIndexChanged(object sender, EventArgs e) { - if (_selectedTile.Tile.ColourEntry is not null && - _selectedTile.Tile.ColourEntry.Variants.IndexInRange(variantComboBox.SelectedIndex)) + if (dataTile.Tile.ColourEntry is not null && + dataTile.Tile.ColourEntry.Variants.IndexInRange(variantComboBox.SelectedIndex)) { - string colorKey = _selectedTile.Tile.ColourEntry.Variants[variantComboBox.SelectedIndex]; + string colorKey = dataTile.Tile.ColourEntry.IsWaterColour ? variantComboBox.SelectedValue.ToString() : dataTile.Tile.ColourEntry.Variants[variantComboBox.SelectedIndex]; selectTilePictureBox.BlendColor = FindBlendColorByKey(colorKey); - selectTilePictureBox.Image = _selectedTile.Texture; + selectTilePictureBox.Image = dataTile.Texture; } + else if(dataTile.Tile.ColourEntry is not null && + dataTile.Tile.ColourEntry.IsWaterColour) + { + string colorKey = variantComboBox.GetItemText(variantComboBox.SelectedItem); + selectTilePictureBox.BlendColor = FindBlendColorByKey(colorKey); + selectTilePictureBox.Image = dataTile.Texture; + } } private void applyColorMaskToolStripMenuItem_CheckedChanged(object sender, EventArgs e) From c645cef9edd4c4958e8d783e57020ea0e48fe984 Mon Sep 17 00:00:00 2001 From: MattN-L Date: Sun, 10 Mar 2024 16:40:25 -0400 Subject: [PATCH 07/14] Added Classic Water variant support --- .../Editor/TextureAtlasEditor.Designer.cs | 8 +- PCK-Studio/Forms/Editor/TextureAtlasEditor.cs | 55 ++++++------ PCK-Studio/Resources/tileData.json | 90 ++++++++++++++++++- 3 files changed, 118 insertions(+), 35 deletions(-) diff --git a/PCK-Studio/Forms/Editor/TextureAtlasEditor.Designer.cs b/PCK-Studio/Forms/Editor/TextureAtlasEditor.Designer.cs index 0b9c0290..9487197b 100644 --- a/PCK-Studio/Forms/Editor/TextureAtlasEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/TextureAtlasEditor.Designer.cs @@ -90,14 +90,14 @@ // saveToolStripMenuItem // this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(131, 22); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.saveToolStripMenuItem.Text = "Save"; this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); // // extractTileToolStripMenuItem // this.extractTileToolStripMenuItem.Name = "extractTileToolStripMenuItem"; - this.extractTileToolStripMenuItem.Size = new System.Drawing.Size(131, 22); + this.extractTileToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.extractTileToolStripMenuItem.Text = "Extract Tile"; this.extractTileToolStripMenuItem.Click += new System.EventHandler(this.extractTileToolStripMenuItem_Click); // @@ -117,7 +117,7 @@ this.applyColorMaskToolStripMenuItem.CheckOnClick = true; this.applyColorMaskToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.applyColorMaskToolStripMenuItem.Name = "applyColorMaskToolStripMenuItem"; - this.applyColorMaskToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.applyColorMaskToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.applyColorMaskToolStripMenuItem.Text = "Apply Color Mask"; this.applyColorMaskToolStripMenuItem.CheckedChanged += new System.EventHandler(this.applyColorMaskToolStripMenuItem_CheckedChanged); // @@ -127,7 +127,7 @@ this.playAnimationsToolStripMenuItem.CheckOnClick = true; this.playAnimationsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.playAnimationsToolStripMenuItem.Name = "playAnimationsToolStripMenuItem"; - this.playAnimationsToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.playAnimationsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.playAnimationsToolStripMenuItem.Text = "Play Animations"; this.playAnimationsToolStripMenuItem.CheckedChanged += new System.EventHandler(this.playAnimationsToolStripMenuItem_CheckedChanged); // diff --git a/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs b/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs index 99cb4972..fe569733 100644 --- a/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs +++ b/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs @@ -164,21 +164,26 @@ namespace PckStudio.Forms.Editor selectTilePictureBox.Start(animation); } - if (variantComboBox.Enabled = variantLabel.Visible = variantComboBox.Visible = - dataTile.Tile.HasColourEntry && dataTile.Tile.ColourEntry.Variants.Length > 1) + if (variantComboBox.Enabled = variantLabel.Visible = variantComboBox.Visible = + dataTile.Tile.HasColourEntry) { - variantComboBox.Items.AddRange(dataTile.Tile.ColourEntry.Variants); - variantComboBox.SelectedItem = dataTile.Tile.ColourEntry.DefaultName; - } - else if(variantComboBox.Enabled = variantLabel.Visible = variantComboBox.Visible = - dataTile.Tile.HasColourEntry && dataTile.Tile.ColourEntry.IsWaterColour && _colourTable.WaterColors.Count > 0) - { - foreach (var col in _colourTable.WaterColors) + if (dataTile.Tile.ColourEntry.IsWaterColour && _colourTable.WaterColors.Count > 0) { - variantComboBox.Items.Add(col.Name); + foreach (var col in _colourTable.WaterColors) + { + if(!variantComboBox.Items.Contains(col.Name)) + variantComboBox.Items.Add(col.Name); + } + + dataTile.Tile.ColourEntry.DefaultName = _colourTable.WaterColors[0].Name; } - variantComboBox.SelectedItem = _colourTable.WaterColors[0].Name; + if (dataTile.Tile.ColourEntry.Variants.Length > 1) + { + variantComboBox.Items.AddRange(dataTile.Tile.ColourEntry.Variants); + } + + variantComboBox.SelectedItem = dataTile.Tile.ColourEntry.DefaultName; } } @@ -317,15 +322,18 @@ namespace PckStudio.Forms.Editor dataTile.Tile.HasColourEntry && dataTile.Tile.ColourEntry is not null) { - if (dataTile.Tile.ColourEntry.IsWaterColour && - _colourTable.WaterColors.FirstOrDefault(entry => entry.Name == colorKey) is ColorContainer.WaterColor waterColor) + // basic way to check for classic water colors + if(!dataTile.Tile.ColourEntry.IsWaterColour || colorKey.StartsWith("Water_")) + { + if (_colourTable.Colors.FirstOrDefault(entry => entry.Name == colorKey) is ColorContainer.Color color) + { + return color.ColorPallette; + } + } + else if (_colourTable.WaterColors.FirstOrDefault(entry => entry.Name == colorKey) is ColorContainer.WaterColor waterColor) { return waterColor.SurfaceColor; } - else if (_colourTable.Colors.FirstOrDefault(entry => entry.Name == colorKey) is ColorContainer.Color color) - { - return color.ColorPallette; - } } return Color.White; } @@ -442,20 +450,13 @@ namespace PckStudio.Forms.Editor private void variantComboBox_SelectedIndexChanged(object sender, EventArgs e) { - if (dataTile.Tile.ColourEntry is not null && - dataTile.Tile.ColourEntry.Variants.IndexInRange(variantComboBox.SelectedIndex)) + if (dataTile.Tile.ColourEntry is not null) { - string colorKey = dataTile.Tile.ColourEntry.IsWaterColour ? variantComboBox.SelectedValue.ToString() : dataTile.Tile.ColourEntry.Variants[variantComboBox.SelectedIndex]; + string colorKey = variantComboBox.SelectedItem.ToString(); + selectTilePictureBox.BlendColor = FindBlendColorByKey(colorKey); selectTilePictureBox.Image = dataTile.Texture; } - else if(dataTile.Tile.ColourEntry is not null && - dataTile.Tile.ColourEntry.IsWaterColour) - { - string colorKey = variantComboBox.GetItemText(variantComboBox.SelectedItem); - selectTilePictureBox.BlendColor = FindBlendColorByKey(colorKey); - selectTilePictureBox.Image = dataTile.Texture; - } } private void applyColorMaskToolStripMenuItem_CheckedChanged(object sender, EventArgs e) diff --git a/PCK-Studio/Resources/tileData.json b/PCK-Studio/Resources/tileData.json index 9bbd3d12..d617d7a5 100644 --- a/PCK-Studio/Resources/tileData.json +++ b/PCK-Studio/Resources/tileData.json @@ -1001,8 +1001,49 @@ "hasColourEntry": true, "colourEntry": { "isWaterColour": true, - "defaultName": "", - "variants": [] + "defaultName": "Water_Plains", + "variants": [ + "Water_Ocean", + "Water_Plains", + "Water_Desert", + "Water_ExtremeHills", + "Water_Forest", + "Water_Taiga", + "Water_Swampland", + "Water_River", + "Water_Hell", + "Water_Sky", + "Water_FrozenOcean", + "Water_FrozenRiver", + "Water_IcePlains", + "Water_IceMountains", + "Water_MushroomIsland", + "Water_MushroomIslandShore", + "Water_Beach", + "Water_DesertHills", + "Water_ForestHills", + "Water_TaigaHills", + "Water_ExtremeHillsEdge", + "Water_Jungle", + "Water_JungleHills", + "Water_JungleEdge", + "Water_DeepOcean", + "Water_StoneBeach", + "Water_ColdBeach", + "Water_BirchForest", + "Water_BirchForestHills", + "Water_RoofedForest", + "Water_ColdTaiga", + "Water_ColdTaigaHills", + "Water_MegaTaiga", + "Water_MegaTaigaHills", + "Water_ExtremeHillsPlus", + "Water_Savanna", + "Water_SavannaPlateau", + "Water_Mesa", + "Water_MesaPlateauF", + "Water_MesaPlateau" + ] } }, { @@ -1011,8 +1052,49 @@ "hasColourEntry": true, "colourEntry": { "isWaterColour": true, - "defaultName": "", - "variants": [] + "defaultName": "Water_Plains", + "variants": [ + "Water_Ocean", + "Water_Plains", + "Water_Desert", + "Water_ExtremeHills", + "Water_Forest", + "Water_Taiga", + "Water_Swampland", + "Water_River", + "Water_Hell", + "Water_Sky", + "Water_FrozenOcean", + "Water_FrozenRiver", + "Water_IcePlains", + "Water_IceMountains", + "Water_MushroomIsland", + "Water_MushroomIslandShore", + "Water_Beach", + "Water_DesertHills", + "Water_ForestHills", + "Water_TaigaHills", + "Water_ExtremeHillsEdge", + "Water_Jungle", + "Water_JungleHills", + "Water_JungleEdge", + "Water_DeepOcean", + "Water_StoneBeach", + "Water_ColdBeach", + "Water_BirchForest", + "Water_BirchForestHills", + "Water_RoofedForest", + "Water_ColdTaiga", + "Water_ColdTaigaHills", + "Water_MegaTaiga", + "Water_MegaTaigaHills", + "Water_ExtremeHillsPlus", + "Water_Savanna", + "Water_SavannaPlateau", + "Water_Mesa", + "Water_MesaPlateauF", + "Water_MesaPlateau" + ] } }, { From 2ec739d4c0eef807327873a40a78ee350851144d Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Wed, 13 Mar 2024 18:04:48 +0100 Subject: [PATCH 08/14] MainForm - Fix unable to create skin when no loc file is found --- .../Forms/Skins-And-Textures/AddNewSkin.cs | 18 +++++++++++++----- PCK-Studio/MainForm.cs | 9 +++------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs b/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs index 3f34cb3d..7c80ab59 100644 --- a/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs +++ b/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs @@ -242,15 +242,23 @@ namespace PckStudio.Popups } string skinId = _skinId.ToString("d08"); skin.Filename = $"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 (currentLoc is not null) + { + string skinDisplayNameLocKey = $"IDS_dlcskin{skinId}_DISPLAYNAME"; + skin.Properties.Add("DISPLAYNAMEID", skinDisplayNameLocKey); + currentLoc.AddLocKey(skinDisplayNameLocKey, textSkinName.Text); + } + 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); + if (currentLoc is not null) + { + skin.Properties.Add("THEMENAMEID", $"IDS_dlcskin{skinId}_THEMENAME"); + currentLoc.AddLocKey($"IDS_dlcskin{skinId}_THEMENAME", textThemeName.Text); + } } skin.Properties.Add("ANIM", anim); skin.Properties.Add("GAME_FLAGS", "0x18"); diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index d9c7cb3d..dd4f1c8b 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -801,12 +801,9 @@ namespace PckStudio private void createSkinToolStripMenuItem_Click(object sender, EventArgs e) { - if (!TryGetLocFile(out LOCFile locFile)) - { - MessageBox.Show("No .loc file found", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - using (AddNewSkin add = new AddNewSkin(locFile)) + LOCFile locFile = null; + TryGetLocFile(out locFile); + using AddNewSkin add = new AddNewSkin(locFile); if (add.ShowDialog() == DialogResult.OK) { From 3f4b7b705e5dc5056c0a9a868da5c1b5bf6aac5d Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Wed, 13 Mar 2024 18:13:19 +0100 Subject: [PATCH 09/14] MainForm - Remove 'Add Custom Icon' feature --- PCK-Studio/MainForm.Designer.cs | 2041 +++++++++++++++---------------- PCK-Studio/MainForm.cs | 149 +-- PCK-Studio/MainForm.resx | 42 +- 3 files changed, 1062 insertions(+), 1170 deletions(-) diff --git a/PCK-Studio/MainForm.Designer.cs b/PCK-Studio/MainForm.Designer.cs index e91b4aba..d6ea4aa7 100644 --- a/PCK-Studio/MainForm.Designer.cs +++ b/PCK-Studio/MainForm.Designer.cs @@ -28,159 +28,158 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.PictureBox logoPictureBox; - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.contextMenuPCKEntries = new System.Windows.Forms.ContextMenuStrip(this.components); - this.createToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.folderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.skinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createAnimatedTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.audiopckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.colourscolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.CreateSkinsPCKToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.behavioursbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.entityMaterialsbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importSkinsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importSkinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importExtractedSkinsFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.as3DSTextureFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setFileTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.skinToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.capeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.languagesFileLOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.gameRulesFileGRFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.audioPCKFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.coloursCOLFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.gameRulesHeaderGRHToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.skinsPCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.modelsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.behavioursFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.entityMaterialsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.miscFunctionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.generateMipMapTextureToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.viewFileInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.correctSkinDecimalsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.extractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.cloneFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.renameFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteFileToolStripMenuItem = 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(); - this.skinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.texturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mashUpPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.extractToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.packSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fullBoxSupportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.quickChangeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addCustomPackImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openPckManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertMusicFilesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.wavBinkaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.binkaWavToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.storeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openPckCenterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.trelloBoardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.checkForUpdatesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.videosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeABasicSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeACustomSkinModelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeCustomSkinModelsbedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeCustomMusicToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToInstallPcksDirectlyToWiiUToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pckCenterReleaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howPCKsWorkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toNobledezJackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toPhoenixARCDeveloperToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.forMattNLContributorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contextMenuMetaTree = new System.Windows.Forms.ContextMenuStrip(this.components); - this.addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.addBOXEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.addANIMEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.addMultipleEntriesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editAllEntriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.tabControl = new MetroFramework.Controls.MetroTabControl(); - this.openTab = new MetroFramework.Controls.MetroTabPage(); - this.pckOpen = new System.Windows.Forms.PictureBox(); - this.label5 = new MetroFramework.Controls.MetroLabel(); - this.labelVersion = new MetroFramework.Controls.MetroLabel(); - this.ChangelogRichTextBox = new System.Windows.Forms.RichTextBox(); - this.editorTab = new MetroFramework.Controls.MetroTabPage(); - this.pckFileLabel = new MetroFramework.Controls.MetroLabel(); - this.labelImageSize = new MetroFramework.Controls.MetroLabel(); - this.fileEntryCountLabel = new MetroFramework.Controls.MetroLabel(); - this.PropertiesTabControl = new MetroFramework.Controls.MetroTabControl(); - this.MetaTab = new MetroFramework.Controls.MetroTabPage(); - this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); - this.treeMeta = new System.Windows.Forms.TreeView(); - this.entryTypeTextBox = new MetroFramework.Controls.MetroTextBox(); - this.entryDataTextBox = new MetroFramework.Controls.MetroTextBox(); - this.buttonEdit = new MetroFramework.Controls.MetroButton(); - this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); - this.label11 = new MetroFramework.Controls.MetroLabel(); - this.treeViewMain = new System.Windows.Forms.TreeView(); - this.imageList = new System.Windows.Forms.ImageList(this.components); - this.previewPictureBox = new PckStudio.ToolboxItems.InterpolationPictureBox(); - this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox(); - logoPictureBox = new System.Windows.Forms.PictureBox(); - toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - ((System.ComponentModel.ISupportInitialize)(logoPictureBox)).BeginInit(); - this.contextMenuPCKEntries.SuspendLayout(); - this.menuStrip.SuspendLayout(); - this.contextMenuMetaTree.SuspendLayout(); - this.tabControl.SuspendLayout(); - this.openTab.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).BeginInit(); - this.editorTab.SuspendLayout(); - this.PropertiesTabControl.SuspendLayout(); - this.MetaTab.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.previewPictureBox)).BeginInit(); - this.SuspendLayout(); - // - // logoPictureBox - // - resources.ApplyResources(logoPictureBox, "logoPictureBox"); - logoPictureBox.Name = "logoPictureBox"; - logoPictureBox.TabStop = false; - // - // toolStripSeparator1 - // - toolStripSeparator1.Name = "toolStripSeparator1"; - resources.ApplyResources(toolStripSeparator1, "toolStripSeparator1"); - // - // toolStripSeparator3 - // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3"); - // - // contextMenuPCKEntries - // - this.contextMenuPCKEntries.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.PictureBox logoPictureBox; + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.contextMenuPCKEntries = new System.Windows.Forms.ContextMenuStrip(this.components); + this.createToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.folderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.skinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createAnimatedTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.audiopckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.colourscolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.CreateSkinsPCKToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.behavioursbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.entityMaterialsbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.importSkinsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.importSkinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.importExtractedSkinsFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.as3DSTextureFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.setFileTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.skinToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.capeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.languagesFileLOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.gameRulesFileGRFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.audioPCKFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.coloursCOLFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.gameRulesHeaderGRHToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.skinsPCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.modelsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.behavioursFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.entityMaterialsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.miscFunctionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.generateMipMapTextureToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.viewFileInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.correctSkinDecimalsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.extractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.cloneFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.renameFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteFileToolStripMenuItem = 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(); + this.skinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.texturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.mashUpPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.extractToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.packSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.fullBoxSupportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.quickChangeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openPckManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.convertMusicFilesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.wavBinkaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.binkaWavToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.storeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openPckCenterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.trelloBoardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.checkForUpdatesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.videosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeABasicSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeACustomSkinModelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeCustomSkinModelsbedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeCustomMusicToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToInstallPcksDirectlyToWiiUToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pckCenterReleaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howPCKsWorkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toNobledezJackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toPhoenixARCDeveloperToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.forMattNLContributorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.contextMenuMetaTree = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.addBOXEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.addANIMEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.addMultipleEntriesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editAllEntriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tabControl = new MetroFramework.Controls.MetroTabControl(); + this.openTab = new MetroFramework.Controls.MetroTabPage(); + this.pckOpen = new System.Windows.Forms.PictureBox(); + this.label5 = new MetroFramework.Controls.MetroLabel(); + this.labelVersion = new MetroFramework.Controls.MetroLabel(); + this.ChangelogRichTextBox = new System.Windows.Forms.RichTextBox(); + this.editorTab = new MetroFramework.Controls.MetroTabPage(); + this.pckFileLabel = new MetroFramework.Controls.MetroLabel(); + this.labelImageSize = new MetroFramework.Controls.MetroLabel(); + this.fileEntryCountLabel = new MetroFramework.Controls.MetroLabel(); + this.PropertiesTabControl = new MetroFramework.Controls.MetroTabControl(); + this.MetaTab = new MetroFramework.Controls.MetroTabPage(); + this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); + this.treeMeta = new System.Windows.Forms.TreeView(); + this.entryTypeTextBox = new MetroFramework.Controls.MetroTextBox(); + this.entryDataTextBox = new MetroFramework.Controls.MetroTextBox(); + this.buttonEdit = new MetroFramework.Controls.MetroButton(); + this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); + this.label11 = new MetroFramework.Controls.MetroLabel(); + this.treeViewMain = new System.Windows.Forms.TreeView(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + this.previewPictureBox = new PckStudio.ToolboxItems.InterpolationPictureBox(); + this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox(); + logoPictureBox = new System.Windows.Forms.PictureBox(); + toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + ((System.ComponentModel.ISupportInitialize)(logoPictureBox)).BeginInit(); + this.contextMenuPCKEntries.SuspendLayout(); + this.menuStrip.SuspendLayout(); + this.contextMenuMetaTree.SuspendLayout(); + this.tabControl.SuspendLayout(); + this.openTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).BeginInit(); + this.editorTab.SuspendLayout(); + this.PropertiesTabControl.SuspendLayout(); + this.MetaTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.previewPictureBox)).BeginInit(); + this.SuspendLayout(); + // + // logoPictureBox + // + resources.ApplyResources(logoPictureBox, "logoPictureBox"); + logoPictureBox.Name = "logoPictureBox"; + logoPictureBox.TabStop = false; + // + // toolStripSeparator1 + // + toolStripSeparator1.Name = "toolStripSeparator1"; + resources.ApplyResources(toolStripSeparator1, "toolStripSeparator1"); + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3"); + // + // contextMenuPCKEntries + // + this.contextMenuPCKEntries.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.createToolStripMenuItem, this.importSkinsToolStripMenuItem, this.exportToolStripMenuItem, @@ -193,12 +192,12 @@ this.renameFileToolStripMenuItem, this.replaceToolStripMenuItem, this.deleteFileToolStripMenuItem}); - 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, @@ -207,114 +206,114 @@ this.CreateSkinsPCKToolStripMenuItem1, this.behavioursbinToolStripMenuItem, this.entityMaterialsbinToolStripMenuItem}); - resources.ApplyResources(this.createToolStripMenuItem, "createToolStripMenuItem"); - this.createToolStripMenuItem.Name = "createToolStripMenuItem"; - // - // folderToolStripMenuItem - // - resources.ApplyResources(this.folderToolStripMenuItem, "folderToolStripMenuItem"); - this.folderToolStripMenuItem.Name = "folderToolStripMenuItem"; - this.folderToolStripMenuItem.Click += new System.EventHandler(this.folderToolStripMenuItem_Click); - // - // skinToolStripMenuItem - // - resources.ApplyResources(this.skinToolStripMenuItem, "skinToolStripMenuItem"); - this.skinToolStripMenuItem.Name = "skinToolStripMenuItem"; - this.skinToolStripMenuItem.Click += new System.EventHandler(this.createSkinToolStripMenuItem_Click); - // - // createAnimatedTextureToolStripMenuItem - // - resources.ApplyResources(this.createAnimatedTextureToolStripMenuItem, "createAnimatedTextureToolStripMenuItem"); - this.createAnimatedTextureToolStripMenuItem.Name = "createAnimatedTextureToolStripMenuItem"; - this.createAnimatedTextureToolStripMenuItem.Click += new System.EventHandler(this.createAnimatedTextureToolStripMenuItem_Click); - // - // audiopckToolStripMenuItem - // - this.audiopckToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BINKA_ICON; - this.audiopckToolStripMenuItem.Name = "audiopckToolStripMenuItem"; - resources.ApplyResources(this.audiopckToolStripMenuItem, "audiopckToolStripMenuItem"); - this.audiopckToolStripMenuItem.Click += new System.EventHandler(this.audiopckToolStripMenuItem_Click); - // - // colourscolToolStripMenuItem - // - this.colourscolToolStripMenuItem.Image = global::PckStudio.Properties.Resources.COL_ICON; - this.colourscolToolStripMenuItem.Name = "colourscolToolStripMenuItem"; - resources.ApplyResources(this.colourscolToolStripMenuItem, "colourscolToolStripMenuItem"); - this.colourscolToolStripMenuItem.Click += new System.EventHandler(this.colourscolToolStripMenuItem_Click); - // - // CreateSkinsPCKToolStripMenuItem1 - // - this.CreateSkinsPCKToolStripMenuItem1.Image = global::PckStudio.Properties.Resources.SKINS_ICON; - this.CreateSkinsPCKToolStripMenuItem1.Name = "CreateSkinsPCKToolStripMenuItem1"; - resources.ApplyResources(this.CreateSkinsPCKToolStripMenuItem1, "CreateSkinsPCKToolStripMenuItem1"); - this.CreateSkinsPCKToolStripMenuItem1.Click += new System.EventHandler(this.CreateSkinsPCKToolStripMenuItem1_Click); - // - // behavioursbinToolStripMenuItem - // - this.behavioursbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BEHAVIOURS_ICON; - this.behavioursbinToolStripMenuItem.Name = "behavioursbinToolStripMenuItem"; - resources.ApplyResources(this.behavioursbinToolStripMenuItem, "behavioursbinToolStripMenuItem"); - this.behavioursbinToolStripMenuItem.Click += new System.EventHandler(this.behavioursbinToolStripMenuItem_Click); - // - // entityMaterialsbinToolStripMenuItem - // - this.entityMaterialsbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ENTITY_MATERIALS_ICON; - this.entityMaterialsbinToolStripMenuItem.Name = "entityMaterialsbinToolStripMenuItem"; - resources.ApplyResources(this.entityMaterialsbinToolStripMenuItem, "entityMaterialsbinToolStripMenuItem"); - this.entityMaterialsbinToolStripMenuItem.Click += new System.EventHandler(this.entityMaterialsbinToolStripMenuItem_Click); - // - // importSkinsToolStripMenuItem - // - this.importSkinsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + resources.ApplyResources(this.createToolStripMenuItem, "createToolStripMenuItem"); + this.createToolStripMenuItem.Name = "createToolStripMenuItem"; + // + // folderToolStripMenuItem + // + resources.ApplyResources(this.folderToolStripMenuItem, "folderToolStripMenuItem"); + this.folderToolStripMenuItem.Name = "folderToolStripMenuItem"; + this.folderToolStripMenuItem.Click += new System.EventHandler(this.folderToolStripMenuItem_Click); + // + // skinToolStripMenuItem + // + resources.ApplyResources(this.skinToolStripMenuItem, "skinToolStripMenuItem"); + this.skinToolStripMenuItem.Name = "skinToolStripMenuItem"; + this.skinToolStripMenuItem.Click += new System.EventHandler(this.createSkinToolStripMenuItem_Click); + // + // createAnimatedTextureToolStripMenuItem + // + resources.ApplyResources(this.createAnimatedTextureToolStripMenuItem, "createAnimatedTextureToolStripMenuItem"); + this.createAnimatedTextureToolStripMenuItem.Name = "createAnimatedTextureToolStripMenuItem"; + this.createAnimatedTextureToolStripMenuItem.Click += new System.EventHandler(this.createAnimatedTextureToolStripMenuItem_Click); + // + // audiopckToolStripMenuItem + // + this.audiopckToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BINKA_ICON; + this.audiopckToolStripMenuItem.Name = "audiopckToolStripMenuItem"; + resources.ApplyResources(this.audiopckToolStripMenuItem, "audiopckToolStripMenuItem"); + this.audiopckToolStripMenuItem.Click += new System.EventHandler(this.audiopckToolStripMenuItem_Click); + // + // colourscolToolStripMenuItem + // + this.colourscolToolStripMenuItem.Image = global::PckStudio.Properties.Resources.COL_ICON; + this.colourscolToolStripMenuItem.Name = "colourscolToolStripMenuItem"; + resources.ApplyResources(this.colourscolToolStripMenuItem, "colourscolToolStripMenuItem"); + this.colourscolToolStripMenuItem.Click += new System.EventHandler(this.colourscolToolStripMenuItem_Click); + // + // CreateSkinsPCKToolStripMenuItem1 + // + this.CreateSkinsPCKToolStripMenuItem1.Image = global::PckStudio.Properties.Resources.SKINS_ICON; + this.CreateSkinsPCKToolStripMenuItem1.Name = "CreateSkinsPCKToolStripMenuItem1"; + resources.ApplyResources(this.CreateSkinsPCKToolStripMenuItem1, "CreateSkinsPCKToolStripMenuItem1"); + this.CreateSkinsPCKToolStripMenuItem1.Click += new System.EventHandler(this.CreateSkinsPCKToolStripMenuItem1_Click); + // + // behavioursbinToolStripMenuItem + // + this.behavioursbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BEHAVIOURS_ICON; + this.behavioursbinToolStripMenuItem.Name = "behavioursbinToolStripMenuItem"; + resources.ApplyResources(this.behavioursbinToolStripMenuItem, "behavioursbinToolStripMenuItem"); + this.behavioursbinToolStripMenuItem.Click += new System.EventHandler(this.behavioursbinToolStripMenuItem_Click); + // + // entityMaterialsbinToolStripMenuItem + // + this.entityMaterialsbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ENTITY_MATERIALS_ICON; + this.entityMaterialsbinToolStripMenuItem.Name = "entityMaterialsbinToolStripMenuItem"; + resources.ApplyResources(this.entityMaterialsbinToolStripMenuItem, "entityMaterialsbinToolStripMenuItem"); + this.entityMaterialsbinToolStripMenuItem.Click += new System.EventHandler(this.entityMaterialsbinToolStripMenuItem_Click); + // + // importSkinsToolStripMenuItem + // + this.importSkinsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.importSkinToolStripMenuItem, this.importExtractedSkinsFolderToolStripMenuItem, this.addTextureToolStripMenuItem, this.addFileToolStripMenuItem}); - 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.importSkinToolStripMenuItem_Click); - // - // 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); - // - // addFileToolStripMenuItem - // - this.addFileToolStripMenuItem.Image = global::PckStudio.Properties.Resources.blank; - this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem"; - resources.ApplyResources(this.addFileToolStripMenuItem, "addFileToolStripMenuItem"); - this.addFileToolStripMenuItem.Click += new System.EventHandler(this.addFileToolStripMenuItem_Click); - // - // exportToolStripMenuItem - // - this.exportToolStripMenuItem.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.importSkinToolStripMenuItem_Click); + // + // 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); + // + // addFileToolStripMenuItem + // + this.addFileToolStripMenuItem.Image = global::PckStudio.Properties.Resources.blank; + this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem"; + resources.ApplyResources(this.addFileToolStripMenuItem, "addFileToolStripMenuItem"); + this.addFileToolStripMenuItem.Click += new System.EventHandler(this.addFileToolStripMenuItem_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.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, @@ -327,154 +326,154 @@ this.modelsFileBINToolStripMenuItem, this.behavioursFileBINToolStripMenuItem, this.entityMaterialsFileBINToolStripMenuItem}); - this.setFileTypeToolStripMenuItem.Name = "setFileTypeToolStripMenuItem"; - resources.ApplyResources(this.setFileTypeToolStripMenuItem, "setFileTypeToolStripMenuItem"); - // - // skinToolStripMenuItem1 - // - this.skinToolStripMenuItem1.Name = "skinToolStripMenuItem1"; - resources.ApplyResources(this.skinToolStripMenuItem1, "skinToolStripMenuItem1"); - // - // capeToolStripMenuItem - // - this.capeToolStripMenuItem.Name = "capeToolStripMenuItem"; - resources.ApplyResources(this.capeToolStripMenuItem, "capeToolStripMenuItem"); - // - // textureToolStripMenuItem - // - this.textureToolStripMenuItem.Name = "textureToolStripMenuItem"; - resources.ApplyResources(this.textureToolStripMenuItem, "textureToolStripMenuItem"); - // - // languagesFileLOCToolStripMenuItem - // - this.languagesFileLOCToolStripMenuItem.Name = "languagesFileLOCToolStripMenuItem"; - resources.ApplyResources(this.languagesFileLOCToolStripMenuItem, "languagesFileLOCToolStripMenuItem"); - // - // gameRulesFileGRFToolStripMenuItem - // - this.gameRulesFileGRFToolStripMenuItem.Name = "gameRulesFileGRFToolStripMenuItem"; - resources.ApplyResources(this.gameRulesFileGRFToolStripMenuItem, "gameRulesFileGRFToolStripMenuItem"); - // - // audioPCKFileToolStripMenuItem - // - this.audioPCKFileToolStripMenuItem.Name = "audioPCKFileToolStripMenuItem"; - resources.ApplyResources(this.audioPCKFileToolStripMenuItem, "audioPCKFileToolStripMenuItem"); - // - // coloursCOLFileToolStripMenuItem - // - this.coloursCOLFileToolStripMenuItem.Name = "coloursCOLFileToolStripMenuItem"; - resources.ApplyResources(this.coloursCOLFileToolStripMenuItem, "coloursCOLFileToolStripMenuItem"); - // - // gameRulesHeaderGRHToolStripMenuItem - // - this.gameRulesHeaderGRHToolStripMenuItem.Name = "gameRulesHeaderGRHToolStripMenuItem"; - resources.ApplyResources(this.gameRulesHeaderGRHToolStripMenuItem, "gameRulesHeaderGRHToolStripMenuItem"); - // - // skinsPCKToolStripMenuItem - // - this.skinsPCKToolStripMenuItem.Name = "skinsPCKToolStripMenuItem"; - resources.ApplyResources(this.skinsPCKToolStripMenuItem, "skinsPCKToolStripMenuItem"); - // - // modelsFileBINToolStripMenuItem - // - this.modelsFileBINToolStripMenuItem.Name = "modelsFileBINToolStripMenuItem"; - resources.ApplyResources(this.modelsFileBINToolStripMenuItem, "modelsFileBINToolStripMenuItem"); - // - // behavioursFileBINToolStripMenuItem - // - this.behavioursFileBINToolStripMenuItem.Name = "behavioursFileBINToolStripMenuItem"; - resources.ApplyResources(this.behavioursFileBINToolStripMenuItem, "behavioursFileBINToolStripMenuItem"); - // - // entityMaterialsFileBINToolStripMenuItem - // - this.entityMaterialsFileBINToolStripMenuItem.Name = "entityMaterialsFileBINToolStripMenuItem"; - resources.ApplyResources(this.entityMaterialsFileBINToolStripMenuItem, "entityMaterialsFileBINToolStripMenuItem"); - // - // miscFunctionsToolStripMenuItem - // - this.miscFunctionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.setFileTypeToolStripMenuItem.Name = "setFileTypeToolStripMenuItem"; + resources.ApplyResources(this.setFileTypeToolStripMenuItem, "setFileTypeToolStripMenuItem"); + // + // skinToolStripMenuItem1 + // + this.skinToolStripMenuItem1.Name = "skinToolStripMenuItem1"; + resources.ApplyResources(this.skinToolStripMenuItem1, "skinToolStripMenuItem1"); + // + // capeToolStripMenuItem + // + this.capeToolStripMenuItem.Name = "capeToolStripMenuItem"; + resources.ApplyResources(this.capeToolStripMenuItem, "capeToolStripMenuItem"); + // + // textureToolStripMenuItem + // + this.textureToolStripMenuItem.Name = "textureToolStripMenuItem"; + resources.ApplyResources(this.textureToolStripMenuItem, "textureToolStripMenuItem"); + // + // languagesFileLOCToolStripMenuItem + // + this.languagesFileLOCToolStripMenuItem.Name = "languagesFileLOCToolStripMenuItem"; + resources.ApplyResources(this.languagesFileLOCToolStripMenuItem, "languagesFileLOCToolStripMenuItem"); + // + // gameRulesFileGRFToolStripMenuItem + // + this.gameRulesFileGRFToolStripMenuItem.Name = "gameRulesFileGRFToolStripMenuItem"; + resources.ApplyResources(this.gameRulesFileGRFToolStripMenuItem, "gameRulesFileGRFToolStripMenuItem"); + // + // audioPCKFileToolStripMenuItem + // + this.audioPCKFileToolStripMenuItem.Name = "audioPCKFileToolStripMenuItem"; + resources.ApplyResources(this.audioPCKFileToolStripMenuItem, "audioPCKFileToolStripMenuItem"); + // + // coloursCOLFileToolStripMenuItem + // + this.coloursCOLFileToolStripMenuItem.Name = "coloursCOLFileToolStripMenuItem"; + resources.ApplyResources(this.coloursCOLFileToolStripMenuItem, "coloursCOLFileToolStripMenuItem"); + // + // gameRulesHeaderGRHToolStripMenuItem + // + this.gameRulesHeaderGRHToolStripMenuItem.Name = "gameRulesHeaderGRHToolStripMenuItem"; + resources.ApplyResources(this.gameRulesHeaderGRHToolStripMenuItem, "gameRulesHeaderGRHToolStripMenuItem"); + // + // skinsPCKToolStripMenuItem + // + this.skinsPCKToolStripMenuItem.Name = "skinsPCKToolStripMenuItem"; + resources.ApplyResources(this.skinsPCKToolStripMenuItem, "skinsPCKToolStripMenuItem"); + // + // modelsFileBINToolStripMenuItem + // + this.modelsFileBINToolStripMenuItem.Name = "modelsFileBINToolStripMenuItem"; + resources.ApplyResources(this.modelsFileBINToolStripMenuItem, "modelsFileBINToolStripMenuItem"); + // + // behavioursFileBINToolStripMenuItem + // + this.behavioursFileBINToolStripMenuItem.Name = "behavioursFileBINToolStripMenuItem"; + resources.ApplyResources(this.behavioursFileBINToolStripMenuItem, "behavioursFileBINToolStripMenuItem"); + // + // entityMaterialsFileBINToolStripMenuItem + // + this.entityMaterialsFileBINToolStripMenuItem.Name = "entityMaterialsFileBINToolStripMenuItem"; + resources.ApplyResources(this.entityMaterialsFileBINToolStripMenuItem, "entityMaterialsFileBINToolStripMenuItem"); + // + // miscFunctionsToolStripMenuItem + // + this.miscFunctionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.generateMipMapTextureToolStripMenuItem1, this.viewFileInfoToolStripMenuItem, this.correctSkinDecimalsToolStripMenuItem}); - this.miscFunctionsToolStripMenuItem.Name = "miscFunctionsToolStripMenuItem"; - resources.ApplyResources(this.miscFunctionsToolStripMenuItem, "miscFunctionsToolStripMenuItem"); - // - // generateMipMapTextureToolStripMenuItem1 - // - this.generateMipMapTextureToolStripMenuItem1.Name = "generateMipMapTextureToolStripMenuItem1"; - resources.ApplyResources(this.generateMipMapTextureToolStripMenuItem1, "generateMipMapTextureToolStripMenuItem1"); - this.generateMipMapTextureToolStripMenuItem1.Click += new System.EventHandler(this.generateMipMapTextureToolStripMenuItem_Click); - // - // viewFileInfoToolStripMenuItem - // - this.viewFileInfoToolStripMenuItem.Name = "viewFileInfoToolStripMenuItem"; - resources.ApplyResources(this.viewFileInfoToolStripMenuItem, "viewFileInfoToolStripMenuItem"); - this.viewFileInfoToolStripMenuItem.Click += new System.EventHandler(this.viewFileInfoToolStripMenuItem_Click); - // - // correctSkinDecimalsToolStripMenuItem - // - this.correctSkinDecimalsToolStripMenuItem.Name = "correctSkinDecimalsToolStripMenuItem"; - resources.ApplyResources(this.correctSkinDecimalsToolStripMenuItem, "correctSkinDecimalsToolStripMenuItem"); - this.correctSkinDecimalsToolStripMenuItem.Click += new System.EventHandler(this.correctSkinDecimalsToolStripMenuItem_Click); - // - // moveUpToolStripMenuItem - // - this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem"; - resources.ApplyResources(this.moveUpToolStripMenuItem, "moveUpToolStripMenuItem"); - this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click); - // - // moveDownToolStripMenuItem - // - this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem"; - resources.ApplyResources(this.moveDownToolStripMenuItem, "moveDownToolStripMenuItem"); - this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click); - // - // extractToolStripMenuItem - // - resources.ApplyResources(this.extractToolStripMenuItem, "extractToolStripMenuItem"); - this.extractToolStripMenuItem.Name = "extractToolStripMenuItem"; - this.extractToolStripMenuItem.Click += new System.EventHandler(this.extractToolStripMenuItem_Click); - // - // cloneFileToolStripMenuItem - // - this.cloneFileToolStripMenuItem.Name = "cloneFileToolStripMenuItem"; - resources.ApplyResources(this.cloneFileToolStripMenuItem, "cloneFileToolStripMenuItem"); - this.cloneFileToolStripMenuItem.Click += new System.EventHandler(this.cloneFileToolStripMenuItem_Click); - // - // renameFileToolStripMenuItem - // - resources.ApplyResources(this.renameFileToolStripMenuItem, "renameFileToolStripMenuItem"); - this.renameFileToolStripMenuItem.Name = "renameFileToolStripMenuItem"; - this.renameFileToolStripMenuItem.Click += new System.EventHandler(this.renameFileToolStripMenuItem_Click); - // - // replaceToolStripMenuItem - // - resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem"); - this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; - this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); - // - // deleteFileToolStripMenuItem - // - resources.ApplyResources(this.deleteFileToolStripMenuItem, "deleteFileToolStripMenuItem"); - this.deleteFileToolStripMenuItem.Name = "deleteFileToolStripMenuItem"; - this.deleteFileToolStripMenuItem.Click += new System.EventHandler(this.deleteFileToolStripMenuItem_Click); - // - // menuStrip - // - resources.ApplyResources(this.menuStrip, "menuStrip"); - this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); - this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.miscFunctionsToolStripMenuItem.Name = "miscFunctionsToolStripMenuItem"; + resources.ApplyResources(this.miscFunctionsToolStripMenuItem, "miscFunctionsToolStripMenuItem"); + // + // generateMipMapTextureToolStripMenuItem1 + // + this.generateMipMapTextureToolStripMenuItem1.Name = "generateMipMapTextureToolStripMenuItem1"; + resources.ApplyResources(this.generateMipMapTextureToolStripMenuItem1, "generateMipMapTextureToolStripMenuItem1"); + this.generateMipMapTextureToolStripMenuItem1.Click += new System.EventHandler(this.generateMipMapTextureToolStripMenuItem_Click); + // + // viewFileInfoToolStripMenuItem + // + this.viewFileInfoToolStripMenuItem.Name = "viewFileInfoToolStripMenuItem"; + resources.ApplyResources(this.viewFileInfoToolStripMenuItem, "viewFileInfoToolStripMenuItem"); + this.viewFileInfoToolStripMenuItem.Click += new System.EventHandler(this.viewFileInfoToolStripMenuItem_Click); + // + // correctSkinDecimalsToolStripMenuItem + // + this.correctSkinDecimalsToolStripMenuItem.Name = "correctSkinDecimalsToolStripMenuItem"; + resources.ApplyResources(this.correctSkinDecimalsToolStripMenuItem, "correctSkinDecimalsToolStripMenuItem"); + this.correctSkinDecimalsToolStripMenuItem.Click += new System.EventHandler(this.correctSkinDecimalsToolStripMenuItem_Click); + // + // moveUpToolStripMenuItem + // + this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem"; + resources.ApplyResources(this.moveUpToolStripMenuItem, "moveUpToolStripMenuItem"); + this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click); + // + // moveDownToolStripMenuItem + // + this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem"; + resources.ApplyResources(this.moveDownToolStripMenuItem, "moveDownToolStripMenuItem"); + this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click); + // + // extractToolStripMenuItem + // + resources.ApplyResources(this.extractToolStripMenuItem, "extractToolStripMenuItem"); + this.extractToolStripMenuItem.Name = "extractToolStripMenuItem"; + this.extractToolStripMenuItem.Click += new System.EventHandler(this.extractToolStripMenuItem_Click); + // + // cloneFileToolStripMenuItem + // + this.cloneFileToolStripMenuItem.Name = "cloneFileToolStripMenuItem"; + resources.ApplyResources(this.cloneFileToolStripMenuItem, "cloneFileToolStripMenuItem"); + this.cloneFileToolStripMenuItem.Click += new System.EventHandler(this.cloneFileToolStripMenuItem_Click); + // + // renameFileToolStripMenuItem + // + resources.ApplyResources(this.renameFileToolStripMenuItem, "renameFileToolStripMenuItem"); + this.renameFileToolStripMenuItem.Name = "renameFileToolStripMenuItem"; + this.renameFileToolStripMenuItem.Click += new System.EventHandler(this.renameFileToolStripMenuItem_Click); + // + // replaceToolStripMenuItem + // + resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem"); + this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; + this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); + // + // deleteFileToolStripMenuItem + // + resources.ApplyResources(this.deleteFileToolStripMenuItem, "deleteFileToolStripMenuItem"); + this.deleteFileToolStripMenuItem.Name = "deleteFileToolStripMenuItem"; + this.deleteFileToolStripMenuItem.Click += new System.EventHandler(this.deleteFileToolStripMenuItem_Click); + // + // menuStrip + // + resources.ApplyResources(this.menuStrip, "menuStrip"); + this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, this.editToolStripMenuItem, this.miscToolStripMenuItem, this.storeToolStripMenuItem, this.helpToolStripMenuItem}); - 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, @@ -482,178 +481,171 @@ this.saveToolStripMenuItem1, this.saveToolStripMenuItem, this.closeToolStripMenuItem}); - this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; - 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.Silver; + 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); - // - // packSettingsToolStripMenuItem - // - this.packSettingsToolStripMenuItem.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); + // + // packSettingsToolStripMenuItem + // + this.packSettingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fullBoxSupportToolStripMenuItem}); - this.packSettingsToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ranch; - this.packSettingsToolStripMenuItem.Name = "packSettingsToolStripMenuItem"; - resources.ApplyResources(this.packSettingsToolStripMenuItem, "packSettingsToolStripMenuItem"); - // - // fullBoxSupportToolStripMenuItem - // - this.fullBoxSupportToolStripMenuItem.CheckOnClick = true; - this.fullBoxSupportToolStripMenuItem.Name = "fullBoxSupportToolStripMenuItem"; - resources.ApplyResources(this.fullBoxSupportToolStripMenuItem, "fullBoxSupportToolStripMenuItem"); - this.fullBoxSupportToolStripMenuItem.CheckedChanged += new System.EventHandler(this.fullBoxSupportToolStripMenuItem_CheckedChanged); - // - // 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); - // - // 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.packSettingsToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ranch; + this.packSettingsToolStripMenuItem.Name = "packSettingsToolStripMenuItem"; + resources.ApplyResources(this.packSettingsToolStripMenuItem, "packSettingsToolStripMenuItem"); + // + // fullBoxSupportToolStripMenuItem + // + this.fullBoxSupportToolStripMenuItem.CheckOnClick = true; + this.fullBoxSupportToolStripMenuItem.Name = "fullBoxSupportToolStripMenuItem"; + resources.ApplyResources(this.fullBoxSupportToolStripMenuItem, "fullBoxSupportToolStripMenuItem"); + this.fullBoxSupportToolStripMenuItem.CheckedChanged += new System.EventHandler(this.fullBoxSupportToolStripMenuItem_CheckedChanged); + // + // 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); + // + // 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.quickChangeToolStripMenuItem, this.convertToBedrockToolStripMenuItem}); - this.editToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; - this.editToolStripMenuItem.Name = "editToolStripMenuItem"; - resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem"); - // - // quickChangeToolStripMenuItem - // - resources.ApplyResources(this.quickChangeToolStripMenuItem, "quickChangeToolStripMenuItem"); - this.quickChangeToolStripMenuItem.Name = "quickChangeToolStripMenuItem"; - this.quickChangeToolStripMenuItem.Click += new System.EventHandler(this.quickChangeToolStripMenuItem_Click); - // - // convertToBedrockToolStripMenuItem - // - resources.ApplyResources(this.convertToBedrockToolStripMenuItem, "convertToBedrockToolStripMenuItem"); - this.convertToBedrockToolStripMenuItem.Name = "convertToBedrockToolStripMenuItem"; - this.convertToBedrockToolStripMenuItem.Click += new System.EventHandler(this.convertToBedrockToolStripMenuItem_Click); - // - // miscToolStripMenuItem - // - this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.addCustomPackImageToolStripMenuItem, + this.editToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; + this.editToolStripMenuItem.Name = "editToolStripMenuItem"; + resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem"); + // + // quickChangeToolStripMenuItem + // + resources.ApplyResources(this.quickChangeToolStripMenuItem, "quickChangeToolStripMenuItem"); + this.quickChangeToolStripMenuItem.Name = "quickChangeToolStripMenuItem"; + this.quickChangeToolStripMenuItem.Click += new System.EventHandler(this.quickChangeToolStripMenuItem_Click); + // + // convertToBedrockToolStripMenuItem + // + resources.ApplyResources(this.convertToBedrockToolStripMenuItem, "convertToBedrockToolStripMenuItem"); + this.convertToBedrockToolStripMenuItem.Name = "convertToBedrockToolStripMenuItem"; + this.convertToBedrockToolStripMenuItem.Click += new System.EventHandler(this.convertToBedrockToolStripMenuItem_Click); + // + // miscToolStripMenuItem + // + this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.openPckManagerToolStripMenuItem, this.convertMusicFilesToolStripMenuItem}); - this.miscToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; - this.miscToolStripMenuItem.Name = "miscToolStripMenuItem"; - resources.ApplyResources(this.miscToolStripMenuItem, "miscToolStripMenuItem"); - // - // addCustomPackImageToolStripMenuItem - // - this.addCustomPackImageToolStripMenuItem.Name = "addCustomPackImageToolStripMenuItem"; - resources.ApplyResources(this.addCustomPackImageToolStripMenuItem, "addCustomPackImageToolStripMenuItem"); - this.addCustomPackImageToolStripMenuItem.Click += new System.EventHandler(this.addCustomPackIconToolStripMenuItem_Click); - // - // openPckManagerToolStripMenuItem - // - this.openPckManagerToolStripMenuItem.Name = "openPckManagerToolStripMenuItem"; - resources.ApplyResources(this.openPckManagerToolStripMenuItem, "openPckManagerToolStripMenuItem"); - this.openPckManagerToolStripMenuItem.Click += new System.EventHandler(this.openPckManagerToolStripMenuItem_Click); - // - // convertMusicFilesToolStripMenuItem - // - this.convertMusicFilesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.miscToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; + this.miscToolStripMenuItem.Name = "miscToolStripMenuItem"; + resources.ApplyResources(this.miscToolStripMenuItem, "miscToolStripMenuItem"); + // + // openPckManagerToolStripMenuItem + // + this.openPckManagerToolStripMenuItem.Name = "openPckManagerToolStripMenuItem"; + resources.ApplyResources(this.openPckManagerToolStripMenuItem, "openPckManagerToolStripMenuItem"); + this.openPckManagerToolStripMenuItem.Click += new System.EventHandler(this.openPckManagerToolStripMenuItem_Click); + // + // convertMusicFilesToolStripMenuItem + // + this.convertMusicFilesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.wavBinkaToolStripMenuItem, this.binkaWavToolStripMenuItem}); - this.convertMusicFilesToolStripMenuItem.Name = "convertMusicFilesToolStripMenuItem"; - resources.ApplyResources(this.convertMusicFilesToolStripMenuItem, "convertMusicFilesToolStripMenuItem"); - // - // wavBinkaToolStripMenuItem - // - this.wavBinkaToolStripMenuItem.Name = "wavBinkaToolStripMenuItem"; - resources.ApplyResources(this.wavBinkaToolStripMenuItem, "wavBinkaToolStripMenuItem"); - this.wavBinkaToolStripMenuItem.Click += new System.EventHandler(this.wavBinkaToolStripMenuItem_Click); - // - // binkaWavToolStripMenuItem - // - this.binkaWavToolStripMenuItem.Name = "binkaWavToolStripMenuItem"; - resources.ApplyResources(this.binkaWavToolStripMenuItem, "binkaWavToolStripMenuItem"); - this.binkaWavToolStripMenuItem.Click += new System.EventHandler(this.binkaWavToolStripMenuItem_Click); - // - // storeToolStripMenuItem - // - this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.convertMusicFilesToolStripMenuItem.Name = "convertMusicFilesToolStripMenuItem"; + resources.ApplyResources(this.convertMusicFilesToolStripMenuItem, "convertMusicFilesToolStripMenuItem"); + // + // wavBinkaToolStripMenuItem + // + this.wavBinkaToolStripMenuItem.Name = "wavBinkaToolStripMenuItem"; + resources.ApplyResources(this.wavBinkaToolStripMenuItem, "wavBinkaToolStripMenuItem"); + this.wavBinkaToolStripMenuItem.Click += new System.EventHandler(this.wavBinkaToolStripMenuItem_Click); + // + // binkaWavToolStripMenuItem + // + this.binkaWavToolStripMenuItem.Name = "binkaWavToolStripMenuItem"; + resources.ApplyResources(this.binkaWavToolStripMenuItem, "binkaWavToolStripMenuItem"); + this.binkaWavToolStripMenuItem.Click += new System.EventHandler(this.binkaWavToolStripMenuItem_Click); + // + // storeToolStripMenuItem + // + this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.openPckCenterToolStripMenuItem, this.joinDevelopmentDiscordToolStripMenuItem, this.trelloBoardToolStripMenuItem}); - this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; - this.storeToolStripMenuItem.Image = global::PckStudio.Properties.Resources.HamburgerMenuIcon; - this.storeToolStripMenuItem.Name = "storeToolStripMenuItem"; - resources.ApplyResources(this.storeToolStripMenuItem, "storeToolStripMenuItem"); - // - // openPckCenterToolStripMenuItem - // - this.openPckCenterToolStripMenuItem.Image = global::PckStudio.Properties.Resources.pckCenterHeader; - this.openPckCenterToolStripMenuItem.Name = "openPckCenterToolStripMenuItem"; - resources.ApplyResources(this.openPckCenterToolStripMenuItem, "openPckCenterToolStripMenuItem"); - this.openPckCenterToolStripMenuItem.Click += new System.EventHandler(this.openPckCenterToolStripMenuItem_Click); - // - // joinDevelopmentDiscordToolStripMenuItem - // - resources.ApplyResources(this.joinDevelopmentDiscordToolStripMenuItem, "joinDevelopmentDiscordToolStripMenuItem"); - this.joinDevelopmentDiscordToolStripMenuItem.Name = "joinDevelopmentDiscordToolStripMenuItem"; - this.joinDevelopmentDiscordToolStripMenuItem.Click += new System.EventHandler(this.joinDevelopmentDiscordToolStripMenuItem_Click); - // - // trelloBoardToolStripMenuItem - // - this.trelloBoardToolStripMenuItem.Name = "trelloBoardToolStripMenuItem"; - resources.ApplyResources(this.trelloBoardToolStripMenuItem, "trelloBoardToolStripMenuItem"); - this.trelloBoardToolStripMenuItem.Click += new System.EventHandler(this.trelloBoardToolStripMenuItem_Click); - // - // helpToolStripMenuItem - // - this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; + this.storeToolStripMenuItem.Image = global::PckStudio.Properties.Resources.HamburgerMenuIcon; + this.storeToolStripMenuItem.Name = "storeToolStripMenuItem"; + resources.ApplyResources(this.storeToolStripMenuItem, "storeToolStripMenuItem"); + // + // openPckCenterToolStripMenuItem + // + this.openPckCenterToolStripMenuItem.Image = global::PckStudio.Properties.Resources.pckCenterHeader; + this.openPckCenterToolStripMenuItem.Name = "openPckCenterToolStripMenuItem"; + resources.ApplyResources(this.openPckCenterToolStripMenuItem, "openPckCenterToolStripMenuItem"); + this.openPckCenterToolStripMenuItem.Click += new System.EventHandler(this.openPckCenterToolStripMenuItem_Click); + // + // joinDevelopmentDiscordToolStripMenuItem + // + resources.ApplyResources(this.joinDevelopmentDiscordToolStripMenuItem, "joinDevelopmentDiscordToolStripMenuItem"); + this.joinDevelopmentDiscordToolStripMenuItem.Name = "joinDevelopmentDiscordToolStripMenuItem"; + this.joinDevelopmentDiscordToolStripMenuItem.Click += new System.EventHandler(this.joinDevelopmentDiscordToolStripMenuItem_Click); + // + // trelloBoardToolStripMenuItem + // + this.trelloBoardToolStripMenuItem.Name = "trelloBoardToolStripMenuItem"; + resources.ApplyResources(this.trelloBoardToolStripMenuItem, "trelloBoardToolStripMenuItem"); + this.trelloBoardToolStripMenuItem.Click += new System.EventHandler(this.trelloBoardToolStripMenuItem_Click); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.checkForUpdatesToolStripMenuItem, this.aboutToolStripMenuItem, toolStripSeparator1, @@ -661,25 +653,25 @@ this.donateToolStripMenuItem, this.toolStripSeparator3, this.settingsToolStripMenuItem}); - this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; - this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; - resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem"); - // - // checkForUpdatesToolStripMenuItem - // - this.checkForUpdatesToolStripMenuItem.Name = "checkForUpdatesToolStripMenuItem"; - resources.ApplyResources(this.checkForUpdatesToolStripMenuItem, "checkForUpdatesToolStripMenuItem"); - this.checkForUpdatesToolStripMenuItem.Click += new System.EventHandler(this.checkForUpdatesToolStripMenuItem_Click); - // - // aboutToolStripMenuItem - // - resources.ApplyResources(this.aboutToolStripMenuItem, "aboutToolStripMenuItem"); - this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; - this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); - // - // videosToolStripMenuItem - // - this.videosToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem"); + // + // checkForUpdatesToolStripMenuItem + // + this.checkForUpdatesToolStripMenuItem.Name = "checkForUpdatesToolStripMenuItem"; + resources.ApplyResources(this.checkForUpdatesToolStripMenuItem, "checkForUpdatesToolStripMenuItem"); + this.checkForUpdatesToolStripMenuItem.Click += new System.EventHandler(this.checkForUpdatesToolStripMenuItem_Click); + // + // aboutToolStripMenuItem + // + resources.ApplyResources(this.aboutToolStripMenuItem, "aboutToolStripMenuItem"); + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); + // + // videosToolStripMenuItem + // + this.videosToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.howToMakeABasicSkinPackToolStripMenuItem, this.howToMakeACustomSkinModelToolStripMenuItem, this.howToMakeCustomSkinModelsbedrockToolStripMenuItem, @@ -687,460 +679,460 @@ this.howToInstallPcksDirectlyToWiiUToolStripMenuItem, this.pckCenterReleaseToolStripMenuItem, this.howPCKsWorkToolStripMenuItem}); - this.videosToolStripMenuItem.ForeColor = System.Drawing.Color.Black; - resources.ApplyResources(this.videosToolStripMenuItem, "videosToolStripMenuItem"); - this.videosToolStripMenuItem.Name = "videosToolStripMenuItem"; - // - // howToMakeABasicSkinPackToolStripMenuItem - // - this.howToMakeABasicSkinPackToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; - this.howToMakeABasicSkinPackToolStripMenuItem.Name = "howToMakeABasicSkinPackToolStripMenuItem"; - resources.ApplyResources(this.howToMakeABasicSkinPackToolStripMenuItem, "howToMakeABasicSkinPackToolStripMenuItem"); - this.howToMakeABasicSkinPackToolStripMenuItem.Click += new System.EventHandler(this.howToMakeABasicSkinPackToolStripMenuItem_Click); - // - // howToMakeACustomSkinModelToolStripMenuItem - // - this.howToMakeACustomSkinModelToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; - this.howToMakeACustomSkinModelToolStripMenuItem.Name = "howToMakeACustomSkinModelToolStripMenuItem"; - resources.ApplyResources(this.howToMakeACustomSkinModelToolStripMenuItem, "howToMakeACustomSkinModelToolStripMenuItem"); - this.howToMakeACustomSkinModelToolStripMenuItem.Click += new System.EventHandler(this.howToMakeACustomSkinModelToolStripMenuItem_Click); - // - // howToMakeCustomSkinModelsbedrockToolStripMenuItem - // - this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; - this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Name = "howToMakeCustomSkinModelsbedrockToolStripMenuItem"; - resources.ApplyResources(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem, "howToMakeCustomSkinModelsbedrockToolStripMenuItem"); - this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click); - // - // howToMakeCustomMusicToolStripMenuItem - // - this.howToMakeCustomMusicToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; - this.howToMakeCustomMusicToolStripMenuItem.Name = "howToMakeCustomMusicToolStripMenuItem"; - resources.ApplyResources(this.howToMakeCustomMusicToolStripMenuItem, "howToMakeCustomMusicToolStripMenuItem"); - this.howToMakeCustomMusicToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomMusicToolStripMenuItem_Click); - // - // howToInstallPcksDirectlyToWiiUToolStripMenuItem - // - this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; - this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Name = "howToInstallPcksDirectlyToWiiUToolStripMenuItem"; - resources.ApplyResources(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem, "howToInstallPcksDirectlyToWiiUToolStripMenuItem"); - this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Click += new System.EventHandler(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click); - // - // pckCenterReleaseToolStripMenuItem - // - this.pckCenterReleaseToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; - this.pckCenterReleaseToolStripMenuItem.Name = "pckCenterReleaseToolStripMenuItem"; - resources.ApplyResources(this.pckCenterReleaseToolStripMenuItem, "pckCenterReleaseToolStripMenuItem"); - this.pckCenterReleaseToolStripMenuItem.Click += new System.EventHandler(this.pckCenterReleaseToolStripMenuItem_Click); - // - // howPCKsWorkToolStripMenuItem - // - this.howPCKsWorkToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; - this.howPCKsWorkToolStripMenuItem.Name = "howPCKsWorkToolStripMenuItem"; - resources.ApplyResources(this.howPCKsWorkToolStripMenuItem, "howPCKsWorkToolStripMenuItem"); - this.howPCKsWorkToolStripMenuItem.Click += new System.EventHandler(this.howPCKsWorkToolStripMenuItem_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 + // + this.howToMakeABasicSkinPackToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; + this.howToMakeABasicSkinPackToolStripMenuItem.Name = "howToMakeABasicSkinPackToolStripMenuItem"; + resources.ApplyResources(this.howToMakeABasicSkinPackToolStripMenuItem, "howToMakeABasicSkinPackToolStripMenuItem"); + this.howToMakeABasicSkinPackToolStripMenuItem.Click += new System.EventHandler(this.howToMakeABasicSkinPackToolStripMenuItem_Click); + // + // howToMakeACustomSkinModelToolStripMenuItem + // + this.howToMakeACustomSkinModelToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; + this.howToMakeACustomSkinModelToolStripMenuItem.Name = "howToMakeACustomSkinModelToolStripMenuItem"; + resources.ApplyResources(this.howToMakeACustomSkinModelToolStripMenuItem, "howToMakeACustomSkinModelToolStripMenuItem"); + this.howToMakeACustomSkinModelToolStripMenuItem.Click += new System.EventHandler(this.howToMakeACustomSkinModelToolStripMenuItem_Click); + // + // howToMakeCustomSkinModelsbedrockToolStripMenuItem + // + this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; + this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Name = "howToMakeCustomSkinModelsbedrockToolStripMenuItem"; + resources.ApplyResources(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem, "howToMakeCustomSkinModelsbedrockToolStripMenuItem"); + this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click); + // + // howToMakeCustomMusicToolStripMenuItem + // + this.howToMakeCustomMusicToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; + this.howToMakeCustomMusicToolStripMenuItem.Name = "howToMakeCustomMusicToolStripMenuItem"; + resources.ApplyResources(this.howToMakeCustomMusicToolStripMenuItem, "howToMakeCustomMusicToolStripMenuItem"); + this.howToMakeCustomMusicToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomMusicToolStripMenuItem_Click); + // + // howToInstallPcksDirectlyToWiiUToolStripMenuItem + // + this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; + this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Name = "howToInstallPcksDirectlyToWiiUToolStripMenuItem"; + resources.ApplyResources(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem, "howToInstallPcksDirectlyToWiiUToolStripMenuItem"); + this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Click += new System.EventHandler(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click); + // + // pckCenterReleaseToolStripMenuItem + // + this.pckCenterReleaseToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; + this.pckCenterReleaseToolStripMenuItem.Name = "pckCenterReleaseToolStripMenuItem"; + resources.ApplyResources(this.pckCenterReleaseToolStripMenuItem, "pckCenterReleaseToolStripMenuItem"); + this.pckCenterReleaseToolStripMenuItem.Click += new System.EventHandler(this.pckCenterReleaseToolStripMenuItem_Click); + // + // howPCKsWorkToolStripMenuItem + // + this.howPCKsWorkToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Youtube; + this.howPCKsWorkToolStripMenuItem.Name = "howPCKsWorkToolStripMenuItem"; + resources.ApplyResources(this.howPCKsWorkToolStripMenuItem, "howPCKsWorkToolStripMenuItem"); + this.howPCKsWorkToolStripMenuItem.Click += new System.EventHandler(this.howPCKsWorkToolStripMenuItem_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.Image = global::PckStudio.Properties.Resources.ranch; - this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem"); - this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click); - // - // contextMenuMetaTree - // - this.contextMenuMetaTree.Items.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.Image = global::PckStudio.Properties.Resources.ranch; + this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; + resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem"); + this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click); + // + // contextMenuMetaTree + // + this.contextMenuMetaTree.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addEntryToolStripMenuItem, this.addMultipleEntriesToolStripMenuItem1, this.deleteEntryToolStripMenuItem, this.editAllEntriesToolStripMenuItem}); - this.contextMenuMetaTree.Name = "contextMenuStrip1"; - resources.ApplyResources(this.contextMenuMetaTree, "contextMenuMetaTree"); - // - // addEntryToolStripMenuItem - // - this.addEntryToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.contextMenuMetaTree.Name = "contextMenuStrip1"; + resources.ApplyResources(this.contextMenuMetaTree, "contextMenuMetaTree"); + // + // addEntryToolStripMenuItem + // + this.addEntryToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addEntryToolStripMenuItem1, this.addBOXEntryToolStripMenuItem1, this.addANIMEntryToolStripMenuItem1}); - resources.ApplyResources(this.addEntryToolStripMenuItem, "addEntryToolStripMenuItem"); - this.addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem"; - // - // addEntryToolStripMenuItem1 - // - this.addEntryToolStripMenuItem1.Name = "addEntryToolStripMenuItem1"; - resources.ApplyResources(this.addEntryToolStripMenuItem1, "addEntryToolStripMenuItem1"); - this.addEntryToolStripMenuItem1.Click += new System.EventHandler(this.addEntryToolStripMenuItem_Click_1); - // - // addBOXEntryToolStripMenuItem1 - // - this.addBOXEntryToolStripMenuItem1.Name = "addBOXEntryToolStripMenuItem1"; - resources.ApplyResources(this.addBOXEntryToolStripMenuItem1, "addBOXEntryToolStripMenuItem1"); - this.addBOXEntryToolStripMenuItem1.Click += new System.EventHandler(this.addBOXEntryToolStripMenuItem1_Click); - // - // addANIMEntryToolStripMenuItem1 - // - this.addANIMEntryToolStripMenuItem1.Name = "addANIMEntryToolStripMenuItem1"; - resources.ApplyResources(this.addANIMEntryToolStripMenuItem1, "addANIMEntryToolStripMenuItem1"); - this.addANIMEntryToolStripMenuItem1.Click += new System.EventHandler(this.addANIMEntryToolStripMenuItem1_Click); - // - // addMultipleEntriesToolStripMenuItem1 - // - resources.ApplyResources(this.addMultipleEntriesToolStripMenuItem1, "addMultipleEntriesToolStripMenuItem1"); - this.addMultipleEntriesToolStripMenuItem1.Name = "addMultipleEntriesToolStripMenuItem1"; - this.addMultipleEntriesToolStripMenuItem1.Click += new System.EventHandler(this.addMultipleEntriesToolStripMenuItem1_Click); - // - // deleteEntryToolStripMenuItem - // - resources.ApplyResources(this.deleteEntryToolStripMenuItem, "deleteEntryToolStripMenuItem"); - this.deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem"; - this.deleteEntryToolStripMenuItem.Click += new System.EventHandler(this.deleteEntryToolStripMenuItem_Click); - // - // editAllEntriesToolStripMenuItem - // - this.editAllEntriesToolStripMenuItem.Name = "editAllEntriesToolStripMenuItem"; - resources.ApplyResources(this.editAllEntriesToolStripMenuItem, "editAllEntriesToolStripMenuItem"); - this.editAllEntriesToolStripMenuItem.Click += new System.EventHandler(this.editAllEntriesToolStripMenuItem_Click); - // - // tabControl - // - this.tabControl.Controls.Add(this.openTab); - this.tabControl.Controls.Add(this.editorTab); - resources.ApplyResources(this.tabControl, "tabControl"); - this.tabControl.Name = "tabControl"; - this.tabControl.SelectedIndex = 0; - this.tabControl.Style = MetroFramework.MetroColorStyle.Silver; - this.tabControl.TabStop = false; - this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; - this.tabControl.UseSelectable = true; - this.tabControl.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabControl_Selecting); - // - // openTab - // - this.openTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - this.openTab.Controls.Add(this.pckOpen); - this.openTab.Controls.Add(this.label5); - this.openTab.Controls.Add(this.labelVersion); - this.openTab.Controls.Add(this.ChangelogRichTextBox); - this.openTab.ForeColor = System.Drawing.Color.Transparent; - this.openTab.HorizontalScrollbarBarColor = true; - this.openTab.HorizontalScrollbarHighlightOnWheel = false; - this.openTab.HorizontalScrollbarSize = 10; - resources.ApplyResources(this.openTab, "openTab"); - this.openTab.Name = "openTab"; - this.openTab.Style = MetroFramework.MetroColorStyle.Black; - this.openTab.Theme = MetroFramework.MetroThemeStyle.Dark; - this.openTab.UseStyleColors = true; - this.openTab.VerticalScrollbarBarColor = false; - this.openTab.VerticalScrollbarHighlightOnWheel = false; - this.openTab.VerticalScrollbarSize = 10; - // - // pckOpen - // - this.pckOpen.BackColor = System.Drawing.Color.Transparent; - resources.ApplyResources(this.pckOpen, "pckOpen"); - this.pckOpen.Name = "pckOpen"; - this.pckOpen.TabStop = false; - this.pckOpen.Click += new System.EventHandler(this.OpenPck_Click); - this.pckOpen.DragDrop += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragDrop); - this.pckOpen.DragEnter += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragEnter); - this.pckOpen.DragLeave += new System.EventHandler(this.OpenPck_DragLeave); - this.pckOpen.MouseEnter += new System.EventHandler(this.OpenPck_MouseEnter); - this.pckOpen.MouseLeave += new System.EventHandler(this.OpenPck_MouseLeave); - // - // label5 - // - resources.ApplyResources(this.label5, "label5"); - this.label5.BackColor = System.Drawing.Color.Transparent; - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Name = "label5"; - this.label5.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // labelVersion - // - resources.ApplyResources(this.labelVersion, "labelVersion"); - this.labelVersion.ForeColor = System.Drawing.Color.White; - this.labelVersion.Name = "labelVersion"; - this.labelVersion.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // ChangelogRichTextBox - // - this.ChangelogRichTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); - this.ChangelogRichTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - resources.ApplyResources(this.ChangelogRichTextBox, "ChangelogRichTextBox"); - this.ChangelogRichTextBox.ForeColor = System.Drawing.Color.White; - this.ChangelogRichTextBox.Name = "ChangelogRichTextBox"; - this.ChangelogRichTextBox.ReadOnly = true; - // - // editorTab - // - this.editorTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - resources.ApplyResources(this.editorTab, "editorTab"); - this.editorTab.Controls.Add(this.pckFileLabel); - this.editorTab.Controls.Add(this.labelImageSize); - this.editorTab.Controls.Add(this.fileEntryCountLabel); - this.editorTab.Controls.Add(this.PropertiesTabControl); - this.editorTab.Controls.Add(this.label11); - this.editorTab.Controls.Add(this.treeViewMain); - this.editorTab.Controls.Add(logoPictureBox); - this.editorTab.Controls.Add(this.previewPictureBox); - this.editorTab.ForeColor = System.Drawing.Color.Transparent; - this.editorTab.HorizontalScrollbarBarColor = true; - this.editorTab.HorizontalScrollbarHighlightOnWheel = false; - this.editorTab.HorizontalScrollbarSize = 0; - this.editorTab.Name = "editorTab"; - this.editorTab.Style = MetroFramework.MetroColorStyle.White; - this.editorTab.Theme = MetroFramework.MetroThemeStyle.Dark; - this.editorTab.VerticalScrollbarBarColor = true; - this.editorTab.VerticalScrollbarHighlightOnWheel = false; - this.editorTab.VerticalScrollbarSize = 0; - // - // pckFileLabel - // - resources.ApplyResources(this.pckFileLabel, "pckFileLabel"); - this.pckFileLabel.Name = "pckFileLabel"; - this.pckFileLabel.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // labelImageSize - // - resources.ApplyResources(this.labelImageSize, "labelImageSize"); - this.labelImageSize.Name = "labelImageSize"; - this.labelImageSize.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // fileEntryCountLabel - // - resources.ApplyResources(this.fileEntryCountLabel, "fileEntryCountLabel"); - this.fileEntryCountLabel.Name = "fileEntryCountLabel"; - this.fileEntryCountLabel.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // PropertiesTabControl - // - resources.ApplyResources(this.PropertiesTabControl, "PropertiesTabControl"); - this.PropertiesTabControl.Controls.Add(this.MetaTab); - this.PropertiesTabControl.Name = "PropertiesTabControl"; - this.PropertiesTabControl.SelectedIndex = 0; - this.PropertiesTabControl.Style = MetroFramework.MetroColorStyle.Silver; - this.PropertiesTabControl.Theme = MetroFramework.MetroThemeStyle.Dark; - this.PropertiesTabControl.UseSelectable = true; - // - // MetaTab - // - this.MetaTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.MetaTab.Controls.Add(this.metroLabel2); - this.MetaTab.Controls.Add(this.treeMeta); - this.MetaTab.Controls.Add(this.entryTypeTextBox); - this.MetaTab.Controls.Add(this.entryDataTextBox); - this.MetaTab.Controls.Add(this.buttonEdit); - this.MetaTab.Controls.Add(this.metroLabel1); - this.MetaTab.HorizontalScrollbarBarColor = true; - this.MetaTab.HorizontalScrollbarHighlightOnWheel = false; - this.MetaTab.HorizontalScrollbarSize = 10; - resources.ApplyResources(this.MetaTab, "MetaTab"); - this.MetaTab.Name = "MetaTab"; - this.MetaTab.Theme = MetroFramework.MetroThemeStyle.Dark; - this.MetaTab.VerticalScrollbarBarColor = true; - this.MetaTab.VerticalScrollbarHighlightOnWheel = false; - this.MetaTab.VerticalScrollbarSize = 10; - // - // metroLabel2 - // - resources.ApplyResources(this.metroLabel2, "metroLabel2"); - this.metroLabel2.Name = "metroLabel2"; - this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // treeMeta - // - this.treeMeta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); - this.treeMeta.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.treeMeta.ContextMenuStrip = this.contextMenuMetaTree; - resources.ApplyResources(this.treeMeta, "treeMeta"); - this.treeMeta.ForeColor = System.Drawing.SystemColors.Window; - this.treeMeta.Name = "treeMeta"; - this.treeMeta.PathSeparator = "/"; - this.treeMeta.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeMeta_AfterSelect); - this.treeMeta.DoubleClick += new System.EventHandler(this.treeMeta_DoubleClick); - this.treeMeta.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeMeta_KeyDown); - // - // entryTypeTextBox - // - resources.ApplyResources(this.entryTypeTextBox, "entryTypeTextBox"); - // - // - // - this.entryTypeTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); - this.entryTypeTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); - this.entryTypeTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); - this.entryTypeTextBox.CustomButton.Name = ""; - this.entryTypeTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); - this.entryTypeTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.entryTypeTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); - this.entryTypeTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.entryTypeTextBox.CustomButton.UseSelectable = true; - this.entryTypeTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); - this.entryTypeTextBox.Lines = new string[0]; - this.entryTypeTextBox.MaxLength = 32767; - this.entryTypeTextBox.Name = "entryTypeTextBox"; - this.entryTypeTextBox.PasswordChar = '\0'; - this.entryTypeTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.entryTypeTextBox.SelectedText = ""; - this.entryTypeTextBox.SelectionLength = 0; - this.entryTypeTextBox.SelectionStart = 0; - this.entryTypeTextBox.ShortcutsEnabled = true; - this.entryTypeTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.entryTypeTextBox.UseSelectable = true; - this.entryTypeTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.entryTypeTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // entryDataTextBox - // - resources.ApplyResources(this.entryDataTextBox, "entryDataTextBox"); - // - // - // - this.entryDataTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); - this.entryDataTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1"))); - this.entryDataTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); - this.entryDataTextBox.CustomButton.Name = ""; - this.entryDataTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); - this.entryDataTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.entryDataTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); - this.entryDataTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.entryDataTextBox.CustomButton.UseSelectable = true; - this.entryDataTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); - this.entryDataTextBox.Lines = new string[0]; - this.entryDataTextBox.MaxLength = 32767; - this.entryDataTextBox.Name = "entryDataTextBox"; - this.entryDataTextBox.PasswordChar = '\0'; - this.entryDataTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.entryDataTextBox.SelectedText = ""; - this.entryDataTextBox.SelectionLength = 0; - this.entryDataTextBox.SelectionStart = 0; - this.entryDataTextBox.ShortcutsEnabled = true; - this.entryDataTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.entryDataTextBox.UseSelectable = true; - this.entryDataTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.entryDataTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // buttonEdit - // - resources.ApplyResources(this.buttonEdit, "buttonEdit"); - this.buttonEdit.Name = "buttonEdit"; - this.buttonEdit.Theme = MetroFramework.MetroThemeStyle.Dark; - this.buttonEdit.UseSelectable = true; - this.buttonEdit.Click += new System.EventHandler(this.treeViewMain_DoubleClick); - // - // metroLabel1 - // - resources.ApplyResources(this.metroLabel1, "metroLabel1"); - this.metroLabel1.Name = "metroLabel1"; - this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // label11 - // - resources.ApplyResources(this.label11, "label11"); - this.label11.Name = "label11"; - // - // treeViewMain - // - this.treeViewMain.AllowDrop = true; - resources.ApplyResources(this.treeViewMain, "treeViewMain"); - this.treeViewMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(12)))), ((int)(((byte)(12))))); - this.treeViewMain.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.treeViewMain.ContextMenuStrip = this.contextMenuPCKEntries; - this.treeViewMain.ForeColor = System.Drawing.Color.White; - this.treeViewMain.ImageList = this.imageList; - this.treeViewMain.LabelEdit = true; - this.treeViewMain.Name = "treeViewMain"; - this.treeViewMain.PathSeparator = "/"; - this.treeViewMain.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeViewMain_BeforeLabelEdit); - this.treeViewMain.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.selectNode); - this.treeViewMain.DoubleClick += new System.EventHandler(this.treeViewMain_DoubleClick); - this.treeViewMain.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeViewMain_KeyDown); - // - // imageList - // - this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; - resources.ApplyResources(this.imageList, "imageList"); - this.imageList.TransparentColor = System.Drawing.Color.Transparent; - // - // previewPictureBox - // - resources.ApplyResources(this.previewPictureBox, "previewPictureBox"); - this.previewPictureBox.BackColor = System.Drawing.Color.Transparent; - this.previewPictureBox.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; - this.previewPictureBox.Name = "previewPictureBox"; - this.previewPictureBox.TabStop = false; - // - // LittleEndianCheckBox - // - resources.ApplyResources(this.LittleEndianCheckBox, "LittleEndianCheckBox"); - this.LittleEndianCheckBox.BackColor = System.Drawing.Color.Transparent; - this.LittleEndianCheckBox.Name = "LittleEndianCheckBox"; - this.LittleEndianCheckBox.Style = MetroFramework.MetroColorStyle.White; - this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.LittleEndianCheckBox.UseSelectable = true; - // - // MainForm - // - this.ApplyImageInvert = true; - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.LittleEndianCheckBox); - this.Controls.Add(this.menuStrip); - this.Controls.Add(this.tabControl); - this.DisplayHeader = false; - this.ForeColor = System.Drawing.Color.Silver; - this.MainMenuStrip = this.menuStrip; - this.Name = "MainForm"; - this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow; - this.Style = MetroFramework.MetroColorStyle.Black; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); - this.Load += new System.EventHandler(this.MainForm_Load); - ((System.ComponentModel.ISupportInitialize)(logoPictureBox)).EndInit(); - this.contextMenuPCKEntries.ResumeLayout(false); - this.menuStrip.ResumeLayout(false); - this.menuStrip.PerformLayout(); - this.contextMenuMetaTree.ResumeLayout(false); - this.tabControl.ResumeLayout(false); - this.openTab.ResumeLayout(false); - this.openTab.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).EndInit(); - this.editorTab.ResumeLayout(false); - this.editorTab.PerformLayout(); - this.PropertiesTabControl.ResumeLayout(false); - this.MetaTab.ResumeLayout(false); - this.MetaTab.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.previewPictureBox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); + resources.ApplyResources(this.addEntryToolStripMenuItem, "addEntryToolStripMenuItem"); + this.addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem"; + // + // addEntryToolStripMenuItem1 + // + this.addEntryToolStripMenuItem1.Name = "addEntryToolStripMenuItem1"; + resources.ApplyResources(this.addEntryToolStripMenuItem1, "addEntryToolStripMenuItem1"); + this.addEntryToolStripMenuItem1.Click += new System.EventHandler(this.addEntryToolStripMenuItem_Click_1); + // + // addBOXEntryToolStripMenuItem1 + // + this.addBOXEntryToolStripMenuItem1.Name = "addBOXEntryToolStripMenuItem1"; + resources.ApplyResources(this.addBOXEntryToolStripMenuItem1, "addBOXEntryToolStripMenuItem1"); + this.addBOXEntryToolStripMenuItem1.Click += new System.EventHandler(this.addBOXEntryToolStripMenuItem1_Click); + // + // addANIMEntryToolStripMenuItem1 + // + this.addANIMEntryToolStripMenuItem1.Name = "addANIMEntryToolStripMenuItem1"; + resources.ApplyResources(this.addANIMEntryToolStripMenuItem1, "addANIMEntryToolStripMenuItem1"); + this.addANIMEntryToolStripMenuItem1.Click += new System.EventHandler(this.addANIMEntryToolStripMenuItem1_Click); + // + // addMultipleEntriesToolStripMenuItem1 + // + resources.ApplyResources(this.addMultipleEntriesToolStripMenuItem1, "addMultipleEntriesToolStripMenuItem1"); + this.addMultipleEntriesToolStripMenuItem1.Name = "addMultipleEntriesToolStripMenuItem1"; + this.addMultipleEntriesToolStripMenuItem1.Click += new System.EventHandler(this.addMultipleEntriesToolStripMenuItem1_Click); + // + // deleteEntryToolStripMenuItem + // + resources.ApplyResources(this.deleteEntryToolStripMenuItem, "deleteEntryToolStripMenuItem"); + this.deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem"; + this.deleteEntryToolStripMenuItem.Click += new System.EventHandler(this.deleteEntryToolStripMenuItem_Click); + // + // editAllEntriesToolStripMenuItem + // + this.editAllEntriesToolStripMenuItem.Name = "editAllEntriesToolStripMenuItem"; + resources.ApplyResources(this.editAllEntriesToolStripMenuItem, "editAllEntriesToolStripMenuItem"); + this.editAllEntriesToolStripMenuItem.Click += new System.EventHandler(this.editAllEntriesToolStripMenuItem_Click); + // + // tabControl + // + this.tabControl.Controls.Add(this.openTab); + this.tabControl.Controls.Add(this.editorTab); + resources.ApplyResources(this.tabControl, "tabControl"); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Style = MetroFramework.MetroColorStyle.Silver; + this.tabControl.TabStop = false; + this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; + this.tabControl.UseSelectable = true; + this.tabControl.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabControl_Selecting); + // + // openTab + // + this.openTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.openTab.Controls.Add(this.pckOpen); + this.openTab.Controls.Add(this.label5); + this.openTab.Controls.Add(this.labelVersion); + this.openTab.Controls.Add(this.ChangelogRichTextBox); + this.openTab.ForeColor = System.Drawing.Color.Transparent; + this.openTab.HorizontalScrollbarBarColor = true; + this.openTab.HorizontalScrollbarHighlightOnWheel = false; + this.openTab.HorizontalScrollbarSize = 10; + resources.ApplyResources(this.openTab, "openTab"); + this.openTab.Name = "openTab"; + this.openTab.Style = MetroFramework.MetroColorStyle.Black; + this.openTab.Theme = MetroFramework.MetroThemeStyle.Dark; + this.openTab.UseStyleColors = true; + this.openTab.VerticalScrollbarBarColor = false; + this.openTab.VerticalScrollbarHighlightOnWheel = false; + this.openTab.VerticalScrollbarSize = 10; + // + // pckOpen + // + this.pckOpen.BackColor = System.Drawing.Color.Transparent; + resources.ApplyResources(this.pckOpen, "pckOpen"); + this.pckOpen.Name = "pckOpen"; + this.pckOpen.TabStop = false; + this.pckOpen.Click += new System.EventHandler(this.OpenPck_Click); + this.pckOpen.DragDrop += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragDrop); + this.pckOpen.DragEnter += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragEnter); + this.pckOpen.DragLeave += new System.EventHandler(this.OpenPck_DragLeave); + this.pckOpen.MouseEnter += new System.EventHandler(this.OpenPck_MouseEnter); + this.pckOpen.MouseLeave += new System.EventHandler(this.OpenPck_MouseLeave); + // + // label5 + // + resources.ApplyResources(this.label5, "label5"); + this.label5.BackColor = System.Drawing.Color.Transparent; + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Name = "label5"; + this.label5.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // labelVersion + // + resources.ApplyResources(this.labelVersion, "labelVersion"); + this.labelVersion.ForeColor = System.Drawing.Color.White; + this.labelVersion.Name = "labelVersion"; + this.labelVersion.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // ChangelogRichTextBox + // + this.ChangelogRichTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); + this.ChangelogRichTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + resources.ApplyResources(this.ChangelogRichTextBox, "ChangelogRichTextBox"); + this.ChangelogRichTextBox.ForeColor = System.Drawing.Color.White; + this.ChangelogRichTextBox.Name = "ChangelogRichTextBox"; + this.ChangelogRichTextBox.ReadOnly = true; + // + // editorTab + // + this.editorTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + resources.ApplyResources(this.editorTab, "editorTab"); + this.editorTab.Controls.Add(this.pckFileLabel); + this.editorTab.Controls.Add(this.labelImageSize); + this.editorTab.Controls.Add(this.fileEntryCountLabel); + this.editorTab.Controls.Add(this.PropertiesTabControl); + this.editorTab.Controls.Add(this.label11); + this.editorTab.Controls.Add(this.treeViewMain); + this.editorTab.Controls.Add(logoPictureBox); + this.editorTab.Controls.Add(this.previewPictureBox); + this.editorTab.ForeColor = System.Drawing.Color.Transparent; + this.editorTab.HorizontalScrollbarBarColor = true; + this.editorTab.HorizontalScrollbarHighlightOnWheel = false; + this.editorTab.HorizontalScrollbarSize = 0; + this.editorTab.Name = "editorTab"; + this.editorTab.Style = MetroFramework.MetroColorStyle.White; + this.editorTab.Theme = MetroFramework.MetroThemeStyle.Dark; + this.editorTab.VerticalScrollbarBarColor = true; + this.editorTab.VerticalScrollbarHighlightOnWheel = false; + this.editorTab.VerticalScrollbarSize = 0; + // + // pckFileLabel + // + resources.ApplyResources(this.pckFileLabel, "pckFileLabel"); + this.pckFileLabel.Name = "pckFileLabel"; + this.pckFileLabel.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // labelImageSize + // + resources.ApplyResources(this.labelImageSize, "labelImageSize"); + this.labelImageSize.Name = "labelImageSize"; + this.labelImageSize.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // fileEntryCountLabel + // + resources.ApplyResources(this.fileEntryCountLabel, "fileEntryCountLabel"); + this.fileEntryCountLabel.Name = "fileEntryCountLabel"; + this.fileEntryCountLabel.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // PropertiesTabControl + // + resources.ApplyResources(this.PropertiesTabControl, "PropertiesTabControl"); + this.PropertiesTabControl.Controls.Add(this.MetaTab); + this.PropertiesTabControl.Name = "PropertiesTabControl"; + this.PropertiesTabControl.SelectedIndex = 0; + this.PropertiesTabControl.Style = MetroFramework.MetroColorStyle.Silver; + this.PropertiesTabControl.Theme = MetroFramework.MetroThemeStyle.Dark; + this.PropertiesTabControl.UseSelectable = true; + // + // MetaTab + // + this.MetaTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.MetaTab.Controls.Add(this.metroLabel2); + this.MetaTab.Controls.Add(this.treeMeta); + this.MetaTab.Controls.Add(this.entryTypeTextBox); + this.MetaTab.Controls.Add(this.entryDataTextBox); + this.MetaTab.Controls.Add(this.buttonEdit); + this.MetaTab.Controls.Add(this.metroLabel1); + this.MetaTab.HorizontalScrollbarBarColor = true; + this.MetaTab.HorizontalScrollbarHighlightOnWheel = false; + this.MetaTab.HorizontalScrollbarSize = 10; + resources.ApplyResources(this.MetaTab, "MetaTab"); + this.MetaTab.Name = "MetaTab"; + this.MetaTab.Theme = MetroFramework.MetroThemeStyle.Dark; + this.MetaTab.VerticalScrollbarBarColor = true; + this.MetaTab.VerticalScrollbarHighlightOnWheel = false; + this.MetaTab.VerticalScrollbarSize = 10; + // + // metroLabel2 + // + resources.ApplyResources(this.metroLabel2, "metroLabel2"); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // treeMeta + // + this.treeMeta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); + this.treeMeta.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.treeMeta.ContextMenuStrip = this.contextMenuMetaTree; + resources.ApplyResources(this.treeMeta, "treeMeta"); + this.treeMeta.ForeColor = System.Drawing.SystemColors.Window; + this.treeMeta.Name = "treeMeta"; + this.treeMeta.PathSeparator = "/"; + this.treeMeta.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeMeta_AfterSelect); + this.treeMeta.DoubleClick += new System.EventHandler(this.treeMeta_DoubleClick); + this.treeMeta.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeMeta_KeyDown); + // + // entryTypeTextBox + // + resources.ApplyResources(this.entryTypeTextBox, "entryTypeTextBox"); + // + // + // + this.entryTypeTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); + this.entryTypeTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); + this.entryTypeTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); + this.entryTypeTextBox.CustomButton.Name = ""; + this.entryTypeTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); + this.entryTypeTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.entryTypeTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); + this.entryTypeTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.entryTypeTextBox.CustomButton.UseSelectable = true; + this.entryTypeTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); + this.entryTypeTextBox.Lines = new string[0]; + this.entryTypeTextBox.MaxLength = 32767; + this.entryTypeTextBox.Name = "entryTypeTextBox"; + this.entryTypeTextBox.PasswordChar = '\0'; + this.entryTypeTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.entryTypeTextBox.SelectedText = ""; + this.entryTypeTextBox.SelectionLength = 0; + this.entryTypeTextBox.SelectionStart = 0; + this.entryTypeTextBox.ShortcutsEnabled = true; + this.entryTypeTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.entryTypeTextBox.UseSelectable = true; + this.entryTypeTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.entryTypeTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // entryDataTextBox + // + resources.ApplyResources(this.entryDataTextBox, "entryDataTextBox"); + // + // + // + this.entryDataTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); + this.entryDataTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1"))); + this.entryDataTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); + this.entryDataTextBox.CustomButton.Name = ""; + this.entryDataTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); + this.entryDataTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.entryDataTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); + this.entryDataTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.entryDataTextBox.CustomButton.UseSelectable = true; + this.entryDataTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); + this.entryDataTextBox.Lines = new string[0]; + this.entryDataTextBox.MaxLength = 32767; + this.entryDataTextBox.Name = "entryDataTextBox"; + this.entryDataTextBox.PasswordChar = '\0'; + this.entryDataTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.entryDataTextBox.SelectedText = ""; + this.entryDataTextBox.SelectionLength = 0; + this.entryDataTextBox.SelectionStart = 0; + this.entryDataTextBox.ShortcutsEnabled = true; + this.entryDataTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.entryDataTextBox.UseSelectable = true; + this.entryDataTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.entryDataTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // buttonEdit + // + resources.ApplyResources(this.buttonEdit, "buttonEdit"); + this.buttonEdit.Name = "buttonEdit"; + this.buttonEdit.Theme = MetroFramework.MetroThemeStyle.Dark; + this.buttonEdit.UseSelectable = true; + this.buttonEdit.Click += new System.EventHandler(this.treeViewMain_DoubleClick); + // + // metroLabel1 + // + resources.ApplyResources(this.metroLabel1, "metroLabel1"); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // label11 + // + resources.ApplyResources(this.label11, "label11"); + this.label11.Name = "label11"; + // + // treeViewMain + // + this.treeViewMain.AllowDrop = true; + resources.ApplyResources(this.treeViewMain, "treeViewMain"); + this.treeViewMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(12)))), ((int)(((byte)(12))))); + this.treeViewMain.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.treeViewMain.ContextMenuStrip = this.contextMenuPCKEntries; + this.treeViewMain.ForeColor = System.Drawing.Color.White; + this.treeViewMain.ImageList = this.imageList; + this.treeViewMain.LabelEdit = true; + this.treeViewMain.Name = "treeViewMain"; + this.treeViewMain.PathSeparator = "/"; + this.treeViewMain.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeViewMain_BeforeLabelEdit); + this.treeViewMain.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.selectNode); + this.treeViewMain.DoubleClick += new System.EventHandler(this.treeViewMain_DoubleClick); + this.treeViewMain.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeViewMain_KeyDown); + // + // imageList + // + this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; + resources.ApplyResources(this.imageList, "imageList"); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + // + // previewPictureBox + // + resources.ApplyResources(this.previewPictureBox, "previewPictureBox"); + this.previewPictureBox.BackColor = System.Drawing.Color.Transparent; + this.previewPictureBox.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; + this.previewPictureBox.Name = "previewPictureBox"; + this.previewPictureBox.TabStop = false; + // + // LittleEndianCheckBox + // + resources.ApplyResources(this.LittleEndianCheckBox, "LittleEndianCheckBox"); + this.LittleEndianCheckBox.BackColor = System.Drawing.Color.Transparent; + this.LittleEndianCheckBox.Name = "LittleEndianCheckBox"; + this.LittleEndianCheckBox.Style = MetroFramework.MetroColorStyle.White; + this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.LittleEndianCheckBox.UseSelectable = true; + // + // MainForm + // + this.ApplyImageInvert = true; + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.LittleEndianCheckBox); + this.Controls.Add(this.menuStrip); + this.Controls.Add(this.tabControl); + this.DisplayHeader = false; + this.ForeColor = System.Drawing.Color.Silver; + this.MainMenuStrip = this.menuStrip; + this.Name = "MainForm"; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow; + this.Style = MetroFramework.MetroColorStyle.Black; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); + this.Load += new System.EventHandler(this.MainForm_Load); + ((System.ComponentModel.ISupportInitialize)(logoPictureBox)).EndInit(); + this.contextMenuPCKEntries.ResumeLayout(false); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.contextMenuMetaTree.ResumeLayout(false); + this.tabControl.ResumeLayout(false); + this.openTab.ResumeLayout(false); + this.openTab.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).EndInit(); + this.editorTab.ResumeLayout(false); + this.editorTab.PerformLayout(); + this.PropertiesTabControl.ResumeLayout(false); + this.MetaTab.ResumeLayout(false); + this.MetaTab.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.previewPictureBox)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -1224,7 +1216,6 @@ private System.Windows.Forms.ToolStripMenuItem viewFileInfoToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem correctSkinDecimalsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem miscToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem addCustomPackImageToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem CreateSkinsPCKToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem editAllEntriesToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem addFileToolStripMenuItem; diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index dd4f1c8b..500ecfa6 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -223,7 +223,6 @@ namespace PckStudio saveToolStripMenuItem1.Enabled = true; quickChangeToolStripMenuItem.Enabled = true; convertToBedrockToolStripMenuItem.Enabled = true; - addCustomPackImageToolStripMenuItem.Enabled = true; BuildMainTreeView(); isSelectingTab = true; tabControl.SelectTab(1); @@ -251,7 +250,6 @@ namespace PckStudio closeToolStripMenuItem.Visible = false; packSettingsToolStripMenuItem.Visible = false; convertToBedrockToolStripMenuItem.Enabled = false; - addCustomPackImageToolStripMenuItem.Enabled = false; fileEntryCountLabel.Text = string.Empty; pckFileLabel.Text = string.Empty; UpdateRichPresence(); @@ -804,49 +802,49 @@ namespace PckStudio LOCFile locFile = null; TryGetLocFile(out locFile); using AddNewSkin add = new AddNewSkin(locFile); - if (add.ShowDialog() == DialogResult.OK) - { + if (add.ShowDialog() == DialogResult.OK) + { + if (currentPCK.HasFile("Skins.pck", PckFileType.SkinDataFile)) // Prioritize Skins.pck + { + TreeNode subPCK = treeViewMain.Nodes.Find("Skins.pck", false).FirstOrDefault(); + if (subPCK.Nodes.ContainsKey("Skins")) add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins/"); + add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins.pck/"); + TreeNode newNode = new TreeNode(Path.GetFileName(add.SkinFile.Filename)); + newNode.Tag = add.SkinFile; + SetNodeIcon(newNode, PckFileType.SkinFile); + subPCK.Nodes.Add(newNode); + RebuildSubPCK(newNode.FullPath); + } + else + { + if (treeViewMain.Nodes.ContainsKey("Skins")) add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins/"); // Then Skins folder + currentPCK.AddFile(add.SkinFile); + } + if (add.HasCape) + { if (currentPCK.HasFile("Skins.pck", PckFileType.SkinDataFile)) // Prioritize Skins.pck { TreeNode subPCK = treeViewMain.Nodes.Find("Skins.pck", false).FirstOrDefault(); - if (subPCK.Nodes.ContainsKey("Skins")) add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins/"); - add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins.pck/"); - TreeNode newNode = new TreeNode(Path.GetFileName(add.SkinFile.Filename)); - newNode.Tag = add.SkinFile; + if (subPCK.Nodes.ContainsKey("Skins")) add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins/"); + add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins.pck/"); + TreeNode newNode = new TreeNode(Path.GetFileName(add.CapeFile.Filename)); + newNode.Tag = add.CapeFile; SetNodeIcon(newNode, PckFileType.SkinFile); subPCK.Nodes.Add(newNode); RebuildSubPCK(newNode.FullPath); } else { - if (treeViewMain.Nodes.ContainsKey("Skins")) add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins/"); // Then Skins folder - currentPCK.AddFile(add.SkinFile); + if (treeViewMain.Nodes.ContainsKey("Skins")) add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins/"); // Then Skins folder + currentPCK.AddFile(add.CapeFile); } - if (add.HasCape) - { - if (currentPCK.HasFile("Skins.pck", PckFileType.SkinDataFile)) // Prioritize Skins.pck - { - TreeNode subPCK = treeViewMain.Nodes.Find("Skins.pck", false).FirstOrDefault(); - if (subPCK.Nodes.ContainsKey("Skins")) add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins/"); - add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins.pck/"); - TreeNode newNode = new TreeNode(Path.GetFileName(add.CapeFile.Filename)); - newNode.Tag = add.CapeFile; - SetNodeIcon(newNode, PckFileType.SkinFile); - subPCK.Nodes.Add(newNode); - RebuildSubPCK(newNode.FullPath); - } - else - { - if (treeViewMain.Nodes.ContainsKey("Skins")) add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins/"); // Then Skins folder - currentPCK.AddFile(add.CapeFile); - } - } - - TrySetLocFile(locFile); - wasModified = true; - BuildMainTreeView(); } + + TrySetLocFile(locFile); + wasModified = true; + BuildMainTreeView(); + } } private static PckFileData CreateNewAudioFile(bool isLittle) @@ -2027,91 +2025,6 @@ namespace PckStudio } } - private void addCustomPackIconToolStripMenuItem_Click(object sender, EventArgs e) - { - string packID = "0"; - - using NumericPrompt numericPrompt = new NumericPrompt(0); - numericPrompt.Minimum = 0; // TODO: put min pack ID value (keeping this 0 just to be safe) - numericPrompt.Maximum = int.MinValue; // TODO: put max pack ID value - numericPrompt.ContextLabel.Text = "Please insert the desired Pack ID"; - numericPrompt.TextLabel.Text = "Pack ID"; - - if (currentPCK is not null) - { - DialogResult prompt = MessageBox.Show(this, - "Would you like to use the current PackID? You can enter any PackID if not.", - "", - MessageBoxButtons.YesNoCancel); - - switch (prompt) - { - case DialogResult.Yes: - if (!currentPCK.TryGetFile("0", PckFileType.InfoFile, out PckFileData file) || - string.IsNullOrEmpty(file.Properties.GetPropertyValue("PACKID"))) - { - MessageBox.Show(this, - "No PackID is present in this PCK. " + - "To avoid this error, ensure that the PCK has a proper PackID property on the \"0\" Info file before trying again.", - "Operation Aborted", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - - packID = file.Properties.GetPropertyValue("PACKID"); - break; - case DialogResult.No: - break; - case DialogResult.Cancel: - default: - MessageBox.Show(this, "Operation cancelled"); - return; - } - } - else if (numericPrompt.ShowDialog(this) == DialogResult.OK) packID = numericPrompt.SelectedValue.ToString(); - else - { - MessageBox.Show(this, "Operation cancelled"); - return; - } - - OpenFileDialog fileDialog = new OpenFileDialog(); - fileDialog.Filter = "Minecraft Archive|*.arc"; - if (fileDialog.ShowDialog(this) == DialogResult.OK) - { - var reader = new ARCFileReader(); - ConsoleArchive archive = reader.FromFile(fileDialog.FileName); - - fileDialog.Filter = "Pack Icon|*.png"; - if (fileDialog.ShowDialog(this) == DialogResult.OK) - { - string key = string.Format("Graphics\\PackGraphics\\{0}.png", packID); - - if (archive.Keys.Contains(key)) - { - DialogResult prompt = MessageBox.Show(this, - "This pack already has a pack icon present in the chosen file. Would you like to replace the pack icon?", - "Icon already exists", - MessageBoxButtons.YesNoCancel); - switch (prompt) - { - case DialogResult.Yes: - archive.Remove(key); // remove file so it can be injected - break; - case DialogResult.No: - case DialogResult.Cancel: - default: - Trace.WriteLine("Operation cancelled", category: nameof(addCustomPackIconToolStripMenuItem_Click)); - return; - } - } - archive.Add(key, File.ReadAllBytes(fileDialog.FileName)); - var writer = new ARCFileWriter(archive); - writer.WriteToFile(fileDialog.FileName); - MessageBox.Show($"Successfully added {key} to Archive!", "Successfully Added", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - } - } - private void CreateSkinsPCKToolStripMenuItem1_Click(object sender, EventArgs e) { if (currentPCK.TryGetFile("Skins.pck", PckFileType.SkinDataFile, out _)) diff --git a/PCK-Studio/MainForm.resx b/PCK-Studio/MainForm.resx index d50aa59a..4d0b8bf9 100644 --- a/PCK-Studio/MainForm.resx +++ b/PCK-Studio/MainForm.resx @@ -918,7 +918,7 @@ - 180, 22 + 157, 22 Create @@ -985,7 +985,7 @@ - 180, 22 + 157, 22 Import @@ -997,7 +997,7 @@ Export as 3DS Texture - 180, 22 + 157, 22 Export @@ -1075,7 +1075,7 @@ Entity Materials File (.BIN) - 180, 22 + 157, 22 Set File Type @@ -1099,19 +1099,19 @@ Correct Skin Decimals - 180, 22 + 157, 22 Misc. Functions - 180, 22 + 157, 22 Move Up - 180, 22 + 157, 22 Move Down @@ -1126,13 +1126,13 @@ - 180, 22 + 157, 22 Extract - 180, 22 + 157, 22 Clone @@ -1145,7 +1145,7 @@ - 180, 22 + 157, 22 Rename @@ -1161,7 +1161,7 @@ - 180, 22 + 157, 22 Replace @@ -1176,13 +1176,13 @@ - 180, 22 + 157, 22 Delete - 181, 290 + 158, 268 contextMenuPCKEntries @@ -1395,14 +1395,8 @@ Edit - - 195, 22 - - - Add Custom Pack Icon - - 195, 22 + 180, 22 Pck Manager @@ -1420,7 +1414,7 @@ Binka -> Wav - 195, 22 + 180, 22 Audio Converter @@ -6771,12 +6765,6 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - addCustomPackImageToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - openPckManagerToolStripMenuItem From 60958860ce521ed5e35fbc2a26595935b85b592e Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Wed, 13 Mar 2024 18:14:51 +0100 Subject: [PATCH 10/14] MainForm - Remove 'Convert to Bedrock' feature --- PCK-Studio/MainForm.Designer.cs | 11 +---------- PCK-Studio/MainForm.cs | 7 ------- PCK-Studio/MainForm.resx | 32 -------------------------------- 3 files changed, 1 insertion(+), 49 deletions(-) diff --git a/PCK-Studio/MainForm.Designer.cs b/PCK-Studio/MainForm.Designer.cs index d6ea4aa7..b6c7712c 100644 --- a/PCK-Studio/MainForm.Designer.cs +++ b/PCK-Studio/MainForm.Designer.cs @@ -89,7 +89,6 @@ this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.quickChangeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openPckManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.convertMusicFilesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -560,8 +559,7 @@ // editToolStripMenuItem // this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.quickChangeToolStripMenuItem, - this.convertToBedrockToolStripMenuItem}); + this.quickChangeToolStripMenuItem}); this.editToolStripMenuItem.ForeColor = System.Drawing.Color.Silver; this.editToolStripMenuItem.Name = "editToolStripMenuItem"; resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem"); @@ -572,12 +570,6 @@ this.quickChangeToolStripMenuItem.Name = "quickChangeToolStripMenuItem"; this.quickChangeToolStripMenuItem.Click += new System.EventHandler(this.quickChangeToolStripMenuItem_Click); // - // convertToBedrockToolStripMenuItem - // - resources.ApplyResources(this.convertToBedrockToolStripMenuItem, "convertToBedrockToolStripMenuItem"); - this.convertToBedrockToolStripMenuItem.Name = "convertToBedrockToolStripMenuItem"; - this.convertToBedrockToolStripMenuItem.Click += new System.EventHandler(this.convertToBedrockToolStripMenuItem_Click); - // // miscToolStripMenuItem // this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -1163,7 +1155,6 @@ private System.Windows.Forms.ToolStripMenuItem folderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem skinToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem createAnimatedTextureToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertToBedrockToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem storeToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openPckCenterToolStripMenuItem; private MetroFramework.Controls.MetroTabControl tabControl; diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 500ecfa6..48d3f2a6 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -222,7 +222,6 @@ namespace PckStudio saveToolStripMenuItem.Enabled = true; saveToolStripMenuItem1.Enabled = true; quickChangeToolStripMenuItem.Enabled = true; - convertToBedrockToolStripMenuItem.Enabled = true; BuildMainTreeView(); isSelectingTab = true; tabControl.SelectTab(1); @@ -249,7 +248,6 @@ namespace PckStudio quickChangeToolStripMenuItem.Enabled = false; closeToolStripMenuItem.Visible = false; packSettingsToolStripMenuItem.Visible = false; - convertToBedrockToolStripMenuItem.Enabled = false; fileEntryCountLabel.Text = string.Empty; pckFileLabel.Text = string.Empty; UpdateRichPresence(); @@ -1644,11 +1642,6 @@ namespace PckStudio } } - private void convertToBedrockToolStripMenuItem_Click(object sender, EventArgs e) - { - MessageBox.Show("This feature is currently being reworked.", "Currently unavailable", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void openPckCenterToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("This feature is currently being reworked.", "Currently unavailable", MessageBoxButtons.OK, MessageBoxIcon.Information); diff --git a/PCK-Studio/MainForm.resx b/PCK-Studio/MainForm.resx index 4d0b8bf9..919787d8 100644 --- a/PCK-Studio/MainForm.resx +++ b/PCK-Studio/MainForm.resx @@ -1363,32 +1363,6 @@ Quick Change - - False - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAAJeSURBVDhPhVFp - TxNRFH1/RbGdlsQElaWzdaQgbadFtnkznWlLCm2Q2UCxTqdFFAzTRONSYheIoCjRpmoErBiKW/hi4q+q - bxpoSPzgyfnw7r3nvHvveyD92W/UQ5l9Vt6h5B1S2/Wntnr1977lHxDltVr/7FtaqTLJbc/YU+f8x0GQ - rgfmPgw9aoj390dX6uMSgWlVMvkGT7zqLR5PF34lzL3w9HZXunZNfuedr/nAw+9RnnZt/dHl1+SN2lWO - cS3sDsVxbOEgsPwTFo9Tz38nRdIRK15MvvRIlBtIFKboSoTGRMp5e4+VaEeEdoi0Y2r7kkBjyqcBjsEW - x3s4xomUWUiAkhoweLqiBRurEFLujVl/lvfkICESFyK0M0qc1xU5KxAlOSzQbtuQm+iWiHMVjd2Q++9A - b0X3C2SHSHYIpNPgGZMnRbIzLeBZrs8QmH1rEuw+iEVo1xLfl+O6nqzcvQd7MpDay6cQm2fwTBnO8sQL - xQcaFq+GLm/eGtm8OfY4N2NN+VBhbWawmhmzhQDYbDatSSafGECDgC/WFFLUrdTBanRNGUbLoDADiTVt - 5KwBJQvaaFG9Dspq0Ji4YghEWQtlJvCCHLJ1bZwa2rANJZ2VvO5FAUdEh1a6pfuXJ4a5EdTxWz6GaPL4 - fw0hkydysK+khdFUh5ZkG9o41bUBDA6HjGsd7Qo9ZR0tzR5ZcdRwietu1U8M6NKv+XjDioIM5ylqYfRB - izwRoZwmpCoqW9KDJjwzW7N5aMXLGoveEBRV1uQ9EarzKB/LQlyiXOj/JS+GmtiGU6BwXQ2sa8G/5oRp - fQPDL0EAAAAASUVORK5CYII= - - - - 192, 22 - - - Convert to Bedrock - 39, 20 @@ -6753,12 +6727,6 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - convertToBedrockToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - miscToolStripMenuItem From ab8a42c1320d7d6d5ab97f441b50f040d01b09a2 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:00:21 +0100 Subject: [PATCH 11/14] MainForm - Fix trying to delete non existing loc key --- PCK-Studio/MainForm.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 48d3f2a6..e3398be6 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -723,7 +723,9 @@ namespace PckStudio { if (TryGetLocFile(out LOCFile locFile)) { + if (file.Properties.HasProperty("THEMENAMEID")) locFile.RemoveLocKey(file.Properties.GetPropertyValue("THEMENAMEID")); + if (file.Properties.HasProperty("DISPLAYNAMEID")) locFile.RemoveLocKey(file.Properties.GetPropertyValue("DISPLAYNAMEID")); TrySetLocFile(locFile); } From b07462b439be1c0e3c4bd55814ee93e65deb2d05 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Fri, 15 Mar 2024 23:08:26 +0100 Subject: [PATCH 12/14] Update OMI submodule - Changed pck file property api - Move LocFile InitializeDefault to extension class --- PCK-Studio/Extensions/LocFileExtensions.cs | 22 +++++ PCK-Studio/Features/WiiUPanel.cs | 2 +- .../Forms/Skins-And-Textures/AddNewSkin.cs | 16 ++-- .../Skins-And-Textures/AdvancedOptions.cs | 2 +- .../Forms/Skins-And-Textures/generateModel.cs | 12 +-- PCK-Studio/Forms/Utilities/pckCenterOpen.cs | 4 +- PCK-Studio/Helper/AnimationHelper.cs | 4 +- PCK-Studio/MainForm.cs | 83 ++++++++++--------- PCK-Studio/PckStudio.csproj | 1 + Vendor/OMI-Lib | 2 +- 10 files changed, 89 insertions(+), 59 deletions(-) create mode 100644 PCK-Studio/Extensions/LocFileExtensions.cs diff --git a/PCK-Studio/Extensions/LocFileExtensions.cs b/PCK-Studio/Extensions/LocFileExtensions.cs new file mode 100644 index 00000000..787ac540 --- /dev/null +++ b/PCK-Studio/Extensions/LocFileExtensions.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using OMI.Formats.Languages; + +namespace PckStudio.Extensions +{ + internal static class LocFileExtensions + { + + public static void InitializeDefault(this LOCFile locFile, string packName) => locFile.Initialize("en-EN", ("IDS_DISPLAY_NAME", packName)); + + public static void Initialize(this LOCFile locFile, string language, params (string, string)[] locKeyValuePairs) + { + locFile.AddLanguage(language); + foreach (var locKeyValue in locKeyValuePairs) + locFile.AddLocKey(locKeyValue.Item1, locKeyValue.Item2); + } + } +} diff --git a/PCK-Studio/Features/WiiUPanel.cs b/PCK-Studio/Features/WiiUPanel.cs index ab6aa5f4..adc3baac 100644 --- a/PCK-Studio/Features/WiiUPanel.cs +++ b/PCK-Studio/Features/WiiUPanel.cs @@ -237,7 +237,7 @@ namespace PckStudio.Features currentPCK = reader.FromFile(filepath); if (currentPCK is null) return string.Empty; return currentPCK.TryGetFile("0", PckFileType.InfoFile, out var file) - ? file.Properties.GetPropertyValue("PACKID") + ? file.GetProperty("PACKID") : string.Empty; } diff --git a/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs b/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs index 7c80ab59..bae14ad6 100644 --- a/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs +++ b/PCK-Studio/Forms/Skins-And-Textures/AddNewSkin.cs @@ -242,32 +242,32 @@ namespace PckStudio.Popups } string skinId = _skinId.ToString("d08"); skin.Filename = $"dlcskin{skinId}.png"; - skin.Properties.Add("DISPLAYNAME", textSkinName.Text); + skin.AddProperty("DISPLAYNAME", textSkinName.Text); if (currentLoc is not null) { string skinDisplayNameLocKey = $"IDS_dlcskin{skinId}_DISPLAYNAME"; - skin.Properties.Add("DISPLAYNAMEID", skinDisplayNameLocKey); + skin.AddProperty("DISPLAYNAMEID", skinDisplayNameLocKey); currentLoc.AddLocKey(skinDisplayNameLocKey, textSkinName.Text); } if (!string.IsNullOrEmpty(textThemeName.Text)) { - skin.Properties.Add("THEMENAME", textThemeName.Text); + skin.AddProperty("THEMENAME", textThemeName.Text); if (currentLoc is not null) { - skin.Properties.Add("THEMENAMEID", $"IDS_dlcskin{skinId}_THEMENAME"); + skin.AddProperty("THEMENAMEID", $"IDS_dlcskin{skinId}_THEMENAME"); currentLoc.AddLocKey($"IDS_dlcskin{skinId}_THEMENAME", textThemeName.Text); } } - skin.Properties.Add("ANIM", anim); - skin.Properties.Add("GAME_FLAGS", "0x18"); - skin.Properties.Add("FREE", "1"); + skin.AddProperty("ANIM", anim); + skin.AddProperty("GAME_FLAGS", "0x18"); + skin.AddProperty("FREE", "1"); if (HasCape) { cape.Filename = $"dlccape{skinId}.png"; - skin.Properties.Add("CAPEPATH", cape.Filename); + skin.AddProperty("CAPEPATH", cape.Filename); } skin.SetData(skinPictureBox.Image, ImageFormat.Png); DialogResult = DialogResult.OK; diff --git a/PCK-Studio/Forms/Skins-And-Textures/AdvancedOptions.cs b/PCK-Studio/Forms/Skins-And-Textures/AdvancedOptions.cs index 65f15c65..e536a96f 100644 --- a/PCK-Studio/Forms/Skins-And-Textures/AdvancedOptions.cs +++ b/PCK-Studio/Forms/Skins-And-Textures/AdvancedOptions.cs @@ -67,7 +67,7 @@ namespace PckStudio.Popups if (index == -1 || (Enum.IsDefined(typeof(PckFileType), index) && (int)file.Filetype == index)) { - file.Properties.Add(propertyKeyTextBox.Text, propertyValueTextBox.Text); + file.AddProperty(propertyKeyTextBox.Text, propertyValueTextBox.Text); } } diff --git a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs index 64e7dadb..9171edf1 100644 --- a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs +++ b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs @@ -141,7 +141,7 @@ namespace PckStudio.Forms } comboParent.Items.Clear(); comboParent.Items.AddRange(ValidModelBoxTypes); - LoadData(file.Properties); + LoadData(file); } private static readonly Regex sWhitespace = new Regex(@"\s+"); public static string ReplaceWhitespace(string input, string replacement) @@ -149,9 +149,9 @@ namespace PckStudio.Forms return sWhitespace.Replace(input, replacement); } - private void LoadData(PckFileProperties properties) + private void LoadData(PckFileData file) { - comboParent.Enabled = properties.GetProperties("BOX").All(kv => { + comboParent.Enabled = file.GetMultipleProperties("BOX").All(kv => { var box = SkinBOX.FromString(kv.Value); if (ValidModelBoxTypes.Contains(box.Type)) { @@ -160,7 +160,7 @@ namespace PckStudio.Forms } return false; }); - properties.GetProperties("OFFSET").All(kv => { + file.GetMultipleProperties("OFFSET").All(kv => { string[] offset = ReplaceWhitespace(kv.Value, ",").TrimEnd('\n', '\r', ' ').Split(','); if (offset.Length < 3) return false; @@ -176,7 +176,7 @@ namespace PckStudio.Forms return false; }); - _ANIM = properties.GetPropertyValue("ANIM", SkinANIM.FromString); + _ANIM = file.GetProperty("ANIM", SkinANIM.FromString); UpdateListView(); Rerender(); } @@ -1094,7 +1094,7 @@ namespace PckStudio.Forms { foreach (var part in modelBoxes) { - _file.Properties.Add("BOX", part); + _file.AddProperty("BOX", part); } //Bitmap bitmap2 = new Bitmap(64, 64); diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs index 3bdc4fd7..4676107e 100644 --- a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs +++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs @@ -182,7 +182,7 @@ namespace PckStudio.Forms string capePath = ""; bool hasCape = false; - foreach (var entry in newSkin.Properties) + foreach (var entry in newSkin.GetProperties()) { if (entry.Key == "DISPLAYNAME") { @@ -264,7 +264,7 @@ namespace PckStudio.Forms if (skinPicture.Height == skinPicture.Width) { //determines skin type based on image dimensions, existence of BOX tags, and the ANIM value - foreach (var entry in newSkin.Properties) + foreach (var entry in newSkin.GetProperties()) { if (entry.Key == "BOX") { diff --git a/PCK-Studio/Helper/AnimationHelper.cs b/PCK-Studio/Helper/AnimationHelper.cs index a9714d15..0312624a 100644 --- a/PCK-Studio/Helper/AnimationHelper.cs +++ b/PCK-Studio/Helper/AnimationHelper.cs @@ -18,7 +18,7 @@ namespace PckStudio.Helper internal static void SaveAnimationToFile(PckFileData file, Animation animation) { string anim = animation.BuildAnim(); - file.Properties.SetProperty("ANIM", anim); + file.SetProperty("ANIM", anim); var texture = animation.BuildTexture(); file.SetData(texture, ImageFormat.Png); } @@ -30,7 +30,7 @@ namespace PckStudio.Helper { var texture = file.GetTexture(); var frameTextures = texture.Split(ImageLayoutDirection.Vertical); - var _animation = new Animation(frameTextures, file.Properties.GetPropertyValue("ANIM")); + var _animation = new Animation(frameTextures, file.GetProperty("ANIM")); _animation.Category = file.Filename.Split('/').Contains("items") ? AnimationCategory.Items : AnimationCategory.Blocks; diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index e3398be6..0912e5d5 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -203,7 +203,7 @@ namespace PckStudio { if (currentPCK.TryGetFile("0", PckFileType.InfoFile, out PckFileData file)) { - file.Properties.RemoveAll(t => t.Key.Equals("LOCK")); + file.RemoveProperties("LOCK"); } } @@ -428,7 +428,7 @@ namespace PckStudio public void HandleSkinFile(PckFileData file) { - if (file.Properties.HasProperty("BOX")) + if (file.HasProperty("BOX")) { using generateModel generate = new generateModel(file); if (generate.ShowDialog() == DialogResult.OK) @@ -441,7 +441,7 @@ namespace PckStudio } var img = file.GetTexture(); - using var skinViewer = new SkinPreview(img, file.Properties.GetPropertyValue("ANIM", SkinANIM.FromString)); + using var skinViewer = new SkinPreview(img, file.GetProperty("ANIM", SkinANIM.FromString)); skinViewer.ShowDialog(this); } @@ -472,13 +472,13 @@ namespace PckStudio if (e.Node.TryGetTagData(out PckFileData file)) { viewFileInfoToolStripMenuItem.Visible = true; - if (file.Properties.HasProperty("BOX")) + if (file.HasProperty("BOX")) { buttonEdit.Text = "EDIT BOXES"; buttonEdit.Visible = true; } - else if (file.Properties.HasProperty("ANIM") && - file.Properties.GetPropertyValue("ANIM", s => SkinANIM.FromString(s) == (SkinAnimMask.RESOLUTION_64x64 | SkinAnimMask.SLIM_MODEL))) + else if (file.HasProperty("ANIM") && + file.GetProperty("ANIM", s => SkinANIM.FromString(s) == (SkinAnimMask.RESOLUTION_64x64 | SkinAnimMask.SLIM_MODEL))) { buttonEdit.Text = "View Skin"; buttonEdit.Visible = true; @@ -554,10 +554,13 @@ namespace PckStudio private void extractFile(string outFilePath, PckFileData file) { File.WriteAllBytes(outFilePath, file.Data); - if (file.Properties.Count > 0) + if (file.PropertyCount > 0) { using var fs = File.CreateText($"{outFilePath}.txt"); - file.Properties.ForEach(property => fs.WriteLine($"{property.Key}: {property.Value}")); + foreach (var property in file.GetProperties()) + { + fs.WriteLine($"{property.Key}: {property.Value}"); + } } } @@ -723,10 +726,10 @@ namespace PckStudio { if (TryGetLocFile(out LOCFile locFile)) { - if (file.Properties.HasProperty("THEMENAMEID")) - locFile.RemoveLocKey(file.Properties.GetPropertyValue("THEMENAMEID")); - if (file.Properties.HasProperty("DISPLAYNAMEID")) - locFile.RemoveLocKey(file.Properties.GetPropertyValue("DISPLAYNAMEID")); + if (file.TryGetProperty("THEMENAMEID", out string value)) + locFile.RemoveLocKey(value); + if (file.TryGetProperty("DISPLAYNAMEID", out value)) + locFile.RemoveLocKey(value); TrySetLocFile(locFile); } } @@ -978,7 +981,8 @@ namespace PckStudio if (node.Tag is PckFileData node_file) { PckFileData new_file = newPCKFile.CreateNewFile(node_file.Filename.Replace(parent_file.Filename + "/", String.Empty), node_file.Filetype); - foreach (var prop in node_file.Properties) new_file.Properties.Add(prop); + foreach (var prop in node_file.GetProperties()) + new_file.AddProperty(prop); new_file.SetData(node_file.Data); } } @@ -1017,8 +1021,7 @@ namespace PckStudio if (treeMeta.SelectedNode is TreeNode subnode && subnode.Tag is KeyValuePair property && treeViewMain.SelectedNode is TreeNode node && node.Tag is PckFileData file) { - int i = file.Properties.IndexOf(property); - if (i != -1) + if (file.HasProperty(property.Key)) { switch (property.Key) { @@ -1028,7 +1031,7 @@ namespace PckStudio using ANIMEditor diag = new ANIMEditor(property.Value); if (diag.ShowDialog(this) == DialogResult.OK) { - file.Properties[i] = new KeyValuePair("ANIM", diag.ResultAnim.ToString()); + file.SetProperty(file.GetPropertyIndex(property), new KeyValuePair("ANIM", diag.ResultAnim.ToString())); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); ReloadMetaTreeView(); wasModified = true; @@ -1049,7 +1052,7 @@ namespace PckStudio using BoxEditor diag = new BoxEditor(property.Value, IsSubPCKNode(treeViewMain.SelectedNode.FullPath)); if (diag.ShowDialog(this) == DialogResult.OK) { - file.Properties[i] = new KeyValuePair("BOX", diag.Result.ToString()); + file.SetProperty(file.GetPropertyIndex(property), new KeyValuePair("BOX", diag.Result.ToString())); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); ReloadMetaTreeView(); wasModified = true; @@ -1073,7 +1076,7 @@ namespace PckStudio { if (addProperty.ShowDialog() == DialogResult.OK) { - file.Properties[i] = addProperty.Property; + file.SetProperty(file.GetPropertyIndex(property), addProperty.Property); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); ReloadMetaTreeView(); wasModified = true; @@ -1100,7 +1103,10 @@ namespace PckStudio TreeNode newNode = new TreeNode(); newNode.Text = Path.GetFileName(diag.NewText); var newFile = new PckFileData(diag.NewText, file.Filetype); - file.Properties.ForEach(newFile.Properties.Add); + foreach (var property in file.GetProperties()) + { + newFile.AddProperty(property); + } newFile.SetData(file.Data); newFile.Filename = diag.NewText; newNode.Tag = newFile; @@ -1132,7 +1138,7 @@ namespace PckStudio { if (treeMeta.SelectedNode is TreeNode t && t.Tag is KeyValuePair property && treeViewMain.SelectedNode is TreeNode main && main.Tag is PckFileData file && - file.Properties.Remove(property)) + file.RemoveProperty(property)) { treeMeta.SelectedNode.Remove(); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); @@ -1146,7 +1152,7 @@ namespace PckStudio if (treeViewMain.SelectedNode is TreeNode node && node.Tag is PckFileData file) { - foreach (var property in file.Properties) + foreach (var property in file.GetProperties()) { treeMeta.Nodes.Add(CreateNode(property.Key, property)); } @@ -1161,7 +1167,7 @@ namespace PckStudio using AddPropertyPrompt addProperty = new AddPropertyPrompt(); if (addProperty.ShowDialog() == DialogResult.OK) { - file.Properties.Add(addProperty.Property); + file.AddProperty(addProperty.Property); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); ReloadMetaTreeView(); wasModified = true; @@ -1205,8 +1211,8 @@ namespace PckStudio var pack = new PckFile(3); var zeroFile = pack.CreateNewFile("0", PckFileType.InfoFile); - zeroFile.Properties.Add("PACKID", packId.ToString()); - zeroFile.Properties.Add("PACKVERSION", packVersion.ToString()); + zeroFile.AddProperty("PACKID", packId); + zeroFile.AddProperty("PACKVERSION", packVersion); var locFile = new LOCFile(); locFile.InitializeDefault(packName); @@ -1234,8 +1240,8 @@ namespace PckStudio var texturepackInfo = pack.CreateNewFile($"{res}/{res}Info.pck", PckFileType.TexturePackInfoFile); - texturepackInfo.Properties.Add("PACKID", "0"); - texturepackInfo.Properties.Add("DATAPATH", $"{res}Data.pck"); + texturepackInfo.AddProperty("PACKID", "0"); + texturepackInfo.AddProperty("DATAPATH", $"{res}Data.pck"); texturepackInfo.SetData(new PckFileWriter(infoPCK, LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian)); @@ -1390,7 +1396,7 @@ namespace PckStudio //attempts to generate reimportable metadata file out of minefiles metadata string metaData = ""; - foreach (var entry in file.Properties) + foreach (var entry in file.GetProperties()) { metaData += $"{entry.Key}: {entry.Value}{Environment.NewLine}"; } @@ -1468,7 +1474,7 @@ namespace PckStudio { string[] param = property.Split(':'); if (param.Length < 2) continue; - newFile.Properties.Add((param[0], param[1])); + newFile.AddProperty(param[0], param[1]); //switch (param[0]) //{ // case "DISPLAYNAMEID": @@ -1602,7 +1608,7 @@ namespace PckStudio { } - mfNew.Properties.Add(new KeyValuePair(key, value)); + mfNew.AddProperty(key, value); } wasModified = true; } @@ -1884,7 +1890,7 @@ namespace PckStudio "File path: " + file.Filename + "\nAssigned File type: " + (int)file.Filetype + " (" + file.Filetype + ")" + "\nFile size: " + file.Size + - "\nProperties count: " + file.Properties.Count + "\nProperties count: " + file.PropertyCount , Path.GetFileName(file.Filename) + " file info"); } } @@ -1995,7 +2001,7 @@ namespace PckStudio int idx = line.IndexOf(' '); if (idx == -1 || line.Length - 1 == idx) continue; - file.Properties.Add((line.Substring(0, idx), line.Substring(idx + 1))); + file.AddProperty(line.Substring(0, idx), line.Substring(idx + 1)); } ReloadMetaTreeView(); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); @@ -2010,9 +2016,10 @@ namespace PckStudio if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file) && file.Filetype == PckFileType.SkinFile) { - foreach (var p in file.Properties.FindAll(s => s.Key == "BOX" || s.Key == "OFFSET")) + foreach (var p in file.GetProperties()) { - file.Properties[file.Properties.IndexOf(p)] = new KeyValuePair(p.Key, p.Value.Replace(',', '.')); + if (p.Key == "BOX" || p.Key == "OFFSET") + file.SetProperty(file.GetPropertyIndex(p), new KeyValuePair(p.Key, p.Value.Replace(',', '.'))); } ReloadMetaTreeView(); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); @@ -2044,18 +2051,18 @@ namespace PckStudio { if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file)) { - var props = file.Properties.Select(p => p.Key + " " + p.Value); + var props = file.GetProperties().Select(p => p.Key + " " + p.Value); using (var input = new MultiTextPrompt(props.ToArray())) { if (input.ShowDialog(this) == DialogResult.OK) { - file.Properties.Clear(); + file.ClearProperties(); foreach (var line in input.TextOutput) { int idx = line.IndexOf(' '); if (idx == -1 || line.Length - 1 == idx) continue; - file.Properties.Add((line.Substring(0, idx).Replace(":", string.Empty), line.Substring(idx + 1))); + file.AddProperty(line.Substring(0, idx).Replace(":", string.Empty), line.Substring(idx + 1)); } ReloadMetaTreeView(); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); @@ -2183,7 +2190,7 @@ namespace PckStudio using BoxEditor diag = new BoxEditor(SkinBOX.Empty, IsSubPCKNode(treeViewMain.SelectedNode.FullPath)); if (diag.ShowDialog(this) == DialogResult.OK) { - file.Properties.Add("BOX", diag.Result); + file.AddProperty("BOX", diag.Result); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); ReloadMetaTreeView(); wasModified = true; @@ -2199,7 +2206,7 @@ namespace PckStudio using ANIMEditor diag = new ANIMEditor(SkinANIM.Empty); if (diag.ShowDialog(this) == DialogResult.OK) { - file.Properties.Add("ANIM", diag.ResultAnim); + file.AddProperty("ANIM", diag.ResultAnim); RebuildSubPCK(treeViewMain.SelectedNode.FullPath); ReloadMetaTreeView(); wasModified = true; diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index 3013435f..2d1966d1 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -133,6 +133,7 @@ + diff --git a/Vendor/OMI-Lib b/Vendor/OMI-Lib index 036d680f..bf46386e 160000 --- a/Vendor/OMI-Lib +++ b/Vendor/OMI-Lib @@ -1 +1 @@ -Subproject commit 036d680f977f1db2e2ec7ab8fc5813b990278aed +Subproject commit bf46386e771fd573a625dfb124695ee4d8deeba5 From 18310537ae86e9c44fa638922bd29212f5dc00bc Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Fri, 15 Mar 2024 23:15:57 +0100 Subject: [PATCH 13/14] MainForm - Add simple indecator when file has unsaved changes --- PCK-Studio/MainForm.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 0912e5d5..55addd69 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -39,7 +39,20 @@ namespace PckStudio private PckManager PckManager = null; string saveLocation = string.Empty; PckFile currentPCK = null; - bool wasModified = false; + + bool __modified = false; + bool wasModified + { + get => __modified; + set + { + if (__modified == value) + return; + __modified = value; + pckFileLabel.Text = !pckFileLabel.Text.StartsWith("*") && __modified ? "*" + pckFileLabel.Text : pckFileLabel.Text.Substring(1); + } + } + bool isTemplateFile = false; bool isSelectingTab = false; @@ -213,7 +226,7 @@ namespace PckStudio if (isTemplateFile) pckFileLabel.Text = "Unsaved File!"; else - pckFileLabel.Text = "Current PCK File: " + Path.GetFileName(saveLocation); + pckFileLabel.Text = Path.GetFileName(saveLocation); treeViewMain.Enabled = treeMeta.Enabled = true; closeToolStripMenuItem.Visible = true; fullBoxSupportToolStripMenuItem.Checked = currentPCK.HasVerionString; @@ -656,7 +669,7 @@ namespace PckStudio { Save(saveFileDialog.FileName); saveLocation = saveFileDialog.FileName; - pckFileLabel.Text = "Current PCK File: " + Path.GetFileName(saveLocation); + pckFileLabel.Text = Path.GetFileName(saveLocation); isTemplateFile = false; } } From 65ad649737cbb18f1c7d74981d71105617fe59a4 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Fri, 15 Mar 2024 23:17:27 +0100 Subject: [PATCH 14/14] MainForm - Move subpck reading to filetype click events --- PCK-Studio/MainForm.cs | 58 ++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 55addd69..290b5c01 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -92,19 +92,49 @@ namespace PckStudio [PckFileType.TextureFile] = HandleTextureFile, [PckFileType.UIDataFile] = _ => throw new NotSupportedException("unused in-game"), [PckFileType.InfoFile] = null, - [PckFileType.TexturePackInfoFile] = null, + [PckFileType.TexturePackInfoFile] = HandleInnerPckFile, [PckFileType.LocalisationFile] = HandleLocalisationFile, [PckFileType.GameRulesFile] = HandleGameRuleFile, [PckFileType.AudioFile] = HandleAudioFile, [PckFileType.ColourTableFile] = HandleColourFile, [PckFileType.GameRulesHeader] = HandleGameRuleFile, - [PckFileType.SkinDataFile] = null, + [PckFileType.SkinDataFile] = HandleInnerPckFile, [PckFileType.ModelsFile] = HandleModelsFile, [PckFileType.BehavioursFile] = HandleBehavioursFile, [PckFileType.MaterialFile] = HandleMaterialFile, }; } + private void HandleInnerPckFile(PckFileData file) + { + if (Settings.Default.LoadSubPcks && + (file.Filetype == PckFileType.SkinDataFile || file.Filetype == PckFileType.TexturePackInfoFile) && + file.Size > 0 && treeViewMain.SelectedNode.Nodes.Count == 0) + { + using (var stream = new MemoryStream(file.Data)) + { + try + { + var reader = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian); + PckFile subPCKfile = reader.FromStream(stream); + BuildPckTreeView(treeViewMain.SelectedNode.Nodes, subPCKfile); + treeViewMain.SelectedNode.ExpandAll(); + + } + catch (OverflowException ex) + { + MessageBox.Show("Failed to open pck\n" + + "Try checking the 'Open/Save as Switch/Vita/PS4 pck' checkbox in the upper right corner.", + "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + Debug.WriteLine(ex.Message); + } + } + return; + } + treeViewMain.SelectedNode.Nodes.Clear(); + treeViewMain.SelectedNode.Collapse(); + } + public void InitPckFromFile(string filepath) { saveLocation = filepath; @@ -311,7 +341,7 @@ namespace PckStudio return BuildNodeTreeBySeperator(subNode.Nodes, subPath, seperator); } - private void BuildPckTreeView(TreeNodeCollection root, PckFile pckFile, string parentPath = "") + private void BuildPckTreeView(TreeNodeCollection root, PckFile pckFile) { foreach (var file in pckFile.GetFiles()) { @@ -320,28 +350,6 @@ namespace PckStudio // file.Filename = file.Filename.Remove(0, parentPath.Length); TreeNode node = BuildNodeTreeBySeperator(root, file.Filename, '/'); node.Tag = file; - if (Settings.Default.LoadSubPcks && - (file.Filetype == PckFileType.SkinDataFile || file.Filetype == PckFileType.TexturePackInfoFile) && - file.Size > 0) - { - using (var stream = new MemoryStream(file.Data)) - { - try - { - var reader = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian); - PckFile subPCKfile = reader.FromStream(stream); - // passes parent path to remove from sub pck filepaths - BuildPckTreeView(node.Nodes, subPCKfile, file.Filename + "/"); - } - catch (OverflowException ex) - { - MessageBox.Show("Failed to open pck\n" + - "Try checking the 'Open/Save as Switch/Vita/PS4 pck' checkbox in the upper right corner.", - "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - Debug.WriteLine(ex.Message); - } - } - } SetNodeIcon(node, file.Filetype); }; }