ModelEditor -Add Save tool menu item & add TrySetTexture Delegate

This commit is contained in:
miku-666
2024-09-10 18:09:21 +02:00
parent 0919d89137
commit c75d64aa93
4 changed files with 75 additions and 14 deletions

View File

@@ -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;
}
}

View File

@@ -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;
}
}
}

View File

@@ -120,4 +120,7 @@
<metadata name="modelContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>178, 17</value>
</metadata>
</root>

View File

@@ -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;