diff --git a/AssetStudio/AssetsManager.cs b/AssetStudio/AssetsManager.cs index 21878bf..0707bbf 100644 --- a/AssetStudio/AssetsManager.cs +++ b/AssetStudio/AssetsManager.cs @@ -526,7 +526,7 @@ namespace AssetStudio Progress.Reset(); foreach (var assetsFile in assetsFileList) { - JsonConverterHelper.PPtrConverter.AssetsFile = assetsFile; + JsonConverterHelper.AssetsFile = assetsFile; foreach (var objectInfo in assetsFile.m_Objects) { var objectReader = new ObjectReader(assetsFile.reader, assetsFile, objectInfo); diff --git a/AssetStudio/JsonConverterHelpers/PPtrConverter.cs b/AssetStudio/JsonConverterHelpers/PPtrConverter.cs index 9d5963f..ca5db19 100644 --- a/AssetStudio/JsonConverterHelpers/PPtrConverter.cs +++ b/AssetStudio/JsonConverterHelpers/PPtrConverter.cs @@ -6,10 +6,10 @@ namespace AssetStudio { public static partial class JsonConverterHelper { + public static SerializedFile AssetsFile { get; set; } + public class PPtrConverter : JsonConverterFactory { - public static SerializedFile AssetsFile; - public override bool CanConvert(Type typeToConvert) { if (!typeToConvert.IsGenericType) @@ -22,24 +22,17 @@ namespace AssetStudio public override JsonConverter CreateConverter(Type type, JsonSerializerOptions options) { var elementType = type.GetGenericArguments()[0]; - var converter = (JsonConverter)Activator.CreateInstance(typeof(PPtrConverter<>).MakeGenericType(elementType), AssetsFile); + var converter = (JsonConverter)Activator.CreateInstance(typeof(PPtrConverter<>).MakeGenericType(elementType)); return converter; } } private class PPtrConverter : JsonConverter> where T : Object { - private readonly SerializedFile _assetsFile; - - public PPtrConverter(SerializedFile assetsFile) - { - _assetsFile = assetsFile; - } - public override PPtr Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { var pptrObj = JsonSerializer.Deserialize>(ref reader, new JsonSerializerOptions { IncludeFields = true }); - pptrObj.AssetsFile = _assetsFile; + pptrObj.AssetsFile = AssetsFile; return pptrObj; }