Added SetCategory tool to AudioEditor

This commit is contained in:
MattNL
2023-01-10 13:38:22 -05:00
parent acca1e3287
commit e96c7e7692
3 changed files with 128 additions and 70 deletions

View File

@@ -35,6 +35,7 @@ namespace PckStudio.Forms.Editor
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.addCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.changeCategoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.catImages = new System.Windows.Forms.ImageList(this.components);
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -80,7 +81,8 @@ namespace PckStudio.Forms.Editor
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addCategoryStripMenuItem,
this.removeCategoryStripMenuItem});
this.removeCategoryStripMenuItem,
this.changeCategoryToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
//
@@ -96,6 +98,12 @@ namespace PckStudio.Forms.Editor
resources.ApplyResources(this.removeCategoryStripMenuItem, "removeCategoryStripMenuItem");
this.removeCategoryStripMenuItem.Click += new System.EventHandler(this.removeCategoryStripMenuItem_Click);
//
// changeCategoryToolStripMenuItem
//
this.changeCategoryToolStripMenuItem.Name = "changeCategoryToolStripMenuItem";
resources.ApplyResources(this.changeCategoryToolStripMenuItem, "changeCategoryToolStripMenuItem");
this.changeCategoryToolStripMenuItem.Click += new System.EventHandler(this.setCategoryToolStripMenuItem_Click);
//
// catImages
//
this.catImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("catImages.ImageStream")));
@@ -343,5 +351,6 @@ namespace PckStudio.Forms.Editor
private MetroFramework.Controls.MetroLabel metroLabel1;
private System.Windows.Forms.ToolStripMenuItem openDataFolderToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem bulkReplaceExistingTracksToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem changeCategoryToolStripMenuItem;
}
}

View File

@@ -61,6 +61,13 @@ namespace PckStudio.Forms.Editor
audioFile = PCKAudioFileReader.Read(stream, isLittleEndian);
}
SetUpTree();
}
public void SetUpTree()
{
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
foreach (var category in audioFile.Categories)
{
if (category.Name == "include_overworld" &&
@@ -80,6 +87,7 @@ namespace PckStudio.Forms.Editor
treeView1.Nodes.Add(treeNode);
}
playOverworldInCreative.Enabled = audioFile.HasCategory(PCKAudioFile.AudioCategory.EAudioType.Creative);
treeView1.EndUpdate();
}
private void AudioEditor_FormClosed(object sender, FormClosedEventArgs e)
@@ -113,10 +121,10 @@ namespace PckStudio.Forms.Editor
private void addCategoryStripMenuItem_Click(object sender, EventArgs e)
{
string[] avalible = Categories.FindAll(str => !audioFile.HasCategory(GetCategoryId(str))).ToArray();
if (avalible.Length > 0)
string[] available = Categories.FindAll(str => !audioFile.HasCategory(GetCategoryId(str))).ToArray();
if (available.Length > 0)
{
using addCategory add = new addCategory(avalible);
using addCategory add = new addCategory(available);
if (add.ShowDialog() == DialogResult.OK)
audioFile.AddCategory(GetCategoryId(add.Category));
else return;
@@ -125,10 +133,12 @@ namespace PckStudio.Forms.Editor
TreeNode treeNode = new TreeNode(GetCategoryFromId(category.audioType), (int)category.audioType, (int)category.audioType);
treeNode.Tag = category;
treeView1.Nodes.Add(treeNode);
SetUpTree();
}
else
{
MessageBox.Show("All possible categories are used", "There are no more categories that could be added");
MessageBox.Show("There are no more categories that could be added", "All possible categories are used");
}
}
@@ -457,5 +467,32 @@ namespace PckStudio.Forms.Editor
Binka.ToWav(Path.Combine(parent.GetDataPath(), treeView2.SelectedNode.Text + ".binka"), Path.Combine(parent.GetDataPath()));
}
}
private void setCategoryToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!(treeView1.SelectedNode is TreeNode t && t.Tag is PCKAudioFile.AudioCategory category)) return;
string[] available = Categories.FindAll(str => !audioFile.HasCategory(GetCategoryId(str))).ToArray();
if (available.Length > 0)
{
using addCategory add = new addCategory(available);
add.button1.Text = "Save";
if (add.ShowDialog() != DialogResult.OK) return;
audioFile.RemoveCategory(category.audioType);
audioFile.AddCategory(category.parameterType, GetCategoryId(add.Category), category.audioType == PCKAudioFile.AudioCategory.EAudioType.Overworld && playOverworldInCreative.Checked ? "include_overworld" : "");
var newCategory = audioFile.GetCategory(GetCategoryId(add.Category));
category.SongNames.ForEach(c => newCategory.SongNames.Add(c));
SetUpTree();
}
else
{
MessageBox.Show("There are no categories that aren't already used", "All possible categories are used");
}
}
}
}

View File

@@ -125,28 +125,8 @@
<value>127, 8</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="addCategoryStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="addCategoryStripMenuItem.Text" xml:space="preserve">
<value>Add Category</value>
</data>
<data name="removeCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="removeCategoryStripMenuItem.Text" xml:space="preserve">
<value>Remove Category</value>
</data>
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>169, 48</value>
<value>169, 70</value>
</data>
<data name="&gt;&gt;contextMenuStrip1.Name" xml:space="preserve">
<value>contextMenuStrip1</value>
@@ -166,7 +146,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk
MAAAAk1TRnQBSQFMAgEBCQEAAXgBAAF4AQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
MAAAAk1TRnQBSQFMAgEBCQEAAYgBAAGIAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMBIAAzgB/wM1Af8DNQH/AzMB/wMwAf8DLwH/Ay0B/wMtAf8DJAH/AzsB/wM4
Af8DNQH/Ay0B/wMnAf8DNgH/AzIB/8AAAzgB/wN/Af8DeQH/A3kB/wN5Af8DcQH/A3EB/wN5Af8DeQH/
A3EB/wNxAf8DcQH/A3kB/wN5Af8DfwH/AzIB/8AAAzIB/wN2Af8DsAH/A7AB/wOvAf8DrwH/A68B/wOo
@@ -404,12 +384,68 @@
<data name="&gt;&gt;treeView1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="addCategoryStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="addCategoryStripMenuItem.Text" xml:space="preserve">
<value>Add Category</value>
</data>
<data name="removeCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="removeCategoryStripMenuItem.Text" xml:space="preserve">
<value>Remove Category</value>
</data>
<data name="changeCategoryToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="changeCategoryToolStripMenuItem.Text" xml:space="preserve">
<value>Set Category</value>
</data>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>19, 8</value>
</metadata>
<data name="menuStrip.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="menuStrip.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 60</value>
</data>
<data name="menuStrip.Size" type="System.Drawing.Size, System.Drawing">
<value>410, 24</value>
</data>
<data name="menuStrip.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="menuStrip.Text" xml:space="preserve">
<value>menuStrip1</value>
</data>
<data name="&gt;&gt;menuStrip.Name" xml:space="preserve">
<value>menuStrip</value>
</data>
<data name="&gt;&gt;menuStrip.Type" xml:space="preserve">
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuStrip.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;menuStrip.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>File</value>
</data>
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -421,16 +457,16 @@
</value>
</data>
<data name="saveToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 22</value>
<value>180, 22</value>
</data>
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value>
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>File</value>
<data name="toolsToolStripMenuItem.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="creditsEditorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
@@ -456,11 +492,11 @@
<data name="bulkReplaceExistingTracksToolStripMenuItem.Text" xml:space="preserve">
<value>Bulk Replace Existing Tracks</value>
</data>
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 20</value>
<data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 20</value>
</data>
<data name="toolsToolStripMenuItem.Text" xml:space="preserve">
<value>Tools</value>
<data name="helpToolStripMenuItem.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="howToAddSongsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 22</value>
@@ -492,36 +528,6 @@
<data name="bINKACompressionToolStripMenuItem.Text" xml:space="preserve">
<value>BINKA Compression</value>
</data>
<data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 20</value>
</data>
<data name="helpToolStripMenuItem.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="menuStrip.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 60</value>
</data>
<data name="menuStrip.Size" type="System.Drawing.Size, System.Drawing">
<value>410, 24</value>
</data>
<data name="menuStrip.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="menuStrip.Text" xml:space="preserve">
<value>menuStrip1</value>
</data>
<data name="&gt;&gt;menuStrip.Name" xml:space="preserve">
<value>menuStrip</value>
</data>
<data name="&gt;&gt;menuStrip.Type" xml:space="preserve">
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuStrip.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;menuStrip.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="treeView2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
@@ -537,25 +543,25 @@
</value>
</data>
<data name="addEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
<value>173, 22</value>
</data>
<data name="addEntryMenuItem.Text" xml:space="preserve">
<value>Add Entry</value>
</data>
<data name="removeEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
<value>173, 22</value>
</data>
<data name="removeEntryMenuItem.Text" xml:space="preserve">
<value>Remove Entry</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
<value>173, 22</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Text" xml:space="preserve">
<value>Verify File Location</value>
</data>
<data name="contextMenuStrip2.Size" type="System.Drawing.Size, System.Drawing">
<value>181, 92</value>
<value>174, 70</value>
</data>
<data name="&gt;&gt;contextMenuStrip2.Name" xml:space="preserve">
<value>contextMenuStrip2</value>
@@ -689,6 +695,12 @@
<data name="&gt;&gt;removeCategoryStripMenuItem.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="&gt;&gt;changeCategoryToolStripMenuItem.Name" xml:space="preserve">
<value>changeCategoryToolStripMenuItem</value>
</data>
<data name="&gt;&gt;changeCategoryToolStripMenuItem.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="&gt;&gt;catImages.Name" xml:space="preserve">
<value>catImages</value>
</data>