mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-09-23 07:22:25 +00:00
Added Extract PCK Contents menu tool
This commit is contained in:
@@ -1694,6 +1694,33 @@ namespace PckStudio.Controls
|
||||
}
|
||||
}
|
||||
|
||||
public void extractEntirePCK()
|
||||
{
|
||||
OpenFolderDialog dialog = new OpenFolderDialog();
|
||||
dialog.Title = @"Select destination folder";
|
||||
|
||||
if (dialog.ShowDialog(Handle) == true)
|
||||
{
|
||||
foreach (TreeNode node in treeViewMain.Nodes)
|
||||
{
|
||||
if(node == null)
|
||||
continue;
|
||||
|
||||
if (node.Tag == null)
|
||||
{
|
||||
extractFolder(dialog.ResultPath, node);
|
||||
}
|
||||
else if (node.TryGetTagData(out PckAsset asset))
|
||||
{
|
||||
extractFile(Path.Combine(dialog.ResultPath, Path.GetFileName(asset.Filename)), asset);
|
||||
}
|
||||
}
|
||||
|
||||
// Verification that file extraction path was successful
|
||||
MessageBox.Show(this, $"{TitleName} successfully extracted");
|
||||
}
|
||||
}
|
||||
|
||||
private void extractToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
TreeNode node = treeViewMain.SelectedNode;
|
||||
@@ -1711,7 +1738,7 @@ namespace PckStudio.Controls
|
||||
dialog.Title = @"Select destination folder";
|
||||
|
||||
if (dialog.ShowDialog(Handle) == true)
|
||||
extractFolder(dialog.ResultPath);
|
||||
extractFolder(dialog.ResultPath, node);
|
||||
}
|
||||
else if (node.TryGetTagData(out PckAsset asset))
|
||||
{
|
||||
@@ -1734,10 +1761,8 @@ namespace PckStudio.Controls
|
||||
MessageBox.Show(this, $"\"{node.Text}\" successfully extracted");
|
||||
}
|
||||
|
||||
private void extractFolder(string outPath)
|
||||
private void extractFolder(string outPath, TreeNode node)
|
||||
{
|
||||
TreeNode node = treeViewMain.SelectedNode;
|
||||
|
||||
string selectedFolder = node.FullPath;
|
||||
|
||||
foreach (PckAsset asset in EditorValue.File.GetAssets().Where(asset => asset.Filename.StartsWith(selectedFolder)))
|
||||
@@ -1750,7 +1775,7 @@ namespace PckStudio.Controls
|
||||
if (!Directory.Exists(finalPath))
|
||||
Directory.CreateDirectory(finalPath);
|
||||
|
||||
extractFile(finalPath + "/" + Path.GetFileName(asset.Filename), asset);
|
||||
extractFile(Path.Combine(finalPath, Path.GetFileName(asset.Filename)), asset);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Generated
+9
@@ -53,6 +53,7 @@
|
||||
this.setXMLVersion1MenuItem = new PckStudio.ToolboxItems.ToolStripRadioButtonMenuItem();
|
||||
this.setXMLVersion2MenuItem = new PckStudio.ToolboxItems.ToolStripRadioButtonMenuItem();
|
||||
this.setXMLVersion3MenuItem = new PckStudio.ToolboxItems.ToolStripRadioButtonMenuItem();
|
||||
this.extractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.quickChangeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openPckManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -216,6 +217,7 @@
|
||||
this.pckToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.setPackIDToolStripMenuItem,
|
||||
this.setXMLVersionStripMenuItem,
|
||||
this.extractToolStripMenuItem,
|
||||
this.quickChangeToolStripMenuItem});
|
||||
this.pckToolStripMenuItem.ForeColor = System.Drawing.Color.Silver;
|
||||
this.pckToolStripMenuItem.Name = "pckToolStripMenuItem";
|
||||
@@ -269,6 +271,12 @@
|
||||
this.setXMLVersion3MenuItem.Tag = 3;
|
||||
this.setXMLVersion3MenuItem.Click += new System.EventHandler(this.setXMLVersionMenuItem_Click);
|
||||
//
|
||||
// extractToolStripMenuItem
|
||||
//
|
||||
this.extractToolStripMenuItem.Name = "extractToolStripMenuItem";
|
||||
resources.ApplyResources(this.extractToolStripMenuItem, "extractToolStripMenuItem");
|
||||
this.extractToolStripMenuItem.Click += new System.EventHandler(this.extractToolStripMenuItem_Click);
|
||||
//
|
||||
// quickChangeToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.quickChangeToolStripMenuItem, "quickChangeToolStripMenuItem");
|
||||
@@ -612,6 +620,7 @@
|
||||
public ToolboxItems.ToolStripRadioButtonMenuItem setXMLVersion2MenuItem;
|
||||
public ToolboxItems.ToolStripRadioButtonMenuItem setXMLVersion3MenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem setPackIDToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem extractToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -641,5 +641,15 @@ namespace PckStudio
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void extractToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (TryGetCurrentEditor(out IEditor<PackInfo> editor))
|
||||
{
|
||||
PckEditor pckEditor = editor as PckEditor;
|
||||
|
||||
pckEditor.extractEntirePCK();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -356,6 +356,12 @@
|
||||
<data name="setXMLVersionStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Set Skin BOX Version</value>
|
||||
</data>
|
||||
<data name="extractToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 22</value>
|
||||
</data>
|
||||
<data name="extractToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Extract PCK Contents</value>
|
||||
</data>
|
||||
<data name="quickChangeToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
@@ -5890,6 +5896,12 @@
|
||||
<data name=">>setXMLVersion3MenuItem.Type" xml:space="preserve">
|
||||
<value>PckStudio.ToolboxItems.ToolStripRadioButtonMenuItem, PCK-Studio, Version=7.0.1.2, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>extractToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>extractToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>extractToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>quickChangeToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>quickChangeToolStripMenuItem</value>
|
||||
</data>
|
||||
|
||||
Reference in New Issue
Block a user