diff --git a/AssetStudioCLI/Options/CLIOptions.cs b/AssetStudioCLI/Options/CLIOptions.cs
index a839f81..aa16b28 100644
--- a/AssetStudioCLI/Options/CLIOptions.cs
+++ b/AssetStudioCLI/Options/CLIOptions.cs
@@ -448,7 +448,7 @@ namespace AssetStudioCLI.Options
(
optionDefaultValue: false,
optionName: "--avoid-typetree-loading",
- optionDescription: "(Flag) If specified, AssetStudio will not try to load assets using their type tree\n",
+ optionDescription: "(Flag) If specified, AssetStudio will not try to parse assets at load time\nusing their type tree\n",
optionExample: "",
optionHelpGroup: HelpGroups.Advanced,
isFlag: true
@@ -1145,7 +1145,7 @@ namespace AssetStudioCLI.Options
{
sb.AppendLine($"# Custom Compression Type: {o_customCompressionType}");
}
- sb.AppendLine($"# Load Assets via Typetree: {!f_avoidLoadingViaTypetree.Value}");
+ sb.AppendLine($"# Parse Assets Using TypeTree: {!f_avoidLoadingViaTypetree.Value}");
sb.AppendLine($"# Input Path: \"{inputPath}\"");
switch (o_workMode.Value)
{
diff --git a/AssetStudioGUI/AssetStudioGUIForm.Designer.cs b/AssetStudioGUI/AssetStudioGUIForm.Designer.cs
index 476d7e3..ca2db88 100644
--- a/AssetStudioGUI/AssetStudioGUIForm.Designer.cs
+++ b/AssetStudioGUI/AssetStudioGUIForm.Designer.cs
@@ -39,6 +39,8 @@
this.extractFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.displayAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.useAssetLoadingViaTypetreeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.assetLoadingToolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
this.enablePreview = new System.Windows.Forms.ToolStripMenuItem();
this.displayInfo = new System.Windows.Forms.ToolStripMenuItem();
this.buildTreeStructureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -88,7 +90,6 @@
this.showConsoleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripMenuItem();
this.writeLogToFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.disableAssetLoadingViaTypetreeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportClassStructuresMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
@@ -246,6 +247,8 @@
//
this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.displayAll,
+ this.useAssetLoadingViaTypetreeToolStripMenuItem,
+ this.assetLoadingToolStripSeparator,
this.enablePreview,
this.displayInfo,
this.buildTreeStructureToolStripMenuItem,
@@ -260,19 +263,36 @@
//
this.displayAll.CheckOnClick = true;
this.displayAll.Name = "displayAll";
- this.displayAll.Size = new System.Drawing.Size(213, 22);
+ this.displayAll.Size = new System.Drawing.Size(241, 22);
this.displayAll.Text = "Display all assets";
this.displayAll.ToolTipText = "Check this option will display all types assets. Not extractable assets can expor" +
"t the RAW file.";
this.displayAll.CheckedChanged += new System.EventHandler(this.displayAll_CheckedChanged);
//
+ // useAssetLoadingViaTypetreeToolStripMenuItem
+ //
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.Checked = true;
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.CheckOnClick = true;
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.Name = "useAssetLoadingViaTypetreeToolStripMenuItem";
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.Text = "Parse assets using their typetree";
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.ToolTipText = "(Applies to assets with typetree included). Slower but more correct parsing. Only" +
+ " for Texture2D and AnimationClip assets for now.";
+ this.useAssetLoadingViaTypetreeToolStripMenuItem.CheckedChanged += new System.EventHandler(this.useAssetLoadingViaTypetreeToolStripMenuItem_CheckedChanged);
+ //
+ // assetLoadingToolStripSeparator
+ //
+ this.assetLoadingToolStripSeparator.Name = "assetLoadingToolStripSeparator";
+ this.assetLoadingToolStripSeparator.Size = new System.Drawing.Size(238, 6);
+ //
// enablePreview
//
this.enablePreview.Checked = true;
this.enablePreview.CheckOnClick = true;
this.enablePreview.CheckState = System.Windows.Forms.CheckState.Checked;
this.enablePreview.Name = "enablePreview";
- this.enablePreview.Size = new System.Drawing.Size(213, 22);
+ this.enablePreview.Size = new System.Drawing.Size(241, 22);
this.enablePreview.Text = "Enable preview";
this.enablePreview.ToolTipText = "Toggle the loading and preview of readable assets, such as images, sounds, text, " +
"etc.\r\nDisable preview if you have performance or compatibility issues.";
@@ -284,7 +304,7 @@
this.displayInfo.CheckOnClick = true;
this.displayInfo.CheckState = System.Windows.Forms.CheckState.Checked;
this.displayInfo.Name = "displayInfo";
- this.displayInfo.Size = new System.Drawing.Size(213, 22);
+ this.displayInfo.Size = new System.Drawing.Size(241, 22);
this.displayInfo.Text = "Display asset information";
this.displayInfo.ToolTipText = "Toggle the overlay that shows information about each asset, eg. image size, forma" +
"t, audio bitrate, etc.";
@@ -296,7 +316,7 @@
this.buildTreeStructureToolStripMenuItem.CheckOnClick = true;
this.buildTreeStructureToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.buildTreeStructureToolStripMenuItem.Name = "buildTreeStructureToolStripMenuItem";
- this.buildTreeStructureToolStripMenuItem.Size = new System.Drawing.Size(213, 22);
+ this.buildTreeStructureToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
this.buildTreeStructureToolStripMenuItem.Text = "Build tree structure";
this.buildTreeStructureToolStripMenuItem.ToolTipText = "You can disable tree structure building if you don\'t use the Scene Hierarchy tab";
this.buildTreeStructureToolStripMenuItem.CheckedChanged += new System.EventHandler(this.buildTreeStructureToolStripMenuItem_CheckedChanged);
@@ -307,7 +327,7 @@
this.customCompressionZstdToolStripMenuItem,
this.customCompressionLZ4ToolStripMenuItem});
this.customCompressionTypeToolStripMenuItem.Name = "customCompressionTypeToolStripMenuItem";
- this.customCompressionTypeToolStripMenuItem.Size = new System.Drawing.Size(213, 22);
+ this.customCompressionTypeToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
this.customCompressionTypeToolStripMenuItem.Text = "Custom compression type";
//
// customCompressionZstdToolStripMenuItem
@@ -316,7 +336,7 @@
this.customCompressionZstdToolStripMenuItem.CheckOnClick = true;
this.customCompressionZstdToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.customCompressionZstdToolStripMenuItem.Name = "customCompressionZstdToolStripMenuItem";
- this.customCompressionZstdToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.customCompressionZstdToolStripMenuItem.Size = new System.Drawing.Size(130, 22);
this.customCompressionZstdToolStripMenuItem.Text = "Zstd";
this.customCompressionZstdToolStripMenuItem.ToolTipText = "If selected, Zstd-decompression will be used for assets with custom compression t" +
"ype";
@@ -326,7 +346,7 @@
//
this.customCompressionLZ4ToolStripMenuItem.CheckOnClick = true;
this.customCompressionLZ4ToolStripMenuItem.Name = "customCompressionLZ4ToolStripMenuItem";
- this.customCompressionLZ4ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.customCompressionLZ4ToolStripMenuItem.Size = new System.Drawing.Size(130, 22);
this.customCompressionLZ4ToolStripMenuItem.Text = "Lz4/Lz4HC";
this.customCompressionLZ4ToolStripMenuItem.ToolTipText = "If selected, Lz4-decompression will be used for assets with custom compression ty" +
"pe";
@@ -337,7 +357,7 @@
this.toolStripMenuItem14.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.specifyUnityVersion});
this.toolStripMenuItem14.Name = "toolStripMenuItem14";
- this.toolStripMenuItem14.Size = new System.Drawing.Size(213, 22);
+ this.toolStripMenuItem14.Size = new System.Drawing.Size(241, 22);
this.toolStripMenuItem14.Text = "Specify Unity version";
this.toolStripMenuItem14.DropDownClosed += new System.EventHandler(this.specifyUnityVersion_Close);
//
@@ -352,7 +372,7 @@
// showExpOpt
//
this.showExpOpt.Name = "showExpOpt";
- this.showExpOpt.Size = new System.Drawing.Size(213, 22);
+ this.showExpOpt.Size = new System.Drawing.Size(241, 22);
this.showExpOpt.Text = "Export options";
this.showExpOpt.Click += new System.EventHandler(this.showExpOpt_Click);
//
@@ -640,7 +660,6 @@
this.showConsoleToolStripMenuItem,
this.toolStripMenuItem15,
this.writeLogToFileToolStripMenuItem,
- this.disableAssetLoadingViaTypetreeToolStripMenuItem,
this.exportClassStructuresMenuItem});
this.debugMenuItem.Name = "debugMenuItem";
this.debugMenuItem.Size = new System.Drawing.Size(54, 20);
@@ -672,14 +691,6 @@
this.writeLogToFileToolStripMenuItem.Text = "Write log to file";
this.writeLogToFileToolStripMenuItem.CheckedChanged += new System.EventHandler(this.writeLogToFileToolStripMenuItem_CheckedChanged);
//
- // disableAssetLoadingViaTypetreeToolStripMenuItem
- //
- this.disableAssetLoadingViaTypetreeToolStripMenuItem.CheckOnClick = true;
- this.disableAssetLoadingViaTypetreeToolStripMenuItem.Name = "disableAssetLoadingViaTypetreeToolStripMenuItem";
- this.disableAssetLoadingViaTypetreeToolStripMenuItem.Size = new System.Drawing.Size(288, 22);
- this.disableAssetLoadingViaTypetreeToolStripMenuItem.Text = "Disable asset loading via typetree";
- this.disableAssetLoadingViaTypetreeToolStripMenuItem.Click += new System.EventHandler(this.disableAssetLoadingViaTypetreeToolStripMenuItem_Click);
- //
// exportClassStructuresMenuItem
//
this.exportClassStructuresMenuItem.Name = "exportClassStructuresMenuItem";
@@ -1590,7 +1601,8 @@
private System.Windows.Forms.ToolStripMenuItem customCompressionTypeToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem customCompressionZstdToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem customCompressionLZ4ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem disableAssetLoadingViaTypetreeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem useAssetLoadingViaTypetreeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator assetLoadingToolStripSeparator;
}
}
diff --git a/AssetStudioGUI/AssetStudioGUIForm.cs b/AssetStudioGUI/AssetStudioGUIForm.cs
index f07b7b5..4dc8d3e 100644
--- a/AssetStudioGUI/AssetStudioGUIForm.cs
+++ b/AssetStudioGUI/AssetStudioGUIForm.cs
@@ -135,6 +135,7 @@ namespace AssetStudioGUI
enablePreview.Checked = Properties.Settings.Default.enablePreview;
showConsoleToolStripMenuItem.Checked = Properties.Settings.Default.showConsole;
buildTreeStructureToolStripMenuItem.Checked = Properties.Settings.Default.buildTreeStructure;
+ useAssetLoadingViaTypetreeToolStripMenuItem.Checked = Properties.Settings.Default.useTypetreeLoading;
FMODinit();
listSearchFilterMode.SelectedIndex = 0;
@@ -2308,9 +2309,12 @@ namespace AssetStudioGUI
assetsManager.ZstdEnabled = customCompressionZstdToolStripMenuItem.Checked;
}
- private void disableAssetLoadingViaTypetreeToolStripMenuItem_Click(object sender, EventArgs e)
+ private void useAssetLoadingViaTypetreeToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
{
- assetsManager.LoadingViaTypeTreeEnabled = !disableAssetLoadingViaTypetreeToolStripMenuItem.Checked;
+ var isEnabled = useAssetLoadingViaTypetreeToolStripMenuItem.Checked;
+ assetsManager.LoadingViaTypeTreeEnabled = isEnabled;
+ Properties.Settings.Default.useTypetreeLoading = isEnabled;
+ Properties.Settings.Default.Save();
}
#region FMOD
diff --git a/AssetStudioGUI/Properties/Settings.Designer.cs b/AssetStudioGUI/Properties/Settings.Designer.cs
index 58d204e..d031210 100644
--- a/AssetStudioGUI/Properties/Settings.Designer.cs
+++ b/AssetStudioGUI/Properties/Settings.Designer.cs
@@ -382,5 +382,17 @@ namespace AssetStudioGUI.Properties {
this["parallelExportCount"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("True")]
+ public bool useTypetreeLoading {
+ get {
+ return ((bool)(this["useTypetreeLoading"]));
+ }
+ set {
+ this["useTypetreeLoading"] = value;
+ }
+ }
}
}
diff --git a/AssetStudioGUI/Properties/Settings.settings b/AssetStudioGUI/Properties/Settings.settings
index 183b71d..4ecc1de 100644
--- a/AssetStudioGUI/Properties/Settings.settings
+++ b/AssetStudioGUI/Properties/Settings.settings
@@ -92,5 +92,8 @@
-1
+
+ True
+
\ No newline at end of file