Option to skip container recovery.
This commit is contained in:
@@ -97,6 +97,9 @@
|
||||
<setting name="collectAnimations" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="skipContainer" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</AssetStudioGUI.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
55
AssetStudioGUI/AssetStudioGUIForm.Designer.cs
generated
55
AssetStudioGUI/AssetStudioGUIForm.Designer.cs
generated
@@ -44,9 +44,10 @@ namespace AssetStudioGUI
|
||||
this.abortStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.displayAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.enableResolveDependencies = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.enablePreview = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.displayInfo = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.enableResolveDependencies = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.skipContainer = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.specifyUnityVersion = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.toolStripMenuItem18 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -263,9 +264,10 @@ namespace AssetStudioGUI
|
||||
//
|
||||
this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.displayAll,
|
||||
this.enableResolveDependencies,
|
||||
this.enablePreview,
|
||||
this.displayInfo,
|
||||
this.enableResolveDependencies,
|
||||
this.skipContainer,
|
||||
this.toolStripMenuItem14,
|
||||
this.toolStripMenuItem18,
|
||||
this.toolStripMenuItem19,
|
||||
@@ -285,18 +287,6 @@ namespace AssetStudioGUI
|
||||
"t the RAW file.";
|
||||
this.displayAll.CheckedChanged += new System.EventHandler(this.displayAll_CheckedChanged);
|
||||
//
|
||||
// enableResolveDependencies
|
||||
//
|
||||
this.enableResolveDependencies.Checked = true;
|
||||
this.enableResolveDependencies.CheckOnClick = true;
|
||||
this.enableResolveDependencies.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.enableResolveDependencies.Name = "enableResolveDependencies";
|
||||
this.enableResolveDependencies.Size = new System.Drawing.Size(225, 22);
|
||||
this.enableResolveDependencies.Text = "Enable resolve dependencies";
|
||||
this.enableResolveDependencies.ToolTipText = "Toggle the behaviour of loading assets.\nDisable to load file(s) without its depen" +
|
||||
"dencies.";
|
||||
this.enableResolveDependencies.CheckedChanged += new System.EventHandler(this.enableResolveDependencies_CheckedChanged);
|
||||
//
|
||||
// enablePreview
|
||||
//
|
||||
this.enablePreview.Checked = true;
|
||||
@@ -321,6 +311,28 @@ namespace AssetStudioGUI
|
||||
"t, audio bitrate, etc.";
|
||||
this.displayInfo.CheckedChanged += new System.EventHandler(this.displayAssetInfo_Check);
|
||||
//
|
||||
// enableResolveDependencies
|
||||
//
|
||||
this.enableResolveDependencies.Checked = true;
|
||||
this.enableResolveDependencies.CheckOnClick = true;
|
||||
this.enableResolveDependencies.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.enableResolveDependencies.Name = "enableResolveDependencies";
|
||||
this.enableResolveDependencies.Size = new System.Drawing.Size(225, 22);
|
||||
this.enableResolveDependencies.Text = "Enable resolve dependencies";
|
||||
this.enableResolveDependencies.ToolTipText = "Toggle the behaviour of loading assets.\nDisable to load file(s) without its depen" +
|
||||
"dencies.";
|
||||
this.enableResolveDependencies.CheckedChanged += new System.EventHandler(this.enableResolveDependencies_CheckedChanged);
|
||||
//
|
||||
// skipContainer
|
||||
//
|
||||
this.skipContainer.CheckOnClick = true;
|
||||
this.skipContainer.Name = "skipContainer";
|
||||
this.skipContainer.Size = new System.Drawing.Size(225, 22);
|
||||
this.skipContainer.Text = "Skip container recovery";
|
||||
this.skipContainer.ToolTipText = "Skips the container recovery step.\nImproves loading when dealing with a large num" +
|
||||
"ber of files.";
|
||||
this.skipContainer.CheckedChanged += new System.EventHandler(this.skipContainer_CheckedChanged);
|
||||
//
|
||||
// toolStripMenuItem14
|
||||
//
|
||||
this.toolStripMenuItem14.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
@@ -533,21 +545,21 @@ namespace AssetStudioGUI
|
||||
// toolStripMenuItem7
|
||||
//
|
||||
this.toolStripMenuItem7.Name = "toolStripMenuItem7";
|
||||
this.toolStripMenuItem7.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItem7.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem7.Text = "All assets";
|
||||
this.toolStripMenuItem7.Click += new System.EventHandler(this.toolStripMenuItem7_Click);
|
||||
//
|
||||
// toolStripMenuItem8
|
||||
//
|
||||
this.toolStripMenuItem8.Name = "toolStripMenuItem8";
|
||||
this.toolStripMenuItem8.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItem8.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem8.Text = "Selected assets";
|
||||
this.toolStripMenuItem8.Click += new System.EventHandler(this.toolStripMenuItem8_Click);
|
||||
//
|
||||
// toolStripMenuItem9
|
||||
//
|
||||
this.toolStripMenuItem9.Name = "toolStripMenuItem9";
|
||||
this.toolStripMenuItem9.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItem9.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem9.Text = "Filtered assets";
|
||||
this.toolStripMenuItem9.Click += new System.EventHandler(this.toolStripMenuItem9_Click);
|
||||
//
|
||||
@@ -564,21 +576,21 @@ namespace AssetStudioGUI
|
||||
// toolStripMenuItem17
|
||||
//
|
||||
this.toolStripMenuItem17.Name = "toolStripMenuItem17";
|
||||
this.toolStripMenuItem17.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItem17.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem17.Text = "All assets";
|
||||
this.toolStripMenuItem17.Click += new System.EventHandler(this.toolStripMenuItem17_Click);
|
||||
//
|
||||
// toolStripMenuItem24
|
||||
//
|
||||
this.toolStripMenuItem24.Name = "toolStripMenuItem24";
|
||||
this.toolStripMenuItem24.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItem24.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem24.Text = "Selected assets";
|
||||
this.toolStripMenuItem24.Click += new System.EventHandler(this.toolStripMenuItem24_Click);
|
||||
//
|
||||
// toolStripMenuItem25
|
||||
//
|
||||
this.toolStripMenuItem25.Name = "toolStripMenuItem25";
|
||||
this.toolStripMenuItem25.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItem25.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem25.Text = "Filtered assets";
|
||||
this.toolStripMenuItem25.Click += new System.EventHandler(this.toolStripMenuItem25_Click);
|
||||
//
|
||||
@@ -632,7 +644,7 @@ namespace AssetStudioGUI
|
||||
this.allToolStripMenuItem.CheckOnClick = true;
|
||||
this.allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.allToolStripMenuItem.Name = "allToolStripMenuItem";
|
||||
this.allToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.allToolStripMenuItem.Size = new System.Drawing.Size(88, 22);
|
||||
this.allToolStripMenuItem.Text = "All";
|
||||
this.allToolStripMenuItem.Click += new System.EventHandler(this.typeToolStripMenuItem_Click);
|
||||
//
|
||||
@@ -1486,6 +1498,7 @@ namespace AssetStudioGUI
|
||||
private System.Windows.Forms.ToolStripMenuItem clearConsoleToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripTextBox assetMapNameTextBox;
|
||||
private System.Windows.Forms.ToolStripComboBox assetMapTypeComboBox;
|
||||
private System.Windows.Forms.ToolStripMenuItem skipContainer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@ namespace AssetStudioGUI
|
||||
displayInfo.Checked = Properties.Settings.Default.displayInfo;
|
||||
enablePreview.Checked = Properties.Settings.Default.enablePreview;
|
||||
enableResolveDependencies.Checked = Properties.Settings.Default.enableResolveDependencies;
|
||||
skipContainer.Checked = Properties.Settings.Default.skipContainer;
|
||||
assetsManager.ResolveDependencies = enableResolveDependencies.Checked;
|
||||
Renderer.Skipped = Properties.Settings.Default.skipRenderer;
|
||||
MiHoYoBinData.Exportable = Properties.Settings.Default.exportMiHoYoBinData;
|
||||
@@ -502,6 +503,13 @@ namespace AssetStudioGUI
|
||||
assetsManager.ResolveDependencies = enableResolveDependencies.Checked;
|
||||
}
|
||||
|
||||
private void skipContainer_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.skipContainer = skipContainer.Checked;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
SkipContainer = enableResolveDependencies.Checked;
|
||||
}
|
||||
private void displayAssetInfo_Check(object sender, EventArgs e)
|
||||
{
|
||||
if (displayInfo.Checked && assetInfoLabel.Text != null)
|
||||
@@ -1729,6 +1737,11 @@ namespace AssetStudioGUI
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (skipContainer.Checked)
|
||||
{
|
||||
Logger.Info("Skip container is enabled, aborting...");
|
||||
return;
|
||||
}
|
||||
optionsToolStripMenuItem.DropDown.Visible = false;
|
||||
var version = specifyAIVersion.SelectedItem.ToString();
|
||||
|
||||
@@ -1965,6 +1978,11 @@ namespace AssetStudioGUI
|
||||
|
||||
private async void loadAIToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (skipContainer.Checked)
|
||||
{
|
||||
Logger.Info("Skip container is enabled, aborting...");
|
||||
return;
|
||||
}
|
||||
miscToolStripMenuItem.DropDown.Visible = false;
|
||||
|
||||
var openFileDialog = new OpenFileDialog() { Multiselect = false, Filter = "Asset Index JSON File|*.json" };
|
||||
|
||||
@@ -60,9 +60,6 @@
|
||||
<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.:,;'\"(!?)+-*/=
|
||||
@@ -81,6 +78,9 @@ 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>
|
||||
|
||||
12
AssetStudioGUI/Properties/Settings.Designer.cs
generated
12
AssetStudioGUI/Properties/Settings.Designer.cs
generated
@@ -394,5 +394,17 @@ namespace AssetStudioGUI.Properties {
|
||||
this["collectAnimations"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool skipContainer {
|
||||
get {
|
||||
return ((bool)(this["skipContainer"]));
|
||||
}
|
||||
set {
|
||||
this["skipContainer"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,5 +95,8 @@
|
||||
<Setting Name="collectAnimations" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="skipContainer" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@@ -32,6 +32,7 @@ namespace AssetStudioGUI
|
||||
internal static class Studio
|
||||
{
|
||||
public static Game Game;
|
||||
public static bool SkipContainer = false;
|
||||
public static AssetsManager assetsManager = new AssetsManager();
|
||||
public static AssemblyLoader assemblyLoader = new AssemblyLoader();
|
||||
public static List<AssetItem> exportableAssets = new List<AssetItem>();
|
||||
@@ -316,14 +317,17 @@ namespace AssetStudioGUI
|
||||
productName = m_PlayerSettings.productName;
|
||||
break;
|
||||
case AssetBundle m_AssetBundle:
|
||||
foreach (var m_Container in m_AssetBundle.m_Container)
|
||||
if (!SkipContainer)
|
||||
{
|
||||
var preloadIndex = m_Container.Value.preloadIndex;
|
||||
var preloadSize = m_Container.Value.preloadSize;
|
||||
var preloadEnd = preloadIndex + preloadSize;
|
||||
for (int k = preloadIndex; k < preloadEnd; k++)
|
||||
foreach (var m_Container in m_AssetBundle.m_Container)
|
||||
{
|
||||
containers.Add((m_AssetBundle.m_PreloadTable[k], m_Container.Key));
|
||||
var preloadIndex = m_Container.Value.preloadIndex;
|
||||
var preloadSize = m_Container.Value.preloadSize;
|
||||
var preloadEnd = preloadIndex + preloadSize;
|
||||
for (int k = preloadIndex; k < preloadEnd; k++)
|
||||
{
|
||||
containers.Add((m_AssetBundle.m_PreloadTable[k], m_Container.Key));
|
||||
}
|
||||
}
|
||||
}
|
||||
assetItem.Text = m_AssetBundle.m_Name;
|
||||
@@ -372,24 +376,25 @@ namespace AssetStudioGUI
|
||||
else assetItem.Text = $"BinFile #{assetItem.m_PathID}";
|
||||
}
|
||||
}
|
||||
foreach ((var pptr, var container) in containers)
|
||||
if (!SkipContainer)
|
||||
{
|
||||
if (pptr.TryGet(out var obj))
|
||||
foreach ((var pptr, var container) in containers)
|
||||
{
|
||||
objectAssetItemDic[obj].Container = container;
|
||||
if (pptr.TryGet(out var obj))
|
||||
{
|
||||
objectAssetItemDic[obj].Container = container;
|
||||
}
|
||||
}
|
||||
containers.Clear();
|
||||
if (Game.Type.IsGISubGroup())
|
||||
{
|
||||
UpdateContainers();
|
||||
}
|
||||
}
|
||||
|
||||
if (Game.Type.IsGISubGroup())
|
||||
{
|
||||
UpdateContainers();
|
||||
}
|
||||
|
||||
foreach (var tmp in exportableAssets)
|
||||
{
|
||||
tmp.SetSubItems();
|
||||
}
|
||||
containers.Clear();
|
||||
|
||||
visibleAssets = exportableAssets;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user