Archived
forked from RDTKEditor/RDTKEditor
添加对 Core 的直接引用
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using RhythmBase.Components;
|
||||
namespace RhythmBase.Converters
|
||||
{
|
||||
internal class CharacterConverter : JsonConverter<RDCharacter>
|
||||
{
|
||||
public override void WriteJson(JsonWriter writer, RDCharacter value, JsonSerializer serializer)
|
||||
{
|
||||
writer.WriteValue(
|
||||
value.IsCustom
|
||||
? value.CustomCharacter == null
|
||||
? ""
|
||||
: $"custom:{value.CustomCharacter}"
|
||||
: value.Character.ToString());
|
||||
}
|
||||
|
||||
public override RDCharacter ReadJson(JsonReader reader, Type objectType, RDCharacter existingValue, bool hasExistingValue, JsonSerializer serializer)
|
||||
{
|
||||
string value = JToken.ReadFrom(reader).ToObject<string>()!;
|
||||
RDCharacter ReadJson;
|
||||
if (value.StartsWith("custom:"))
|
||||
{
|
||||
string name = value[7..];
|
||||
ReadJson = name;
|
||||
}
|
||||
else
|
||||
{
|
||||
ReadJson = Enum.Parse<RDCharacters>(value);
|
||||
}
|
||||
return ReadJson;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user