mirror of
https://github.com/aelurum/AssetStudio.git
synced 2026-11-14 11:18:47 -05:00
[GUI] Some improvements for TypeTreeHelper and dump tree view
This commit is contained in:
@@ -321,17 +321,42 @@ namespace AssetStudio
|
||||
{
|
||||
if ((m_Nodes[i + 1].m_MetaFlag & 0x4000) != 0)
|
||||
align = true;
|
||||
var arrayTypeStr = m_Nodes.Count > i + 3
|
||||
? m_Nodes[i + 3].m_Type
|
||||
: "";
|
||||
var vector = GetNodes(m_Nodes, i);
|
||||
i += vector.Count - 1;
|
||||
var size = reader.ReadInt32();
|
||||
var array = new object[size];
|
||||
for (int j = 0; j < size; j++)
|
||||
switch (arrayTypeStr)
|
||||
{
|
||||
int tmp = 3;
|
||||
array[j] = ReadValue(vector, reader, ref tmp);
|
||||
case "UInt8":
|
||||
value = reader.ReadUInt8Array();
|
||||
break;
|
||||
case "UInt16":
|
||||
case "unsigned short":
|
||||
value = reader.ReadUInt16Array();
|
||||
break;
|
||||
case "UInt32":
|
||||
case "unsigned int":
|
||||
value = reader.ReadUInt32Array();
|
||||
break;
|
||||
case "int":
|
||||
case "SInt32":
|
||||
value = reader.ReadInt32Array();
|
||||
break;
|
||||
case "float":
|
||||
value = reader.ReadSingleArray();
|
||||
break;
|
||||
default:
|
||||
var size = reader.ReadInt32();
|
||||
var array = new object[size];
|
||||
for (int j = 0; j < size; j++)
|
||||
{
|
||||
int tmp = 3;
|
||||
array[j] = ReadValue(vector, reader, ref tmp);
|
||||
}
|
||||
value = array;
|
||||
break;
|
||||
}
|
||||
value = array;
|
||||
break;
|
||||
}
|
||||
else //Class
|
||||
{
|
||||
@@ -345,8 +370,8 @@ namespace AssetStudio
|
||||
obj[name] = ReadValue(@class, reader, ref j);
|
||||
}
|
||||
value = obj;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (align)
|
||||
|
||||
+23
-12
@@ -176,7 +176,8 @@
|
||||
this.goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.dumpTreeViewContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.tvCopyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tvCopyNameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tvCopyValToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tvToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tvExpandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tvCollapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -1440,6 +1441,7 @@
|
||||
this.dumpTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.dumpTreeView.Location = new System.Drawing.Point(0, 0);
|
||||
this.dumpTreeView.Name = "dumpTreeView";
|
||||
this.dumpTreeView.PathSeparator = "/";
|
||||
this.dumpTreeView.Size = new System.Drawing.Size(768, 607);
|
||||
this.dumpTreeView.TabIndex = 1;
|
||||
this.dumpTreeView.Visible = false;
|
||||
@@ -1647,36 +1649,44 @@
|
||||
// dumpTreeViewContextMenuStrip
|
||||
//
|
||||
this.dumpTreeViewContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tvCopyToolStripMenuItem,
|
||||
this.tvCopyNameToolStripMenuItem,
|
||||
this.tvCopyValToolStripMenuItem,
|
||||
this.tvToolStripSeparator1,
|
||||
this.tvExpandAllToolStripMenuItem,
|
||||
this.tvCollapseAllToolStripMenuItem});
|
||||
this.dumpTreeViewContextMenuStrip.Name = "contextMenuStrip3";
|
||||
this.dumpTreeViewContextMenuStrip.Size = new System.Drawing.Size(135, 76);
|
||||
this.dumpTreeViewContextMenuStrip.Size = new System.Drawing.Size(136, 98);
|
||||
//
|
||||
// tvCopyToolStripMenuItem
|
||||
// tvCopyNameToolStripMenuItem
|
||||
//
|
||||
this.tvCopyToolStripMenuItem.Name = "tvCopyToolStripMenuItem";
|
||||
this.tvCopyToolStripMenuItem.Size = new System.Drawing.Size(134, 22);
|
||||
this.tvCopyToolStripMenuItem.Text = "Copy";
|
||||
this.tvCopyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem1_Click);
|
||||
this.tvCopyNameToolStripMenuItem.Name = "tvCopyNameToolStripMenuItem";
|
||||
this.tvCopyNameToolStripMenuItem.Size = new System.Drawing.Size(135, 22);
|
||||
this.tvCopyNameToolStripMenuItem.Text = "Copy name";
|
||||
this.tvCopyNameToolStripMenuItem.Click += new System.EventHandler(this.tvCopyNameToolStripMenuItem_Click);
|
||||
//
|
||||
// tvCopyValToolStripMenuItem
|
||||
//
|
||||
this.tvCopyValToolStripMenuItem.Name = "tvCopyValToolStripMenuItem";
|
||||
this.tvCopyValToolStripMenuItem.Size = new System.Drawing.Size(135, 22);
|
||||
this.tvCopyValToolStripMenuItem.Text = "Copy value";
|
||||
this.tvCopyValToolStripMenuItem.Click += new System.EventHandler(this.tvCopyValToolStripMenuItem_Click);
|
||||
//
|
||||
// tvToolStripSeparator1
|
||||
//
|
||||
this.tvToolStripSeparator1.Name = "tvToolStripSeparator1";
|
||||
this.tvToolStripSeparator1.Size = new System.Drawing.Size(131, 6);
|
||||
this.tvToolStripSeparator1.Size = new System.Drawing.Size(132, 6);
|
||||
//
|
||||
// tvExpandAllToolStripMenuItem
|
||||
//
|
||||
this.tvExpandAllToolStripMenuItem.Name = "tvExpandAllToolStripMenuItem";
|
||||
this.tvExpandAllToolStripMenuItem.Size = new System.Drawing.Size(134, 22);
|
||||
this.tvExpandAllToolStripMenuItem.Size = new System.Drawing.Size(135, 22);
|
||||
this.tvExpandAllToolStripMenuItem.Text = "Expand all";
|
||||
this.tvExpandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem1_Click);
|
||||
//
|
||||
// tvCollapseAllToolStripMenuItem
|
||||
//
|
||||
this.tvCollapseAllToolStripMenuItem.Name = "tvCollapseAllToolStripMenuItem";
|
||||
this.tvCollapseAllToolStripMenuItem.Size = new System.Drawing.Size(134, 22);
|
||||
this.tvCollapseAllToolStripMenuItem.Size = new System.Drawing.Size(135, 22);
|
||||
this.tvCollapseAllToolStripMenuItem.Text = "Collapse all";
|
||||
this.tvCollapseAllToolStripMenuItem.Click += new System.EventHandler(this.collapseAllToolStripMenuItem1_Click);
|
||||
//
|
||||
@@ -1860,7 +1870,7 @@
|
||||
private System.Windows.Forms.ToolStripSeparator assetLoadingToolStripSeparator;
|
||||
private System.Windows.Forms.TreeView dumpTreeView;
|
||||
private System.Windows.Forms.ContextMenuStrip dumpTreeViewContextMenuStrip;
|
||||
private System.Windows.Forms.ToolStripMenuItem tvCopyToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem tvCopyValToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator tvToolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem tvExpandAllToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem tvCollapseAllToolStripMenuItem;
|
||||
@@ -1885,6 +1895,7 @@
|
||||
private System.Windows.Forms.ToolStripSeparator importOptionsToolStripSeparator;
|
||||
private System.Windows.Forms.ToolStripMenuItem meshLazyLoadToolStripMenuItem;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.ToolStripMenuItem tvCopyNameToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2642,16 +2642,25 @@ namespace AssetStudioGUI
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
dumpTreeView.SelectedNode = e.Node;
|
||||
tempClipboard = string.IsNullOrEmpty((string)e.Node.Tag)
|
||||
? e.Node.Text
|
||||
: $"{e.Node.Name}: {e.Node.Tag}";
|
||||
tvCopyValToolStripMenuItem.Visible = !string.IsNullOrEmpty((string)e.Node.Tag);
|
||||
dumpTreeViewContextMenuStrip.Show(dumpTreeView, e.Location.X, e.Location.Y);
|
||||
}
|
||||
}
|
||||
|
||||
private void copyToolStripMenuItem1_Click(object sender, EventArgs e)
|
||||
private void tvCopyNameToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Clipboard.SetDataObject(tempClipboard);
|
||||
var name = dumpTreeView.SelectedNode.Name;
|
||||
if (string.IsNullOrEmpty(name))
|
||||
name = dumpTreeView.SelectedNode.Text;
|
||||
|
||||
Clipboard.SetDataObject(name);
|
||||
}
|
||||
|
||||
private void tvCopyValToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var val = (string)dumpTreeView.SelectedNode.Tag ?? "";
|
||||
|
||||
Clipboard.SetDataObject(val);
|
||||
}
|
||||
|
||||
private void expandAllToolStripMenuItem1_Click(object sender, EventArgs e)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Text.Json;
|
||||
using AssetStudio;
|
||||
using System.Text.Json;
|
||||
using System.Windows.Forms;
|
||||
using AssetStudio;
|
||||
|
||||
namespace AssetStudioGUI
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user