using System; using System.Collections.Generic; using UnityEngine; namespace Gaia.FullSerializer.Internal.DirectConverters { public class AnimationCurve_DirectConverter : fsDirectConverter { protected override fsResult DoSerialize(AnimationCurve model, Dictionary serialized) { return fsResult.Success + SerializeMember(serialized, "keys", model.keys) + SerializeMember(serialized, "preWrapMode", model.preWrapMode) + SerializeMember(serialized, "postWrapMode", model.postWrapMode); } protected override fsResult DoDeserialize(Dictionary data, ref AnimationCurve model) { fsResult success = fsResult.Success; if (data.ContainsKey("keys")) { List asList = data["keys"].AsList; for (int i = 0; i < asList.Count; i++) { Dictionary 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(data, "keys", out value); model.keys = value; WrapMode value2 = model.preWrapMode; success += DeserializeMember(data, "preWrapMode", out value2); model.preWrapMode = value2; WrapMode value3 = model.postWrapMode; success += DeserializeMember(data, "postWrapMode", out value3); model.postWrapMode = value3; return success; } public override object CreateInstance(fsData data, Type storageType) { return new AnimationCurve(); } } }