2023-03-03 18:52:31 +00:00
|
|
|
using EFT;
|
|
|
|
using HarmonyLib;
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Reflection;
|
|
|
|
|
2024-05-21 19:10:17 +01:00
|
|
|
namespace SPT.SinglePlayer.Utils.Progression
|
2023-03-03 18:52:31 +00:00
|
|
|
{
|
|
|
|
public class NotesJsonConverter : JsonConverter
|
|
|
|
{
|
|
|
|
private static Type _targetType;
|
|
|
|
|
|
|
|
public NotesJsonConverter()
|
|
|
|
{
|
|
|
|
_targetType = typeof(AbstractGame).Assembly.GetTypes().First(t =>
|
|
|
|
t.GetProperty("TransactionInProcess", BindingFlags.Instance | BindingFlags.Public) != null);
|
|
|
|
}
|
|
|
|
|
|
|
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|
|
|
{
|
|
|
|
var valueToSerialize = Traverse.Create(_targetType).Field<List<object>>("Notes").Value;
|
|
|
|
serializer.Serialize(writer, $"{{\"Notes\":{JsonConvert.SerializeObject(valueToSerialize)}}}");
|
|
|
|
}
|
|
|
|
|
|
|
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|
|
|
{
|
|
|
|
throw new NotImplementedException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public override bool CanConvert(Type objectType)
|
|
|
|
{
|
|
|
|
return objectType == _targetType;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|