mirror of
https://github.com/aelurum/AssetStudio.git
synced 2026-11-14 11:18:47 -05:00
Some refactor for customBundleOptions
This commit is contained in:
@@ -310,7 +310,7 @@ namespace AssetStudio
|
||||
|
||||
try
|
||||
{
|
||||
var bundleFile = new BundleFile(bundleReader, Options.BundleOptions);
|
||||
var bundleFile = new BundleFile(bundleReader, Options);
|
||||
isLoaded = LoadBundleFiles(bundleReader, bundleFile, originalPath);
|
||||
if (!isLoaded)
|
||||
return false;
|
||||
@@ -331,7 +331,7 @@ namespace AssetStudio
|
||||
bundleReader.FileName = $"{reader.FileName}_0x{bundleStream.Offset:X}";
|
||||
}
|
||||
Logger.Info($"[MultiBundle] Loading \"{reader.FileName}\" from offset: 0x{bundleStream.Offset:X}");
|
||||
bundleFile = new BundleFile(bundleReader, Options.BundleOptions, isMultiBundle: true);
|
||||
bundleFile = new BundleFile(bundleReader, Options, isMultiBundle: true);
|
||||
isLoaded = LoadBundleFiles(bundleReader, bundleFile, originalPath ?? reader.FullPath);
|
||||
}
|
||||
return isLoaded;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using System;
|
||||
using AssetStudio.CustomOptions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using AssetStudio.CustomOptions;
|
||||
|
||||
namespace AssetStudio
|
||||
{
|
||||
@@ -45,7 +45,7 @@ namespace AssetStudio
|
||||
public class BundleFile
|
||||
{
|
||||
public readonly bool IsDataAfterBundle;
|
||||
private readonly CustomBundleOptions _bundleOptions;
|
||||
private readonly ImportOptions.CustomBundleOptions _bundleOptions;
|
||||
|
||||
public class Header
|
||||
{
|
||||
@@ -80,9 +80,9 @@ namespace AssetStudio
|
||||
|
||||
public List<StreamFile> fileList;
|
||||
|
||||
public BundleFile(FileReader reader, CustomBundleOptions bundleOptions, bool isMultiBundle = false)
|
||||
public BundleFile(FileReader reader, ImportOptions importOptions, bool isMultiBundle = false)
|
||||
{
|
||||
_bundleOptions = bundleOptions;
|
||||
_bundleOptions = importOptions.BundleOptions;
|
||||
m_Header = new Header();
|
||||
m_Header.signature = reader.ReadStringToNull();
|
||||
m_Header.version = reader.ReadUInt32();
|
||||
@@ -115,7 +115,7 @@ namespace AssetStudio
|
||||
IsDataAfterBundle = streamSize - bundleSize > 200;
|
||||
|
||||
var unityVer = m_Header.unityRevision;
|
||||
var customUnityVer = _bundleOptions.Options.CustomUnityVersion;
|
||||
var customUnityVer = importOptions.CustomUnityVersion;
|
||||
if (customUnityVer != null)
|
||||
{
|
||||
if (!unityVer.IsStripped && customUnityVer != unityVer)
|
||||
|
||||
@@ -1,40 +1,38 @@
|
||||
namespace AssetStudio.CustomOptions
|
||||
{
|
||||
public class CustomBundleOptions
|
||||
public partial class ImportOptions
|
||||
{
|
||||
private CompressionType _customBlockCompression = CompressionType.Auto;
|
||||
private CompressionType _customBlockInfoCompression = CompressionType.Auto;
|
||||
private bool _decompressToDisk;
|
||||
|
||||
public ImportOptions Options;
|
||||
|
||||
public CompressionType CustomBlockCompression
|
||||
public sealed class CustomBundleOptions
|
||||
{
|
||||
get => _customBlockCompression;
|
||||
set => _customBlockCompression = SetOption(nameof(CustomBlockCompression), value);
|
||||
}
|
||||
public CompressionType CustomBlockInfoCompression
|
||||
{
|
||||
get => _customBlockInfoCompression;
|
||||
set => _customBlockInfoCompression = SetOption(nameof(CustomBlockInfoCompression), value);
|
||||
}
|
||||
public bool DecompressToDisk
|
||||
{
|
||||
get => _decompressToDisk;
|
||||
set => _decompressToDisk = SetOption(nameof(DecompressToDisk), value);
|
||||
}
|
||||
private CompressionType _customBlockCompression = CompressionType.Auto;
|
||||
private CompressionType _customBlockInfoCompression = CompressionType.Auto;
|
||||
private bool _decompressToDisk;
|
||||
|
||||
public CustomBundleOptions() { }
|
||||
public CompressionType CustomBlockCompression
|
||||
{
|
||||
get => _customBlockCompression;
|
||||
set => _customBlockCompression = SetOption(nameof(CustomBlockCompression), value);
|
||||
}
|
||||
|
||||
public CustomBundleOptions(ImportOptions importOptions)
|
||||
{
|
||||
Options = importOptions;
|
||||
}
|
||||
public CompressionType CustomBlockInfoCompression
|
||||
{
|
||||
get => _customBlockInfoCompression;
|
||||
set => _customBlockInfoCompression = SetOption(nameof(CustomBlockInfoCompression), value);
|
||||
}
|
||||
|
||||
private static T SetOption<T>(string option, T value)
|
||||
{
|
||||
Logger.Info($"- {option}: {value}");
|
||||
return value;
|
||||
public bool DecompressToDisk
|
||||
{
|
||||
get => _decompressToDisk;
|
||||
set => _decompressToDisk = SetOption(nameof(DecompressToDisk), value);
|
||||
}
|
||||
|
||||
public CustomBundleOptions() { }
|
||||
|
||||
private static T SetOption<T>(string option, T value)
|
||||
{
|
||||
Logger.Info($"- {option}: {value}");
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AssetStudio.CustomOptions
|
||||
{
|
||||
public class ImportOptions
|
||||
public partial class ImportOptions
|
||||
{
|
||||
private static JsonSerializerOptions jsonOptions;
|
||||
private static string fileName = "ImportOptions";
|
||||
@@ -28,7 +28,7 @@ namespace AssetStudio.CustomOptions
|
||||
|
||||
public ImportOptions()
|
||||
{
|
||||
BundleOptions = new CustomBundleOptions(this);
|
||||
BundleOptions = new CustomBundleOptions();
|
||||
CustomUnityVersion = null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user