mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
Fix PPtrConverter (#69)
This commit is contained in:
parent
9f918d0332
commit
db4eb30a27
@ -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);
|
||||
|
@ -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<T> : JsonConverter<PPtr<T>> where T : Object
|
||||
{
|
||||
private readonly SerializedFile _assetsFile;
|
||||
|
||||
public PPtrConverter(SerializedFile assetsFile)
|
||||
{
|
||||
_assetsFile = assetsFile;
|
||||
}
|
||||
|
||||
public override PPtr<T> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
var pptrObj = JsonSerializer.Deserialize<PPtr<T>>(ref reader, new JsonSerializerOptions { IncludeFields = true });
|
||||
pptrObj.AssetsFile = _assetsFile;
|
||||
pptrObj.AssetsFile = AssetsFile;
|
||||
return pptrObj;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user