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

[CustomEditor(typeof(VRCatViewPositionTool)), CanEditMultipleObjects]
public class VRCatAvatarDescriptorHandles : Editor {

	VRCatViewPositionTool PosTool;

	public override void OnInspectorGUI ()
	{
		if (PosTool == null)
			PosTool = (VRCatViewPositionTool)target;
		PosTool.targetPosition = EditorGUILayout.Vector3Field ("View Position", PosTool.targetPosition);
		if (GUILayout.Button("Finalize!"))
			ApplyViewToDescriptor();
	}
	protected virtual void OnSceneGUI()
	{



		VRCatViewPositionTool VTool = (VRCatViewPositionTool)target;

		EditorGUI.BeginChangeCheck();
		Vector3 newTargetPosition = Handles.PositionHandle(VTool.targetPosition, Quaternion.identity);
		if (EditorGUI.EndChangeCheck())
		{
			Undo.RecordObject(VTool, "Change Position Of View Point");
			VTool.targetPosition = newTargetPosition;
		}
	}

	void ApplyViewToDescriptor (){
		Component AvDesc = PosTool.gameObject.GetComponent<VRCSDK2.VRC_AvatarDescriptor> ();
		if (AvDesc) {
			PosTool.gameObject.GetComponent<VRCSDK2.VRC_AvatarDescriptor> ().ViewPosition = PosTool.targetPosition;
		}
		DestroyImmediate (PosTool.GetComponent<VRCatViewPositionTool> ());
	}
}
