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

public class LuxURPDistanceFadeDrawer : MaterialPropertyDrawer {

	public override void OnGUI (Rect position, MaterialProperty prop, string label, MaterialEditor editor) {
		
	//	Needed since Unity 2019
		EditorGUIUtility.labelWidth = 0;

		Vector2 vec2value = prop.vectorValue;
		
		vec2value.x = prop.vectorValue.x;
		vec2value.x = Mathf.Sqrt(vec2value.x);

		vec2value.y = 1.0f / vec2value.y;
		vec2value.y = Mathf.Sqrt(vec2value.y);
		vec2value.y *= 0.5f;

		GUILayout.Space(-18);
		EditorGUI.BeginChangeCheck();
		EditorGUILayout.BeginVertical();
			vec2value.x = EditorGUILayout.FloatField("Max Distance", vec2value.x);
			vec2value.y = EditorGUILayout.FloatField("Fade Range", vec2value.y);
		EditorGUILayout.EndVertical();
		if (EditorGUI.EndChangeCheck ()) {
			vec2value.x *= vec2value.x;
			vec2value.y *= 2.0f;
			vec2value.y *= vec2value.y;
		//	We use OneOver to get around the division in the shader
			vec2value.y = 1.0f / vec2value.y;
			prop.vectorValue = vec2value;
		}
		//EditorGUILayout.Vector2Field("test", prop.vectorValue);
	}
}