private void ShowPlayableAssetInspector()
 {
     if (this.m_SelectionInfo.selectedAssetTypesAreHomogeneous)
     {
         if (this.m_SelectedPlayableAssetsInspector != null)
         {
             foreach (ClipInspector.EditorClipSelection current in this.m_SelectionCache)
             {
                 ClipInspector.PreparePlayableAsset(current);
             }
             EditorGUI.BeginChangeCheck();
             this.m_SelectedPlayableAssetsInspector.OnInspectorGUI();
             if (EditorGUI.EndChangeCheck())
             {
                 if (TimelineWindow.IsEditingTimelineAsset(this.m_TimelineAsset) && TimelineWindow.instance.state != null)
                 {
                     TimelineWindow.instance.state.rebuildGraph = true;
                     TimelineWindow.instance.Repaint();
                 }
             }
         }
     }
 }
        private static void PreparePlayableAsset(ClipInspector.EditorClipSelection selectedItem)
        {
            if (Event.get_current().get_type() == 7)
            {
                if (selectedItem.playableAssetObject != null)
                {
                    TimelineClip clip = selectedItem.clip;
                    if (clip != null && !(clip.curves == null))
                    {
                        TimelineWindow instance = TimelineWindow.instance;
                        if (!(instance == null) && instance.state != null)
                        {
                            if (!instance.state.previewMode)
                            {
                                selectedItem.lastEvalTime = -1.0;
                            }
                            else
                            {
                                double num = instance.state.time;
                                num = clip.ToLocalTime(num);
                                if (selectedItem.lastEvalTime == num)
                                {
                                    int version = AnimationClipCurveCache.Instance.GetCurveInfo(clip.curves).version;
                                    if (version == selectedItem.lastCurveVersion)
                                    {
                                        return;
                                    }
                                    selectedItem.lastCurveVersion = version;
                                }
                                selectedItem.lastEvalTime = num;
                                AnimationClipCurveInfo curveInfo = AnimationClipCurveCache.Instance.GetCurveInfo(clip.curves);
                                if (curveInfo.bindings.Length != 0)
                                {
                                    selectedItem.playableAssetObject.Update();
                                    SerializedProperty iterator = selectedItem.playableAssetObject.GetIterator();
                                    while (iterator.NextVisible(true))
                                    {
                                        if (clip.IsParameterAnimated(iterator.get_propertyPath()))
                                        {
                                            AnimationCurve         animatedParameter = clip.GetAnimatedParameter(iterator.get_propertyPath());
                                            SerializedPropertyType propertyType      = iterator.get_propertyType();
                                            switch (propertyType)
                                            {
                                            case 0:
                                                iterator.set_intValue(Mathf.FloorToInt(animatedParameter.Evaluate((float)num)));
                                                continue;

                                            case 1:
                                                iterator.set_boolValue(animatedParameter.Evaluate((float)num) > 0f);
                                                continue;

                                            case 2:
                                                iterator.set_floatValue(animatedParameter.Evaluate((float)num));
                                                continue;

                                            case 3:
                                            case 5:
                                            case 6:
                                            case 7:
IL_18C:
                                                if (propertyType != 17)
                                                {
                                                    continue;
                                                }
                                                goto IL_222;

                                            case 4:
                                                ClipInspector.SetAnimatedValue(clip, iterator, "r", num);
                                                ClipInspector.SetAnimatedValue(clip, iterator, "g", num);
                                                ClipInspector.SetAnimatedValue(clip, iterator, "b", num);
                                                ClipInspector.SetAnimatedValue(clip, iterator, "a", num);
                                                continue;

                                            case 8:
                                                goto IL_248;

                                            case 9:
                                                goto IL_235;

                                            case 10:
                                                goto IL_222;
                                            }
                                            goto IL_18C;
                                            continue;
IL_248:
                                            ClipInspector.SetAnimatedValue(clip, iterator, "x", num);
                                            ClipInspector.SetAnimatedValue(clip, iterator, "y", num);
                                            continue;
IL_235:
                                            ClipInspector.SetAnimatedValue(clip, iterator, "z", num);
                                            goto IL_248;
IL_222:
                                            ClipInspector.SetAnimatedValue(clip, iterator, "w", num);
                                            goto IL_235;
                                        }
                                    }
                                    selectedItem.playableAssetObject.ApplyModifiedPropertiesWithoutUndo();
                                }
                            }
                        }
                    }
                }
            }
        }