mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-03 18:05:54 +00:00
Expanded pack icon feature
This commit is contained in:
44
PCK-Studio/MainForm.Designer.cs
generated
44
PCK-Studio/MainForm.Designer.cs
generated
@@ -117,6 +117,9 @@
|
||||
this.settingsToolStripMenuItem1 = 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();
|
||||
@@ -143,9 +146,6 @@
|
||||
this.treeViewMain = new System.Windows.Forms.TreeView();
|
||||
this.imageList = new System.Windows.Forms.ImageList(this.components);
|
||||
this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox();
|
||||
this.addEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addBOXEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addANIMEntryToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pictureBoxImagePreview = new PckStudio.PictureBoxWithInterpolationMode();
|
||||
this.contextMenuPCKEntries.SuspendLayout();
|
||||
this.menuStrip.SuspendLayout();
|
||||
@@ -559,8 +559,8 @@
|
||||
//
|
||||
// addCustomPackImageToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.addCustomPackImageToolStripMenuItem, "addCustomPackImageToolStripMenuItem");
|
||||
this.addCustomPackImageToolStripMenuItem.Name = "addCustomPackImageToolStripMenuItem";
|
||||
resources.ApplyResources(this.addCustomPackImageToolStripMenuItem, "addCustomPackImageToolStripMenuItem");
|
||||
this.addCustomPackImageToolStripMenuItem.Click += new System.EventHandler(this.addCustomPackIconToolStripMenuItem_Click);
|
||||
//
|
||||
// openPckManagerToolStripMenuItem
|
||||
@@ -780,6 +780,24 @@
|
||||
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");
|
||||
@@ -1074,24 +1092,6 @@
|
||||
this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.LittleEndianCheckBox.UseSelectable = true;
|
||||
//
|
||||
// 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);
|
||||
//
|
||||
// pictureBoxImagePreview
|
||||
//
|
||||
resources.ApplyResources(this.pictureBoxImagePreview, "pictureBoxImagePreview");
|
||||
|
||||
@@ -8,9 +8,11 @@ using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing.Imaging;
|
||||
|
||||
using OMI.Formats.Archive;
|
||||
using OMI.Formats.Pck;
|
||||
using OMI.Formats.GameRule;
|
||||
using OMI.Formats.Languages;
|
||||
using OMI.Workers.Archive;
|
||||
using OMI.Workers.Pck;
|
||||
using OMI.Workers.GameRule;
|
||||
using OMI.Workers.Language;
|
||||
@@ -2065,29 +2067,88 @@ namespace PckStudio
|
||||
|
||||
private void addCustomPackIconToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out PckFile.FileData file) ||
|
||||
string.IsNullOrEmpty(file.Properties.GetPropertyValue("PACKID"))
|
||||
)
|
||||
string packID = "0";
|
||||
|
||||
using NumericPrompt numericPrompt = new NumericPrompt(0);
|
||||
numericPrompt.ValueUpDown.Minimum = 0; // TODO: put min pack ID value (keeping this 0 just to be safe)
|
||||
numericPrompt.ValueUpDown.Maximum = 999999999; // 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)
|
||||
{
|
||||
MessageBox.Show("No PackID is present in this pack. To avoid this error, please open a PCK with a PackID before trying again.", "Operation Aborted", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
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", PckFile.FileData.FileType.InfoFile, out PckFile.FileData 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.NewValue.ToString();
|
||||
else
|
||||
{
|
||||
MessageBox.Show(this, "Operation cancelled");
|
||||
return;
|
||||
}
|
||||
|
||||
OpenFileDialog dialog = new OpenFileDialog();
|
||||
dialog.Filter = "Minecraft Archive|*.arc";
|
||||
if (dialog.ShowDialog(this) == DialogResult.OK)
|
||||
OpenFileDialog arcDialog = new OpenFileDialog();
|
||||
OpenFileDialog iconDialog = new OpenFileDialog();
|
||||
arcDialog.Filter = "Minecraft Archive|*.arc";
|
||||
iconDialog.Filter = "Pack Icon|*.png";
|
||||
if (arcDialog.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
string filepath = dialog.FileName;
|
||||
dialog.Filter = "Pack Icon|*.png";
|
||||
if (dialog.ShowDialog(this) == DialogResult.OK)
|
||||
using (var fs = File.OpenRead(arcDialog.FileName))
|
||||
{
|
||||
using (var fs = File.OpenRead(filepath))
|
||||
var reader = new ARCFileReader();
|
||||
ConsoleArchive archive = reader.FromStream(fs);
|
||||
|
||||
if (iconDialog.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
ARCUtil.Inject(fs, (
|
||||
string.Format("Graphics\\PackGraphics\\{0}.png", file.Properties.GetPropertyValue("PACKID")),
|
||||
File.ReadAllBytes(dialog.FileName))
|
||||
);
|
||||
MessageBox.Show("Successfully added Pack Icon to Archive!", "Successfully Added", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
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:
|
||||
MessageBox.Show(this, "Operation cancelled");
|
||||
return;
|
||||
}
|
||||
}
|
||||
archive.Add(key, File.ReadAllBytes(iconDialog.FileName));
|
||||
var writer = new ARCFileWriter(archive);
|
||||
writer.WriteToFile(arcDialog.FileName);
|
||||
MessageBox.Show($"Successfully added {key} to Archive!", "Successfully Added", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -673,9 +673,6 @@
|
||||
<data name="editToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Edit</value>
|
||||
</data>
|
||||
<data name="addCustomPackImageToolStripMenuItem.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="addCustomPackImageToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>195, 22</value>
|
||||
</data>
|
||||
@@ -24172,19 +24169,19 @@
|
||||
<value>298, 17</value>
|
||||
</metadata>
|
||||
<data name="addEntryToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>180, 22</value>
|
||||
<value>160, 22</value>
|
||||
</data>
|
||||
<data name="addEntryToolStripMenuItem1.Text" xml:space="preserve">
|
||||
<value>Add Entry</value>
|
||||
</data>
|
||||
<data name="addBOXEntryToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>180, 22</value>
|
||||
<value>160, 22</value>
|
||||
</data>
|
||||
<data name="addBOXEntryToolStripMenuItem1.Text" xml:space="preserve">
|
||||
<value>Add BOX Entry</value>
|
||||
</data>
|
||||
<data name="addANIMEntryToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>180, 22</value>
|
||||
<value>160, 22</value>
|
||||
</data>
|
||||
<data name="addANIMEntryToolStripMenuItem1.Text" xml:space="preserve">
|
||||
<value>Add ANIM Entry</value>
|
||||
@@ -24239,7 +24236,7 @@
|
||||
<value>Edit All Entries</value>
|
||||
</data>
|
||||
<data name="contextMenuMetaTree.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>182, 114</value>
|
||||
<value>182, 92</value>
|
||||
</data>
|
||||
<data name=">>contextMenuMetaTree.Name" xml:space="preserve">
|
||||
<value>contextMenuMetaTree</value>
|
||||
@@ -29617,6 +29614,24 @@
|
||||
<data name=">>addEntryToolStripMenuItem.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=">>addEntryToolStripMenuItem1.Name" xml:space="preserve">
|
||||
<value>addEntryToolStripMenuItem1</value>
|
||||
</data>
|
||||
<data name=">>addEntryToolStripMenuItem1.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=">>addBOXEntryToolStripMenuItem1.Name" xml:space="preserve">
|
||||
<value>addBOXEntryToolStripMenuItem1</value>
|
||||
</data>
|
||||
<data name=">>addBOXEntryToolStripMenuItem1.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=">>addANIMEntryToolStripMenuItem1.Name" xml:space="preserve">
|
||||
<value>addANIMEntryToolStripMenuItem1</value>
|
||||
</data>
|
||||
<data name=">>addANIMEntryToolStripMenuItem1.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=">>addMultipleEntriesToolStripMenuItem1.Name" xml:space="preserve">
|
||||
<value>addMultipleEntriesToolStripMenuItem1</value>
|
||||
</data>
|
||||
@@ -29641,24 +29656,6 @@
|
||||
<data name=">>imageList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>addEntryToolStripMenuItem1.Name" xml:space="preserve">
|
||||
<value>addEntryToolStripMenuItem1</value>
|
||||
</data>
|
||||
<data name=">>addEntryToolStripMenuItem1.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=">>addBOXEntryToolStripMenuItem1.Name" xml:space="preserve">
|
||||
<value>addBOXEntryToolStripMenuItem1</value>
|
||||
</data>
|
||||
<data name=">>addBOXEntryToolStripMenuItem1.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=">>addANIMEntryToolStripMenuItem1.Name" xml:space="preserve">
|
||||
<value>addANIMEntryToolStripMenuItem1</value>
|
||||
</data>
|
||||
<data name=">>addANIMEntryToolStripMenuItem1.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=">>$this.Name" xml:space="preserve">
|
||||
<value>MainForm</value>
|
||||
</data>
|
||||
|
||||
Reference in New Issue
Block a user