mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
Support for exporting raw data
This commit is contained in:
parent
20f9fe493f
commit
f377381e26
48
AssetStudioGUI/AssetStudioGUIForm.Designer.cs
generated
48
AssetStudioGUI/AssetStudioGUIForm.Designer.cs
generated
@ -58,6 +58,10 @@
|
|||||||
this.exportFilteredAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.exportFilteredAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.exportRawToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.allAssetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.selectedAssetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.filteredAssetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.filterTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.filterTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.debugMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.debugMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@ -137,6 +141,7 @@
|
|||||||
this.optionsToolStripMenuItem,
|
this.optionsToolStripMenuItem,
|
||||||
this.modelToolStripMenuItem,
|
this.modelToolStripMenuItem,
|
||||||
this.exportToolStripMenuItem,
|
this.exportToolStripMenuItem,
|
||||||
|
this.exportRawToolStripMenuItem,
|
||||||
this.filterTypeToolStripMenuItem,
|
this.filterTypeToolStripMenuItem,
|
||||||
this.debugMenuItem});
|
this.debugMenuItem});
|
||||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
@ -346,21 +351,21 @@
|
|||||||
this.exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem";
|
this.exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem";
|
||||||
this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
||||||
this.exportAllAssetsMenuItem.Text = "All assets";
|
this.exportAllAssetsMenuItem.Text = "All assets";
|
||||||
this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.exportAllAssetsMenuItem_Click);
|
||||||
//
|
//
|
||||||
// exportSelectedAssetsMenuItem
|
// exportSelectedAssetsMenuItem
|
||||||
//
|
//
|
||||||
this.exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem";
|
this.exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem";
|
||||||
this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
||||||
this.exportSelectedAssetsMenuItem.Text = "Selected assets";
|
this.exportSelectedAssetsMenuItem.Text = "Selected assets";
|
||||||
this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.exportSelectedAssetsMenuItem_Click);
|
||||||
//
|
//
|
||||||
// exportFilteredAssetsMenuItem
|
// exportFilteredAssetsMenuItem
|
||||||
//
|
//
|
||||||
this.exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem";
|
this.exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem";
|
||||||
this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
||||||
this.exportFilteredAssetsMenuItem.Text = "Filtered assets";
|
this.exportFilteredAssetsMenuItem.Text = "Filtered assets";
|
||||||
this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.exportFilteredAssetsMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
@ -374,6 +379,37 @@
|
|||||||
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Text = "Export Animator with selected AnimationClip";
|
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Text = "Export Animator with selected AnimationClip";
|
||||||
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Click += new System.EventHandler(this.exportAnimatorwithAnimationClipMenuItem_Click);
|
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Click += new System.EventHandler(this.exportAnimatorwithAnimationClipMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// exportRawToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.exportRawToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.allAssetsToolStripMenuItem,
|
||||||
|
this.selectedAssetsToolStripMenuItem,
|
||||||
|
this.filteredAssetsToolStripMenuItem});
|
||||||
|
this.exportRawToolStripMenuItem.Name = "exportRawToolStripMenuItem";
|
||||||
|
this.exportRawToolStripMenuItem.Size = new System.Drawing.Size(86, 21);
|
||||||
|
this.exportRawToolStripMenuItem.Text = "Export Raw";
|
||||||
|
//
|
||||||
|
// allAssetsToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.allAssetsToolStripMenuItem.Name = "allAssetsToolStripMenuItem";
|
||||||
|
this.allAssetsToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
|
||||||
|
this.allAssetsToolStripMenuItem.Text = "All assets";
|
||||||
|
this.allAssetsToolStripMenuItem.Click += new System.EventHandler(this.allAssetsToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// selectedAssetsToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.selectedAssetsToolStripMenuItem.Name = "selectedAssetsToolStripMenuItem";
|
||||||
|
this.selectedAssetsToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
|
||||||
|
this.selectedAssetsToolStripMenuItem.Text = "Selected assets";
|
||||||
|
this.selectedAssetsToolStripMenuItem.Click += new System.EventHandler(this.selectedAssetsToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// filteredAssetsToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.filteredAssetsToolStripMenuItem.Name = "filteredAssetsToolStripMenuItem";
|
||||||
|
this.filteredAssetsToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
|
||||||
|
this.filteredAssetsToolStripMenuItem.Text = "Filtered assets";
|
||||||
|
this.filteredAssetsToolStripMenuItem.Click += new System.EventHandler(this.filteredAssetsToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// filterTypeToolStripMenuItem
|
// filterTypeToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.filterTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.filterTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
@ -896,7 +932,7 @@
|
|||||||
this.jumpToSceneHierarchyToolStripMenuItem,
|
this.jumpToSceneHierarchyToolStripMenuItem,
|
||||||
this.showOriginalFileToolStripMenuItem});
|
this.showOriginalFileToolStripMenuItem});
|
||||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||||
this.contextMenuStrip1.Size = new System.Drawing.Size(335, 114);
|
this.contextMenuStrip1.Size = new System.Drawing.Size(335, 92);
|
||||||
//
|
//
|
||||||
// exportSelectedAssetsToolStripMenuItem
|
// exportSelectedAssetsToolStripMenuItem
|
||||||
//
|
//
|
||||||
@ -1057,6 +1093,10 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsmergeToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsmergeToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem exportRawToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem allAssetsToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem selectedAssetsToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem filteredAssetsToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1369,41 +1369,6 @@ namespace AssetStudioGUI
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ExportAssets_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (exportableAssets.Count > 0)
|
|
||||||
{
|
|
||||||
var saveFolderDialog1 = new OpenFolderDialog();
|
|
||||||
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
|
|
||||||
{
|
|
||||||
timer.Stop();
|
|
||||||
|
|
||||||
List<AssetItem> toExportAssets = null;
|
|
||||||
switch (((ToolStripItem)sender).Name)
|
|
||||||
{
|
|
||||||
case "exportAllAssetsMenuItem":
|
|
||||||
toExportAssets = exportableAssets;
|
|
||||||
break;
|
|
||||||
case "exportFilteredAssetsMenuItem":
|
|
||||||
toExportAssets = visibleAssets;
|
|
||||||
break;
|
|
||||||
case "exportSelectedAssetsMenuItem":
|
|
||||||
toExportAssets = new List<AssetItem>(assetListView.SelectedIndices.Count);
|
|
||||||
foreach (int i in assetListView.SelectedIndices)
|
|
||||||
{
|
|
||||||
toExportAssets.Add((AssetItem)assetListView.Items[i]);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ExportAssets(saveFolderDialog1.Folder, toExportAssets, assetGroupOptions.SelectedIndex, openAfterExport.Checked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
StatusStripUpdate("No exportable assets loaded");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetProgressBarValue(int value)
|
private void SetProgressBarValue(int value)
|
||||||
{
|
{
|
||||||
if (InvokeRequired)
|
if (InvokeRequired)
|
||||||
@ -1740,12 +1705,7 @@ namespace AssetStudioGUI
|
|||||||
|
|
||||||
private void exportSelectedAssetsToolStripMenuItem_Click(object sender, EventArgs e)
|
private void exportSelectedAssetsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var saveFolderDialog1 = new OpenFolderDialog();
|
ExportAssets(2, false);
|
||||||
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
|
|
||||||
{
|
|
||||||
timer.Stop();
|
|
||||||
ExportAssets(saveFolderDialog1.Folder, GetSelectedAssets(), assetGroupOptions.SelectedIndex, openAfterExport.Checked);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showOriginalFileToolStripMenuItem_Click(object sender, EventArgs e)
|
private void showOriginalFileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -1857,6 +1817,21 @@ namespace AssetStudioGUI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void allAssetsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ExportAssets(1, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void selectedAssetsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ExportAssets(2, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void filteredAssetsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ExportAssets(3, true);
|
||||||
|
}
|
||||||
|
|
||||||
private void jumpToSceneHierarchyToolStripMenuItem_Click(object sender, EventArgs e)
|
private void jumpToSceneHierarchyToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var selectasset = (AssetItem)assetListView.Items[assetListView.SelectedIndices[0]];
|
var selectasset = (AssetItem)assetListView.Items[assetListView.SelectedIndices[0]];
|
||||||
@ -1867,6 +1842,21 @@ namespace AssetStudioGUI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void exportAllAssetsMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ExportAssets(1, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void exportSelectedAssetsMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ExportAssets(2, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void exportFilteredAssetsMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ExportAssets(3, false);
|
||||||
|
}
|
||||||
|
|
||||||
private void exportAllObjectssplitToolStripMenuItem1_Click(object sender, EventArgs e)
|
private void exportAllObjectssplitToolStripMenuItem1_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (sceneTreeView.Nodes.Count > 0)
|
if (sceneTreeView.Nodes.Count > 0)
|
||||||
@ -1886,7 +1876,7 @@ namespace AssetStudioGUI
|
|||||||
|
|
||||||
private List<AssetItem> GetSelectedAssets()
|
private List<AssetItem> GetSelectedAssets()
|
||||||
{
|
{
|
||||||
var selectedAssets = new List<AssetItem>();
|
var selectedAssets = new List<AssetItem>(assetListView.SelectedIndices.Count);
|
||||||
foreach (int index in assetListView.SelectedIndices)
|
foreach (int index in assetListView.SelectedIndices)
|
||||||
{
|
{
|
||||||
selectedAssets.Add((AssetItem)assetListView.Items[index]);
|
selectedAssets.Add((AssetItem)assetListView.Items[index]);
|
||||||
@ -1923,5 +1913,36 @@ namespace AssetStudioGUI
|
|||||||
assetListView.VirtualListSize = visibleAssets.Count;
|
assetListView.VirtualListSize = visibleAssets.Count;
|
||||||
assetListView.EndUpdate();
|
assetListView.EndUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ExportAssets(int type, bool raw)
|
||||||
|
{
|
||||||
|
if (exportableAssets.Count > 0)
|
||||||
|
{
|
||||||
|
var saveFolderDialog1 = new OpenFolderDialog();
|
||||||
|
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
|
||||||
|
{
|
||||||
|
timer.Stop();
|
||||||
|
|
||||||
|
List<AssetItem> toExportAssets = null;
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case 1: //All Assets
|
||||||
|
toExportAssets = exportableAssets;
|
||||||
|
break;
|
||||||
|
case 2: //Selected Assets
|
||||||
|
toExportAssets = GetSelectedAssets();
|
||||||
|
break;
|
||||||
|
case 3: //Filtered Assets
|
||||||
|
toExportAssets = visibleAssets;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Studio.ExportAssets(saveFolderDialog1.Folder, toExportAssets, assetGroupOptions.SelectedIndex, openAfterExport.Checked, raw);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StatusStripUpdate("No exportable assets loaded");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,6 +120,9 @@
|
|||||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>312, 17</value>
|
<value>312, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>432, 17</value>
|
||||||
|
</metadata>
|
||||||
<data name="fontPreviewBox.Text" xml:space="preserve">
|
<data name="fontPreviewBox.Text" xml:space="preserve">
|
||||||
<value>abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWYZ
|
<value>abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWYZ
|
||||||
1234567890.:,;'\"(!?)+-*/=
|
1234567890.:,;'\"(!?)+-*/=
|
||||||
@ -138,9 +141,6 @@ The quick brown fox jumps over the lazy dog. 1234567890
|
|||||||
|
|
||||||
The quick brown fox jumps over the lazy dog. 1234567890</value>
|
The quick brown fox jumps over the lazy dog. 1234567890</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>432, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>553, 17</value>
|
<value>553, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -355,7 +355,7 @@ namespace AssetStudioGUI
|
|||||||
return Path.GetInvalidFileNameChars().Aggregate(str, (current, c) => current.Replace(c, '_'));
|
return Path.GetInvalidFileNameChars().Aggregate(str, (current, c) => current.Replace(c, '_'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ExportAssets(string savePath, List<AssetItem> toExportAssets, int assetGroupSelectedIndex, bool openAfterExport)
|
public static void ExportAssets(string savePath, List<AssetItem> toExportAssets, int assetGroupSelectedIndex, bool openAfterExport, bool raw)
|
||||||
{
|
{
|
||||||
ThreadPool.QueueUserWorkItem(state =>
|
ThreadPool.QueueUserWorkItem(state =>
|
||||||
{
|
{
|
||||||
@ -379,6 +379,14 @@ namespace AssetStudioGUI
|
|||||||
Logger.Info($"Exporting {asset.TypeString}: {asset.Text}");
|
Logger.Info($"Exporting {asset.TypeString}: {asset.Text}");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (raw)
|
||||||
|
{
|
||||||
|
if (ExportRawFile(asset, exportpath))
|
||||||
|
{
|
||||||
|
exportedCount++;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
switch (asset.Type)
|
switch (asset.Type)
|
||||||
{
|
{
|
||||||
case ClassIDType.Texture2D:
|
case ClassIDType.Texture2D:
|
||||||
|
Loading…
Reference in New Issue
Block a user