From 497d7e8327e1f22478c38b21e4b00666bb48e11d Mon Sep 17 00:00:00 2001 From: MattNL Date: Thu, 18 Aug 2022 16:00:19 -0400 Subject: [PATCH] changed main form data folder methods --- PCK-Studio/MainForm.cs | 154 +++++++++++++++++++++-------------------- 1 file changed, 79 insertions(+), 75 deletions(-) diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 78cfb84a..9e87453c 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -27,7 +27,6 @@ namespace PckStudio bool needsUpdate = false; bool saved = true; bool isTemplateFile = false; - string DataDirectory = string.Empty; public MainForm() { @@ -52,17 +51,17 @@ namespace PckStudio RPC.Initialize(); RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC"); - skinToolStripMenuItem1.Click += (sender, e) => setFileType_Click(sender, e, 0); - capeToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 1); - textureToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 2); - languagesFileLOCToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 6); - gameRulesFileGRFToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 7); - audioPCKFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 8); - coloursCOLFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 9); - gameRulesHeaderGRHToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 10); - skinsPCKToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 11); - modelsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 12); - behavioursFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 13); + skinToolStripMenuItem1.Click += (sender, e) => setFileType_Click(sender, e, 0); + capeToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 1); + textureToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 2); + languagesFileLOCToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 6); + gameRulesFileGRFToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 7); + audioPCKFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 8); + coloursCOLFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 9); + gameRulesHeaderGRHToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 10); + skinsPCKToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 11); + modelsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 12); + behavioursFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 13); entityMaterialsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 14); try @@ -237,7 +236,7 @@ namespace PckStudio } catch (OverflowException ex) { - MessageBox.Show("Failed to open pck\n" + + MessageBox.Show("Failed to open pck\n" + "Try checking the 'Open/Save as Vita/PS4 pck' check box in the upper right corner.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Console.WriteLine(ex.Message); @@ -328,17 +327,17 @@ namespace PckStudio } } - public void editModel(PCKFile.FileData skin) - { - using (generateModel generate = new generateModel(skin.properties, new PictureBox())) - if (generate.ShowDialog() == DialogResult.OK) - { - entryTypeTextBox.Text = ""; - entryDataTextBox.Text = ""; - saved = false; - ReloadMetaTreeView(); - } - } + public void editModel(PCKFile.FileData skin) + { + using (generateModel generate = new generateModel(skin.properties, new PictureBox())) + if (generate.ShowDialog() == DialogResult.OK) + { + entryTypeTextBox.Text = ""; + entryDataTextBox.Text = ""; + saved = false; + ReloadMetaTreeView(); + } + } private void extractToolStripMenuItem_Click(object sender, EventArgs e) { @@ -432,39 +431,39 @@ namespace PckStudio MessageBox.Show("Can't replace a folder."); } - private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e) - { - var node = treeViewMain.SelectedNode; - if (node == null) return; - if (node.Tag is PCKFile.FileData) - { - PCKFile.FileData file = node.Tag as PCKFile.FileData; - // remove loc key if its a skin/cape - if (file.type == 0 || file.type == 1) - { - if (TryGetLocFile(out LOCFile locFile)) - { - foreach (var property in file.properties) - { - if (property.Item1 == "THEMENAMEID" || property.Item1 == "DISPLAYNAMEID") - locFile.RemoveLocKey(property.Item2); - } - TrySetLocFile(locFile); - } - } - currentPCK.Files.Remove(file); - node.Remove(); - saved = false; - } - else if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning", - MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) - { - string pckFolderDir = node.FullPath; - currentPCK.Files.RemoveAll(file => file.filepath.StartsWith(pckFolderDir)); - node.Remove(); - saved = false; - } - } + private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e) + { + var node = treeViewMain.SelectedNode; + if (node == null) return; + if (node.Tag is PCKFile.FileData) + { + PCKFile.FileData file = node.Tag as PCKFile.FileData; + // remove loc key if its a skin/cape + if (file.type == 0 || file.type == 1) + { + if (TryGetLocFile(out LOCFile locFile)) + { + foreach (var property in file.properties) + { + if (property.Item1 == "THEMENAMEID" || property.Item1 == "DISPLAYNAMEID") + locFile.RemoveLocKey(property.Item2); + } + TrySetLocFile(locFile); + } + } + currentPCK.Files.Remove(file); + node.Remove(); + saved = false; + } + else if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning", + MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) + { + string pckFolderDir = node.FullPath; + currentPCK.Files.RemoveAll(file => file.filepath.StartsWith(pckFolderDir)); + node.Remove(); + saved = false; + } + } private void renameFileToolStripMenuItem_Click(object sender, EventArgs e) { @@ -598,14 +597,14 @@ namespace PckStudio grfEditor.ShowDialog(); break; - case 8 when file.filepath == "audio.pck": - if (!TryGetLocFile(out LOCFile locFile)) - throw new Exception("No .loc File found."); - AudioEditor audioEditor = new AudioEditor(file, locFile, LittleEndianCheckBox.Checked); - audioEditor.ShowDialog(this); + case 8 when file.filepath == "audio.pck": + if (!TryGetLocFile(out LOCFile locFile)) + throw new Exception("No .loc File found."); + AudioEditor audioEditor = new AudioEditor(file, locFile, LittleEndianCheckBox.Checked); + audioEditor.ShowDialog(this); if (audioEditor.saved) TrySetLocFile(locFile); audioEditor.Dispose(); - break; + break; case 9 when file.filepath == "colours.col": if (file.size == 0) @@ -697,16 +696,16 @@ namespace PckStudio mf.properties.Add(property); } - TreeNode newNode = new TreeNode(); - newNode.Text = newFileName; - newNode.Tag = mf; - newNode.ImageIndex = node.ImageIndex; - newNode.SelectedImageIndex = node.SelectedImageIndex; + TreeNode newNode = new TreeNode(); + newNode.Text = newFileName; + newNode.Tag = mf; + newNode.ImageIndex = node.ImageIndex; + newNode.SelectedImageIndex = node.SelectedImageIndex; - if (node.Parent == null) treeViewMain.Nodes.Insert(node.Index + 1, newNode); //adds generated minefile node - else node.Parent.Nodes.Insert(node.Index + 1, newNode);//adds generated minefile node to selected folder - currentPCK.Files.Insert(node.Index + 1, mf); - } + if (node.Parent == null) treeViewMain.Nodes.Insert(node.Index + 1, newNode); //adds generated minefile node + else node.Parent.Nodes.Insert(node.Index + 1, newNode);//adds generated minefile node to selected folder + currentPCK.Files.Insert(node.Index + 1, mf); + } private void deleteEntryToolStripMenuItem_Click(object sender, EventArgs e) { @@ -1032,7 +1031,7 @@ namespace PckStudio FileInfo file = new FileInfo(filepath); file.Directory.Create(); File.WriteAllBytes(filepath, mf.data); // writes data to file - //attempts to generate reimportable metadata file out of minefiles metadata + //attempts to generate reimportable metadata file out of minefiles metadata string metaData = ""; foreach (var entry in mf.properties) @@ -1050,9 +1049,14 @@ namespace PckStudio } } + public string GetDataPath() + { + return Path.Combine(Path.GetDirectoryName(saveLocation), $"Data"); + } + public bool HasDataFolder() { - return Directory.Exists(Path.Combine(Path.GetDirectoryName(saveLocation), "Data")); + return Directory.Exists(GetDataPath()); } public bool CreateDataFolder() @@ -1061,7 +1065,7 @@ namespace PckStudio { DialogResult result = MessageBox.Show("There is not a \"Data\" folder present in the pack folder. Would you like to create one?", "Folder missing", MessageBoxButtons.YesNo); if (result == DialogResult.No) return false; - else Directory.CreateDirectory(DataDirectory); + else Directory.CreateDirectory(GetDataPath()); } return true; }