Quick fix for mtxt right click saving

This commit is contained in:
KillzXGaming 2021-10-11 17:00:33 -04:00
parent 08aae51016
commit 84dcc87506

View file

@ -2,13 +2,13 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Windows.Forms;
using Toolbox.Library; using Toolbox.Library;
using Toolbox.Library.IO; using Toolbox.Library.IO;
namespace FirstPlugin namespace FirstPlugin
{ {
public class MTXT : TreeNodeFile, IFileFormat, ITextureContainer public class MTXT : TreeNodeFile, IFileFormat, ITextureContainer, IContextMenuNode
{ {
public FileType FileType { get; set; } = FileType.Image; public FileType FileType { get; set; } = FileType.Image;
@ -40,6 +40,26 @@ namespace FirstPlugin
this.TreeView.SelectedNode = Nodes[0]; this.TreeView.SelectedNode = Nodes[0];
} }
public ToolStripItem[] GetContextMenuItems()
{
return new ToolStripItem[]
{
new ToolStripMenuItem("Save", null, Save, Keys.Control | Keys.S),
};
}
private void Save(object sender, EventArgs args)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.DefaultExt = "bctex";
sfd.Filter = "Supported Formats|*.bctex;";
sfd.FileName = FileName;
if (sfd.ShowDialog() == DialogResult.OK) {
STFileSaver.SaveFileFormat(this, sfd.FileName);
}
}
public List<STGenericTexture> TextureList { get; set; } public List<STGenericTexture> TextureList { get; set; }
public bool DisplayIcons => false; public bool DisplayIcons => false;
@ -53,6 +73,7 @@ namespace FirstPlugin
public void Load(System.IO.Stream stream) public void Load(System.IO.Stream stream)
{ {
Text = this.FileName; Text = this.FileName;
Tag = this;
using (var reader = new FileReader(stream)) using (var reader = new FileReader(stream))
{ {
@ -65,7 +86,6 @@ namespace FirstPlugin
} }
private void ReadTextureBinary(byte[] data) private void ReadTextureBinary(byte[] data)
{ {
using (var reader = new FileReader(data)) using (var reader = new FileReader(data))
@ -91,7 +111,6 @@ namespace FirstPlugin
TextureFile = new XTX(); TextureFile = new XTX();
TextureFile.FileName = textureName; TextureFile.FileName = textureName;
TextureFile.Load(stream); TextureFile.Load(stream);
this.Tag = TextureFile;
foreach (STGenericTexture node in TextureFile.Nodes) foreach (STGenericTexture node in TextureFile.Nodes)
Nodes.Add(node); Nodes.Add(node);