﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

namespace CustomTimeline
{
	[CustomEditor(typeof(SlowMotionClip))]
	public class TimeMachineClipInspector : Editor
	{
		private SerializedProperty actionProp;

		private void OnEnable()
		{
			actionProp = serializedObject.FindProperty("action");
		}

		public override void OnInspectorGUI()
		{
			//Action
			EditorGUILayout.PropertyField(actionProp);

			//change the int into an enum
			int index = actionProp.enumValueIndex;
			SlowMotionBehaviour.SlowMotionAction actionType = (SlowMotionBehaviour.SlowMotionAction)index;

			//Draws only the appropriate information based on the Action Type
			switch (actionType)
			{
                case SlowMotionBehaviour.SlowMotionAction.ContinuousSlowing:
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("markerLabel"));
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("event_Method"));
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("minTimelineSpeed"));
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("lerpSpeed"));
                    break;
                case SlowMotionBehaviour.SlowMotionAction.SlowDownAndJumpToMarker:
					EditorGUILayout.PropertyField(serializedObject.FindProperty("markerToJumpTo"));
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("event_Method"));
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("minTimelineSpeed"));
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("lerpSpeed"));
					break;

				case SlowMotionBehaviour.SlowMotionAction.Marker:
					EditorGUILayout.PropertyField(serializedObject.FindProperty("markerLabel"));
					break;
            }

			serializedObject.ApplyModifiedProperties();
		}
	}
}