Some refactor for customBundleOptions

This commit is contained in:
VaDiM
2026-01-27 02:12:29 +03:00
parent 0066d673f4
commit daf3e18bd6
6 changed files with 43 additions and 45 deletions
+2 -2
View File
@@ -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;
+7 -7
View File
@@ -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;
}
}
}
}
+2 -2
View File
@@ -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;
}