public Dictionary <float, string> GetDescriptions() { Dictionary <float, string> dictionary = new Dictionary <float, string>(); AnimationClipCurveInfo curveInfo = AnimationClipCurveCache.Instance.GetCurveInfo(this.m_Track.animClip); HashSet <string> hashSet = new HashSet <string>(); EditorCurveBinding[] bindings = curveInfo.bindings; for (int i = 0; i < bindings.Length; i++) { EditorCurveBinding binding = bindings[i]; string groupID = binding.GetGroupID(); if (!hashSet.Contains(groupID)) { CurveBindingGroup groupBinding = curveInfo.GetGroupBinding(groupID); string nicePropertyGroupDisplayName = AnimationWindowUtility.GetNicePropertyGroupDisplayName(binding.get_type(), binding.propertyName); float[] keyTimes = curveInfo.keyTimes; for (int j = 0; j < keyTimes.Length; j++) { float num = keyTimes[j]; float num2 = num + (float)this.m_Track.openClipTimeOffset; string text = nicePropertyGroupDisplayName + " : " + groupBinding.GetDescription(num2); if (dictionary.ContainsKey(num2)) { Dictionary <float, string> dictionary2; float key; (dictionary2 = dictionary)[key = num2] = dictionary2[key] + '\n' + text; } else { dictionary.Add(num2, text); } } hashSet.Add(groupID); } } return(dictionary); }