50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Gaia.FullSerializer.Internal.DirectConverters
|
|
{
|
|
public class AnimationCurve_DirectConverter : fsDirectConverter<AnimationCurve>
|
|
{
|
|
protected override fsResult DoSerialize(AnimationCurve model, Dictionary<string, fsData> serialized)
|
|
{
|
|
return fsResult.Success + SerializeMember(serialized, "keys", model.keys) + SerializeMember(serialized, "preWrapMode", model.preWrapMode) + SerializeMember(serialized, "postWrapMode", model.postWrapMode);
|
|
}
|
|
|
|
protected override fsResult DoDeserialize(Dictionary<string, fsData> data, ref AnimationCurve model)
|
|
{
|
|
fsResult success = fsResult.Success;
|
|
if (data.ContainsKey("keys"))
|
|
{
|
|
List<fsData> asList = data["keys"].AsList;
|
|
for (int i = 0; i < asList.Count; i++)
|
|
{
|
|
Dictionary<string, fsData> asDictionary = asList[i].AsDictionary;
|
|
if (!asDictionary.ContainsKey("tangentMode"))
|
|
{
|
|
break;
|
|
}
|
|
SerializeMember(asDictionary, "weightedMode", WeightedMode.None);
|
|
SerializeMember(asDictionary, "inWeight", 0f);
|
|
SerializeMember(asDictionary, "outWeight", 0f);
|
|
}
|
|
}
|
|
Keyframe[] value = model.keys;
|
|
success += DeserializeMember<Keyframe[]>(data, "keys", out value);
|
|
model.keys = value;
|
|
WrapMode value2 = model.preWrapMode;
|
|
success += DeserializeMember<WrapMode>(data, "preWrapMode", out value2);
|
|
model.preWrapMode = value2;
|
|
WrapMode value3 = model.postWrapMode;
|
|
success += DeserializeMember<WrapMode>(data, "postWrapMode", out value3);
|
|
model.postWrapMode = value3;
|
|
return success;
|
|
}
|
|
|
|
public override object CreateInstance(fsData data, Type storageType)
|
|
{
|
|
return new AnimationCurve();
|
|
}
|
|
}
|
|
}
|