From c75d64aa932a35c5c44d1e3e9c6513405b1a327d Mon Sep 17 00:00:00 2001
From: miku-666 <74728189+NessieHax@users.noreply.github.com>
Date: Tue, 10 Sep 2024 18:09:21 +0200
Subject: [PATCH] ModelEditor -Add Save tool menu item & add TrySetTexture
Delegate
---
.../Forms/Editor/ModelEditor.Designer.cs | 55 +++++++++++++++++--
PCK-Studio/Forms/Editor/ModelEditor.cs | 10 +++-
PCK-Studio/Forms/Editor/ModelEditor.resx | 3 +
PCK-Studio/MainForm.cs | 21 ++++---
4 files changed, 75 insertions(+), 14 deletions(-)
diff --git a/PCK-Studio/Forms/Editor/ModelEditor.Designer.cs b/PCK-Studio/Forms/Editor/ModelEditor.Designer.cs
index 94d4d029..a2a697b3 100644
--- a/PCK-Studio/Forms/Editor/ModelEditor.Designer.cs
+++ b/PCK-Studio/Forms/Editor/ModelEditor.Designer.cs
@@ -34,20 +34,26 @@
this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.modelContextMenu.SuspendLayout();
+ this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// modelTreeView
//
+ this.modelTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.modelTreeView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.modelTreeView.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.modelTreeView.ContextMenuStrip = this.modelContextMenu;
- this.modelTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
this.modelTreeView.ForeColor = System.Drawing.SystemColors.Window;
- this.modelTreeView.Location = new System.Drawing.Point(20, 60);
+ this.modelTreeView.Location = new System.Drawing.Point(20, 87);
this.modelTreeView.Name = "modelTreeView";
this.modelTreeView.PathSeparator = ".";
- this.modelTreeView.Size = new System.Drawing.Size(335, 395);
+ this.modelTreeView.Size = new System.Drawing.Size(335, 368);
this.modelTreeView.TabIndex = 0;
this.modelTreeView.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.modelTreeView_BeforeSelect);
//
@@ -63,30 +69,61 @@
// exportToolStripMenuItem
//
this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
- this.exportToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.exportToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
this.exportToolStripMenuItem.Text = "Export";
this.exportToolStripMenuItem.Click += new System.EventHandler(this.exportToolStripMenuItem_Click);
//
// editToolStripMenuItem
//
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
- this.editToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.editToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
this.editToolStripMenuItem.Text = "Edit";
this.editToolStripMenuItem.Visible = false;
//
// removeToolStripMenuItem
//
this.removeToolStripMenuItem.Name = "removeToolStripMenuItem";
- this.removeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.removeToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
this.removeToolStripMenuItem.Text = "Remove";
this.removeToolStripMenuItem.Visible = false;
//
+ // menuStrip1
+ //
+ this.menuStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
+ this.menuStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem});
+ this.menuStrip1.Location = new System.Drawing.Point(20, 60);
+ this.menuStrip1.Name = "menuStrip1";
+ this.menuStrip1.Size = new System.Drawing.Size(335, 24);
+ this.menuStrip1.TabIndex = 1;
+ this.menuStrip1.Text = "menuStrip1";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.BackColor = System.Drawing.Color.Transparent;
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.saveToolStripMenuItem});
+ this.fileToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control;
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ this.fileToolStripMenuItem.Text = "File";
+ //
+ // saveToolStripMenuItem
+ //
+ this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
+ this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.saveToolStripMenuItem.Text = "Save";
+ this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
+ //
// ModelEditor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(375, 475);
+ this.Controls.Add(this.menuStrip1);
this.Controls.Add(this.modelTreeView);
+ this.MainMenuStrip = this.menuStrip1;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(375, 475);
@@ -95,7 +132,10 @@
this.Text = "ModelEditor";
this.Theme = MetroFramework.MetroThemeStyle.Dark;
this.modelContextMenu.ResumeLayout(false);
+ this.menuStrip1.ResumeLayout(false);
+ this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
+ this.PerformLayout();
}
@@ -106,5 +146,8 @@
private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem;
+ private System.Windows.Forms.MenuStrip menuStrip1;
+ private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
}
}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Editor/ModelEditor.cs b/PCK-Studio/Forms/Editor/ModelEditor.cs
index ba2a4064..791e1e98 100644
--- a/PCK-Studio/Forms/Editor/ModelEditor.cs
+++ b/PCK-Studio/Forms/Editor/ModelEditor.cs
@@ -18,15 +18,18 @@ namespace PckStudio.Forms.Editor
{
private readonly ModelContainer _models;
private readonly TryGetTextureDelegate _tryGetTexture;
+ private readonly TrySetTextureDelegate _trySetTexture;
public delegate bool TryGetTextureDelegate(string path, out Image img);
+ public delegate bool TrySetTextureDelegate(string path, Image img);
- public ModelEditor(ModelContainer models, TryGetTextureDelegate tryGetTexture)
+ public ModelEditor(ModelContainer models, TryGetTextureDelegate tryGetTexture, TrySetTextureDelegate trySetTexture)
{
InitializeComponent();
_models = models;
_tryGetTexture = tryGetTexture;
+ _trySetTexture = trySetTexture;
}
private class ModelNode : TreeNode
@@ -124,5 +127,10 @@ namespace PckStudio.Forms.Editor
editToolStripMenuItem.Visible = e.Node is ModelBoxNode;
removeToolStripMenuItem.Visible = e.Node is ModelPartNode || e.Node is ModelBoxNode;
}
+
+ private void saveToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.OK;
+ }
}
}
diff --git a/PCK-Studio/Forms/Editor/ModelEditor.resx b/PCK-Studio/Forms/Editor/ModelEditor.resx
index 6874eb71..2c9d3fce 100644
--- a/PCK-Studio/Forms/Editor/ModelEditor.resx
+++ b/PCK-Studio/Forms/Editor/ModelEditor.resx
@@ -120,4 +120,7 @@
17, 17
+
+ 178, 17
+
\ No newline at end of file
diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs
index afd114f0..b7363ade 100644
--- a/PCK-Studio/MainForm.cs
+++ b/PCK-Studio/MainForm.cs
@@ -603,8 +603,7 @@ namespace PckStudio
return;
}
- ModelEditor.TryGetTextureDelegate tryGetTexture =
- (string path, out Image img) =>
+ ModelEditor.TryGetTextureDelegate tryGetTexture = (string path, out Image img) =>
{
bool found = currentPCK.TryGetAsset(path + ".png", PckAssetType.TextureFile, out PckAsset asset) ||
currentPCK.TryGetAsset(path + ".tga", PckAssetType.TextureFile, out asset);
@@ -612,7 +611,16 @@ namespace PckStudio
return found;
};
- var editor = new ModelEditor(modelContainer, tryGetTexture);
+ ModelEditor.TrySetTextureDelegate trySetTexture = (string path, Image img) =>
+ {
+ bool found = currentPCK.TryGetAsset(path + ".png", PckAssetType.TextureFile, out PckAsset foundAsset) ||
+ currentPCK.TryGetAsset(path + ".tga", PckAssetType.TextureFile, out foundAsset);
+ PckAsset asset = foundAsset ?? currentPCK.CreateNewAsset(path + ".png", PckAssetType.TextureFile);
+ asset.SetTexture(img);
+ return true;
+ };
+
+ var editor = new ModelEditor(modelContainer, tryGetTexture, trySetTexture);
if (editor.ShowDialog() == DialogResult.OK)
{
return;
@@ -1967,10 +1975,9 @@ namespace PckStudio
node.SelectedImageIndex = 6;
break;
case PckAssetType.ModelsFile:
- goto default;
- //node.ImageIndex = 8;
- //node.SelectedImageIndex = 8;
- //break;
+ node.ImageIndex = 8;
+ node.SelectedImageIndex = 8;
+ break;
case PckAssetType.SkinDataFile:
goto default;
//node.ImageIndex = 7;