- [Core] Fix bug with loading some bundles from ZIP file.
- [CLI] added new options.
This commit is contained in:
@@ -374,6 +374,7 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
splitStream.Seek(0, SeekOrigin.Begin);
|
splitStream.Seek(0, SeekOrigin.Begin);
|
||||||
FileReader entryReader = new FileReader(basePath, splitStream);
|
FileReader entryReader = new FileReader(basePath, splitStream);
|
||||||
|
entryReader = entryReader.PreProcessing(Game);
|
||||||
LoadFile(entryReader);
|
LoadFile(entryReader);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace AssetStudio
|
|||||||
serializedType = reader.serializedType;
|
serializedType = reader.serializedType;
|
||||||
byteSize = reader.byteSize;
|
byteSize = reader.byteSize;
|
||||||
|
|
||||||
Logger.Verbose($"Attempting to read object {type} with {m_PathID} in file {assetsFile.fileName}, starting from offset 0x{reader.byteStart:X8} with expected size of 0x{byteSize:X8} !!");
|
Logger.Verbose($"Attempting to read object {type} with {m_PathID} in file {assetsFile.fileName}, starting from offset 0x{reader.byteStart:X8} with size of 0x{byteSize:X8} !!");
|
||||||
|
|
||||||
if (platform == BuildTarget.NoTarget)
|
if (platform == BuildTarget.NoTarget)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
<add key="exportAllUvsAsDiffuseMaps" value="False" />
|
<add key="exportAllUvsAsDiffuseMaps" value="False" />
|
||||||
<add key="disableShader" value="False" />
|
<add key="disableShader" value="False" />
|
||||||
<add key="disableRenderer" value="False" />
|
<add key="disableRenderer" value="False" />
|
||||||
|
<add key="disableAnimationClip" value="False" />
|
||||||
|
<add key="enableFileLogging" value="False" />
|
||||||
<add key="minimalAssetMap" value="True" />
|
<add key="minimalAssetMap" value="True" />
|
||||||
</appSettings>
|
</appSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -22,6 +22,7 @@ namespace AssetStudioCLI
|
|||||||
var rootCommand = new RootCommand()
|
var rootCommand = new RootCommand()
|
||||||
{
|
{
|
||||||
optionsBinder.Silent,
|
optionsBinder.Silent,
|
||||||
|
optionsBinder.Verbose,
|
||||||
optionsBinder.TypeFilter,
|
optionsBinder.TypeFilter,
|
||||||
optionsBinder.NameFilter,
|
optionsBinder.NameFilter,
|
||||||
optionsBinder.ContainerFilter,
|
optionsBinder.ContainerFilter,
|
||||||
@@ -47,6 +48,7 @@ namespace AssetStudioCLI
|
|||||||
public class Options
|
public class Options
|
||||||
{
|
{
|
||||||
public bool Silent { get; set; }
|
public bool Silent { get; set; }
|
||||||
|
public bool Verbose { get; set; }
|
||||||
public ClassIDType[] TypeFilter { get; set; }
|
public ClassIDType[] TypeFilter { get; set; }
|
||||||
public Regex[] NameFilter { get; set; }
|
public Regex[] NameFilter { get; set; }
|
||||||
public Regex[] ContainerFilter { get; set; }
|
public Regex[] ContainerFilter { get; set; }
|
||||||
@@ -67,6 +69,7 @@ namespace AssetStudioCLI
|
|||||||
public class OptionsBinder : BinderBase<Options>
|
public class OptionsBinder : BinderBase<Options>
|
||||||
{
|
{
|
||||||
public readonly Option<bool> Silent;
|
public readonly Option<bool> Silent;
|
||||||
|
public readonly Option<bool> Verbose;
|
||||||
public readonly Option<ClassIDType[]> TypeFilter;
|
public readonly Option<ClassIDType[]> TypeFilter;
|
||||||
public readonly Option<Regex[]> NameFilter;
|
public readonly Option<Regex[]> NameFilter;
|
||||||
public readonly Option<Regex[]> ContainerFilter;
|
public readonly Option<Regex[]> ContainerFilter;
|
||||||
@@ -87,6 +90,7 @@ namespace AssetStudioCLI
|
|||||||
public OptionsBinder()
|
public OptionsBinder()
|
||||||
{
|
{
|
||||||
Silent = new Option<bool>("--silent", "Hide log messages.");
|
Silent = new Option<bool>("--silent", "Hide log messages.");
|
||||||
|
Verbose = new Option<bool>("--verbose", "Hide log messages.");
|
||||||
TypeFilter = new Option<ClassIDType[]>("--types", "Specify unity class type(s)") { AllowMultipleArgumentsPerToken = true, ArgumentHelpName = "Texture2D|Sprite|etc.." };
|
TypeFilter = new Option<ClassIDType[]>("--types", "Specify unity class type(s)") { AllowMultipleArgumentsPerToken = true, ArgumentHelpName = "Texture2D|Sprite|etc.." };
|
||||||
NameFilter = new Option<Regex[]>("--names", result => result.Tokens.Select(x => new Regex(x.Value, RegexOptions.IgnoreCase)).ToArray(), false, "Specify name regex filter(s).") { AllowMultipleArgumentsPerToken = true };
|
NameFilter = new Option<Regex[]>("--names", result => result.Tokens.Select(x => new Regex(x.Value, RegexOptions.IgnoreCase)).ToArray(), false, "Specify name regex filter(s).") { AllowMultipleArgumentsPerToken = true };
|
||||||
ContainerFilter = new Option<Regex[]>("--containers", result => result.Tokens.Select(x => new Regex(x.Value, RegexOptions.IgnoreCase)).ToArray(), false, "Specify container regex filter(s).") { AllowMultipleArgumentsPerToken = true };
|
ContainerFilter = new Option<Regex[]>("--containers", result => result.Tokens.Select(x => new Regex(x.Value, RegexOptions.IgnoreCase)).ToArray(), false, "Specify container regex filter(s).") { AllowMultipleArgumentsPerToken = true };
|
||||||
@@ -175,6 +179,7 @@ namespace AssetStudioCLI
|
|||||||
new()
|
new()
|
||||||
{
|
{
|
||||||
Silent = bindingContext.ParseResult.GetValueForOption(Silent),
|
Silent = bindingContext.ParseResult.GetValueForOption(Silent),
|
||||||
|
Verbose = bindingContext.ParseResult.GetValueForOption(Verbose),
|
||||||
TypeFilter = bindingContext.ParseResult.GetValueForOption(TypeFilter),
|
TypeFilter = bindingContext.ParseResult.GetValueForOption(TypeFilter),
|
||||||
NameFilter = bindingContext.ParseResult.GetValueForOption(NameFilter),
|
NameFilter = bindingContext.ParseResult.GetValueForOption(NameFilter),
|
||||||
ContainerFilter = bindingContext.ParseResult.GetValueForOption(ContainerFilter),
|
ContainerFilter = bindingContext.ParseResult.GetValueForOption(ContainerFilter),
|
||||||
|
|||||||
@@ -40,10 +40,13 @@ namespace AssetStudioCLI
|
|||||||
}
|
}
|
||||||
|
|
||||||
Studio.Game = game;
|
Studio.Game = game;
|
||||||
|
Logger.LogVerbose = o.Verbose;
|
||||||
Logger.Default = new ConsoleLogger();
|
Logger.Default = new ConsoleLogger();
|
||||||
|
Logger.FileLogging = Settings.Default.enableFileLogging;
|
||||||
AssetsHelper.Minimal = Settings.Default.minimalAssetMap;
|
AssetsHelper.Minimal = Settings.Default.minimalAssetMap;
|
||||||
Shader.Parsable = !Settings.Default.disableShader;
|
Shader.Parsable = !Settings.Default.disableShader;
|
||||||
Renderer.Parsable = !Settings.Default.disableRenderer;
|
Renderer.Parsable = !Settings.Default.disableRenderer;
|
||||||
|
AnimationClip.Parsable = !Settings.Default.disableAnimationClip;
|
||||||
assetsManager.Silent = o.Silent;
|
assetsManager.Silent = o.Silent;
|
||||||
assetsManager.Game = game;
|
assetsManager.Game = game;
|
||||||
ModelOnly = o.Model;
|
ModelOnly = o.Model;
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ namespace AssetStudioCLI.Properties {
|
|||||||
public bool exportMiHoYoBinData => AppSettings.Get("exportMiHoYoBinData", true);
|
public bool exportMiHoYoBinData => AppSettings.Get("exportMiHoYoBinData", true);
|
||||||
public bool disableShader => AppSettings.Get("disableShader", false);
|
public bool disableShader => AppSettings.Get("disableShader", false);
|
||||||
public bool disableRenderer => AppSettings.Get("disableRenderer", false);
|
public bool disableRenderer => AppSettings.Get("disableRenderer", false);
|
||||||
|
public bool disableAnimationClip => AppSettings.Get("disableAnimationClip", false);
|
||||||
|
public bool enableFileLogging => AppSettings.Get("enableFileLogging", false);
|
||||||
public bool minimalAssetMap => AppSettings.Get("minimalAssetMap", true);
|
public bool minimalAssetMap => AppSettings.Get("minimalAssetMap", true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ namespace AssetStudioCLI
|
|||||||
break;
|
break;
|
||||||
case Mesh _:
|
case Mesh _:
|
||||||
case TextAsset _:
|
case TextAsset _:
|
||||||
case AnimationClip _:
|
case AnimationClip _ when AnimationClip.Parsable:
|
||||||
case Font _:
|
case Font _:
|
||||||
case Sprite _:
|
case Sprite _:
|
||||||
case Material _:
|
case Material _:
|
||||||
|
|||||||
Reference in New Issue
Block a user