From e7b843b48d53971224a005f2a207700f9ae38ec6 Mon Sep 17 00:00:00 2001 From: MattNL Date: Fri, 16 Jun 2023 08:37:22 -0400 Subject: [PATCH] Added open file tool to Materials Editor --- .../Forms/Editor/MaterialsEditor.Designer.cs | 13 ++++++++- PCK-Studio/Forms/Editor/MaterialsEditor.cs | 27 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs b/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs index 71556683..18b7074d 100644 --- a/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/MaterialsEditor.Designer.cs @@ -40,6 +40,7 @@ this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.xLabel = new MetroFramework.Controls.MetroLabel(); this.materialComboBox = new MetroFramework.Controls.MetroComboBox(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.metroContextMenu1.SuspendLayout(); this.menuStrip.SuspendLayout(); this.SuspendLayout(); @@ -99,6 +100,7 @@ // fileToolStripMenuItem // this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem, this.saveToolStripMenuItem1}); this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White; this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; @@ -109,7 +111,7 @@ // this.saveToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem1.Image"))); this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1"; - this.saveToolStripMenuItem1.Size = new System.Drawing.Size(98, 22); + this.saveToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); this.saveToolStripMenuItem1.Text = "Save"; this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click); // @@ -149,6 +151,14 @@ this.materialComboBox.UseSelectable = true; this.materialComboBox.SelectedIndexChanged += new System.EventHandler(this.materialComboBox_SelectedIndexChanged); // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Image = global::PckStudio.Properties.Resources.file_import; + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.openToolStripMenuItem.Text = "Open"; + this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); + // // MaterialsEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -182,5 +192,6 @@ private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; private MetroFramework.Controls.MetroComboBox materialComboBox; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; } } \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.cs b/PCK-Studio/Forms/Editor/MaterialsEditor.cs index 30633484..ffed1d47 100644 --- a/PCK-Studio/Forms/Editor/MaterialsEditor.cs +++ b/PCK-Studio/Forms/Editor/MaterialsEditor.cs @@ -173,5 +173,32 @@ namespace PckStudio.Forms.Editor treeView1.SelectedNode.Tag = entry; } } + + private void openToolStripMenuItem_Click(object sender, EventArgs e) + { + using (var ofd = new OpenFileDialog()) + { + ofd.CheckFileExists = true; + ofd.Multiselect = false; + ofd.Filter = "entityMaterials.bin (Minecraft Entity Materials File)|*.bin"; + if (ofd.ShowDialog() == DialogResult.OK) + { + try + { + var reader = new MaterialFileReader(); + materialFile = reader.FromFile(ofd.FileName); + SetUpTree(); + } + catch (Exception ex) + { + MessageBox.Show(this, $"Failed to read the selected file\nError: {ex.Message}", "Failed to read materials file"); + } + } + else if (_file is null) + { + Close(); + } + } + } } }