using System; using System.Collections.Generic; using UnityEngine; using wf; [Serializable] public class AMRotationKey : AMKey { public bool setRotation(Vector3 rotation) { if (this.rotation != Quaternion.Euler(rotation)) { this.rotation = Quaternion.Euler(rotation); return true; } return false; } public Vector3 getRotation() { return this.rotation.eulerAngles; } public bool setRotationQuaternion(Vector4 rotation) { Quaternion rhs = new Quaternion(rotation.x, rotation.y, rotation.z, rotation.w); if (this.rotation != rhs) { this.rotation = rhs; return true; } return false; } public Vector4 getRotationQuaternion() { return new Vector4(this.rotation.x, this.rotation.y, this.rotation.z, this.rotation.w); } public override AMKey CreateClone() { AMRotationKey amrotationKey = ScriptableObject.CreateInstance(); amrotationKey.frame = this.frame; amrotationKey.rotation = this.rotation; amrotationKey.easeType = this.easeType; amrotationKey.customEase = new List(this.customEase); return amrotationKey; } public override void CreateFromStringData(string data_text) { string[] array = data_text.Split(new char[] { ':' }); if (array.Length == 0 || array[0] != "Rotation") { return; } int num = 1; this.frame = int.Parse(array[num++]); this.rotation = Parse.Quaternion(array[num++]); this.easeType = int.Parse(array[num++]); int num2 = int.Parse(array[num++]); this.customEase = new List(); for (int i = 0; i < num2; i++) { this.customEase.Add(float.Parse(array[num++])); } } public override string ToStringData() { List list = new List(); list.Add("Rotation"); list.Add(this.frame.ToString()); list.Add(this.rotation.ToString("G")); list.Add(this.easeType.ToString()); list.Add(this.customEase.Count.ToString()); foreach (float num in this.customEase) { list.Add(num.ToString()); } string text = list[0]; for (int i = 1; i < list.Count; i++) { text = text + ":" + list[i]; } return text; } public Quaternion rotation; }