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.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
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.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.debugMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@ -137,6 +141,7 @@
|
||||
this.optionsToolStripMenuItem,
|
||||
this.modelToolStripMenuItem,
|
||||
this.exportToolStripMenuItem,
|
||||
this.exportRawToolStripMenuItem,
|
||||
this.filterTypeToolStripMenuItem,
|
||||
this.debugMenuItem});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
@ -346,21 +351,21 @@
|
||||
this.exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem";
|
||||
this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
||||
this.exportAllAssetsMenuItem.Text = "All assets";
|
||||
this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
||||
this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.exportAllAssetsMenuItem_Click);
|
||||
//
|
||||
// exportSelectedAssetsMenuItem
|
||||
//
|
||||
this.exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem";
|
||||
this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
||||
this.exportSelectedAssetsMenuItem.Text = "Selected assets";
|
||||
this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
||||
this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.exportSelectedAssetsMenuItem_Click);
|
||||
//
|
||||
// exportFilteredAssetsMenuItem
|
||||
//
|
||||
this.exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem";
|
||||
this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
|
||||
this.exportFilteredAssetsMenuItem.Text = "Filtered assets";
|
||||
this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
||||
this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.exportFilteredAssetsMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator3
|
||||
//
|
||||
@ -374,6 +379,37 @@
|
||||
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Text = "Export Animator with selected AnimationClip";
|
||||
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
|
||||
//
|
||||
this.filterTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
@ -896,7 +932,7 @@
|
||||
this.jumpToSceneHierarchyToolStripMenuItem,
|
||||
this.showOriginalFileToolStripMenuItem});
|
||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(335, 114);
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(335, 92);
|
||||
//
|
||||
// exportSelectedAssetsToolStripMenuItem
|
||||
//
|
||||
@ -1057,6 +1093,10 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsmergeToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem;
|
||||
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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if (InvokeRequired)
|
||||
@ -1740,12 +1705,7 @@ namespace AssetStudioGUI
|
||||
|
||||
private void exportSelectedAssetsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var saveFolderDialog1 = new OpenFolderDialog();
|
||||
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
timer.Stop();
|
||||
ExportAssets(saveFolderDialog1.Folder, GetSelectedAssets(), assetGroupOptions.SelectedIndex, openAfterExport.Checked);
|
||||
}
|
||||
ExportAssets(2, false);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (sceneTreeView.Nodes.Count > 0)
|
||||
@ -1886,7 +1876,7 @@ namespace AssetStudioGUI
|
||||
|
||||
private List<AssetItem> GetSelectedAssets()
|
||||
{
|
||||
var selectedAssets = new List<AssetItem>();
|
||||
var selectedAssets = new List<AssetItem>(assetListView.SelectedIndices.Count);
|
||||
foreach (int index in assetListView.SelectedIndices)
|
||||
{
|
||||
selectedAssets.Add((AssetItem)assetListView.Items[index]);
|
||||
@ -1923,5 +1913,36 @@ namespace AssetStudioGUI
|
||||
assetListView.VirtualListSize = visibleAssets.Count;
|
||||
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">
|
||||
<value>312, 17</value>
|
||||
</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">
|
||||
<value>abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWYZ
|
||||
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>
|
||||
</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">
|
||||
<value>553, 17</value>
|
||||
</metadata>
|
||||
|
@ -355,7 +355,7 @@ namespace AssetStudioGUI
|
||||
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 =>
|
||||
{
|
||||
@ -379,6 +379,14 @@ namespace AssetStudioGUI
|
||||
Logger.Info($"Exporting {asset.TypeString}: {asset.Text}");
|
||||
try
|
||||
{
|
||||
if (raw)
|
||||
{
|
||||
if (ExportRawFile(asset, exportpath))
|
||||
{
|
||||
exportedCount++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
switch (asset.Type)
|
||||
{
|
||||
case ClassIDType.Texture2D:
|
||||
|
Loading…
Reference in New Issue
Block a user