public static void GUIMinMaxCurve(GUIContent label, SerializedMinMaxCurve mmCurve)
{
Rect controlRect = ModuleUI.GetControlRect(13);
Rect popupRect = ModuleUI.GetPopupRect(controlRect);
Rect rect1 = ModuleUI.SubtractPopupWidth(controlRect);
Rect position = ModuleUI.PrefixLabel(rect1, label);
MinMaxCurveState state = mmCurve.state;
switch (state)
{
case MinMaxCurveState.k_Scalar:
float a = ModuleUI.FloatDraggable(rect1, mmCurve.scalar, mmCurve.m_RemapValue, EditorGUIUtility.labelWidth);
if (!mmCurve.signedRange)
{
mmCurve.scalar.floatValue = Mathf.Max(a, 0.0f);
break;
}
break;
case MinMaxCurveState.k_TwoScalars:
Rect rect2 = position;
rect2.width = (float)(((double)position.width - 20.0) * 0.5);
float minConstant = mmCurve.minConstant;
float maxConstant = mmCurve.maxConstant;
Rect rect3 = rect2;
rect3.xMin -= 20f;
EditorGUI.BeginChangeCheck();
float num1 = ModuleUI.FloatDraggable(rect3, minConstant, mmCurve.m_RemapValue, 20f, "g5");
if (EditorGUI.EndChangeCheck())
{
mmCurve.minConstant = num1;
}
rect3.x += rect2.width + 20f;
EditorGUI.BeginChangeCheck();
float num2 = ModuleUI.FloatDraggable(rect3, maxConstant, mmCurve.m_RemapValue, 20f, "g5");
if (EditorGUI.EndChangeCheck())
{
mmCurve.maxConstant = num2;
break;
}
break;
default:
Rect ranges = !mmCurve.signedRange ? ModuleUI.kUnsignedRange : ModuleUI.kSignedRange;
SerializedProperty minCurve = state != MinMaxCurveState.k_TwoCurves ? (SerializedProperty)null : mmCurve.minCurve;
ModuleUI.GUICurveField(position, mmCurve.maxCurve, minCurve, ModuleUI.GetColor(mmCurve), ranges, new ModuleUI.CurveFieldMouseDownCallback(mmCurve.OnCurveAreaMouseDown));
break;
}
ModuleUI.GUIMMCurveStateList(popupRect, mmCurve);
}