From 271e4dc179b3988ce3e974c9b5195573e7a1c1bc Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Sat, 25 Jun 2022 15:17:48 +0200 Subject: [PATCH] Improve small things in AudioEditor --- .../Forms/Utilities/Audio/AudioEditor.cs | 110 ++++++++---------- 1 file changed, 50 insertions(+), 60 deletions(-) diff --git a/MinecraftUSkinEditor/Forms/Utilities/Audio/AudioEditor.cs b/MinecraftUSkinEditor/Forms/Utilities/Audio/AudioEditor.cs index de148523..a88d27cd 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/Audio/AudioEditor.cs +++ b/MinecraftUSkinEditor/Forms/Utilities/Audio/AudioEditor.cs @@ -34,44 +34,49 @@ namespace PckStudio.Forms.Utilities } } + internal static readonly List categories = new List + { + "Overworld", + "Nether", + "End", + "Creative", + "Menu", + "Battle", + "Tumble", + "Glide", + "Unused", + }; + internal string getCatString(int cat) { - switch (cat) - { - case 0: return "Overworld"; - case 1: return "Nether"; - case 2: return "End"; - case 3: return "Creative"; - case 4: return "Menu"; - case 5: return "Battle"; - case 6: return "Tumble"; - case 7: return "Glide"; - case 8: return "Unused"; // Unknown what this is used for. Probably the scrapped Mini Game 4 referenced in the code - default: return "Not valid"; - } + if (cat > -1 && cat < categories.Count) + return categories[cat]; + return "Not valid"; } internal int getCatID(string cat) { - switch (cat) - { - case "Overworld": return 0; - case "Nether": return 1; - case "End": return 2; - case "Creative": return 3; - case "Menu": return 4; - case "Battle": return 5; - case "Tumble": return 6; - case "Glide": return 7; - case "Unused": return 8; // Unknown what this is used for. Probably the scrapped Mini Game 4 referenced in the code - default: return -1; - } + return categories.IndexOf(cat); + + //switch (cat) + //{ + // case "Overworld": return 0; + // case "Nether": return 1; + // case "End": return 2; + // case "Creative": return 3; + // case "Menu": return 4; + // case "Battle": return 5; + // case "Tumble": return 6; + // case "Glide": return 7; + // case "Unused": return 8; // Unknown what this is used for. Probably the scrapped Mini Game 4 referenced in the code + // default: return -1; + //} } PCKFile audioPCK; PCKFile.FileData mf; bool _isLittleEndian; - public AudioEditor(PCKFile.FileData MineFile, bool isLittleEndian) + public AudioEditor(PCKFile.FileData MineFile, LOCFile locFile, bool isLittleEndian) { _isLittleEndian = isLittleEndian; if (isLittleEndian) Text += " (PS4/Vita)"; @@ -85,40 +90,23 @@ namespace PckStudio.Forms.Utilities { throw new Exception("This is not a valid audio.pck file"); } - List tempMineFiles = audioPCK.file_entries; - /* - * I need some way to access the current pck but not sure how I should do it - PCKFile currentPCK = ? - var locFileData = currentPCK.GetFile("localisation.loc", 6); - if (locFileData == null) - locFileData = currentPCK.GetFile("languages.loc", 6); - if (locFileData == null) - throw new Exception("Could not find .loc file"); - LOCFile locFile = null; - using (var stream = new MemoryStream(locFileData.data)) - { - locFile = PckStudio.Classes.IO.LOC.LOCFileReader.Read(stream); - } - */ - foreach (PCKFile.FileData mineFile in tempMineFiles) + foreach (PCKFile.FileData mineFile in audioPCK.file_entries) { string CatString = getCatString(mineFile.type); Console.WriteLine("Category Found: " + CatString + ". " + mineFile.type); foreach (var entry in mineFile.properties.ToArray()) { var property = (ValueTuple)entry; - if (property.Item1 != "CUENAME") + if (property.Item1 == "CREDITID") + locFile.RemoveEntry(property.Item2); + else if (property.Item1 == "CREDIT") { - //if (property.Item1 == "CREDITID") locFile.RemoveEntry(property.Item2); - if (property.Item1 == "CREDIT") - { - credits += property.Item2 + "\n"; - mineFile.properties.Remove(property); - } - else if (property.Item1 == "CREDITID") - { - mineFile.properties.Remove(property); - } + credits += property.Item2 + "\n"; + mineFile.properties.Remove(property); + } + else if (property.Item1 == "CREDITID") + { + mineFile.properties.Remove(property); } } if (cats.Contains(mineFile.type)) @@ -234,8 +222,8 @@ namespace PckStudio.Forms.Utilities { var file = treeView1.SelectedNode.Tag as PCKFile.FileData; var property = (ValueTuple)treeView2.SelectedNode.Tag; - file.properties.Remove(property); - treeView2.SelectedNode.Remove(); + if (file.properties.Remove(property)) + treeView2.SelectedNode.Remove(); } } @@ -243,10 +231,12 @@ namespace PckStudio.Forms.Utilities { if (treeView1.SelectedNode == null) return; // makes sure you don't run this if there is nothing to delete cats.Remove(getCatID(treeView1.SelectedNode.Text)); - //audioPCKFile.FileDatas.Remove((PCKFile.FileData)treeView1.SelectedNode.Tag); - treeView1.SelectedNode.Remove(); - treeView2.Nodes.Clear(); - if(treeView1.SelectedNode != null) + if (audioPCK.file_entries.Remove((PCKFile.FileData)treeView1.SelectedNode.Tag)) + { + treeView1.SelectedNode.Remove(); + treeView2.Nodes.Clear(); + } + if(treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is PCKFile.FileData) { PCKFile.FileData mineFile = (PCKFile.FileData)treeView1.SelectedNode.Tag; foreach (var entry in mineFile.properties)