UnityEditor.ProceduralMaterialInspector.InputsGUI C# (CSharp) Method

InputsGUI() public method

public InputsGUI ( ) : void
return void
        public void InputsGUI()
        {
            List<ProceduralPropertyDescription> list2;
            List<ProceduralPropertyDescription> list5;
            List<string> list = new List<string>();
            Dictionary<string, List<ProceduralPropertyDescription>> dictionary = new Dictionary<string, List<ProceduralPropertyDescription>>();
            Dictionary<string, List<ProceduralPropertyDescription>> dictionary2 = new Dictionary<string, List<ProceduralPropertyDescription>>();
            ProceduralPropertyDescription[] proceduralPropertyDescriptions = m_Material.GetProceduralPropertyDescriptions();
            ProceduralPropertyDescription hInput = null;
            ProceduralPropertyDescription sInput = null;
            ProceduralPropertyDescription lInput = null;
            foreach (ProceduralPropertyDescription description4 in proceduralPropertyDescriptions)
            {
                if (description4.name == "$randomseed")
                {
                    this.InputSeedGUI(description4);
                }
                else if (((description4.name.Length <= 0) || (description4.name[0] != '$')) && m_Material.IsProceduralPropertyVisible(description4.name))
                {
                    string group = description4.group;
                    if ((group != string.Empty) && !list.Contains(group))
                    {
                        list.Add(group);
                    }
                    if (((description4.name == "Hue_Shift") && (description4.type == ProceduralPropertyType.Float)) && (group == string.Empty))
                    {
                        hInput = description4;
                    }
                    if (((description4.name == "Saturation") && (description4.type == ProceduralPropertyType.Float)) && (group == string.Empty))
                    {
                        sInput = description4;
                    }
                    if (((description4.name == "Luminosity") && (description4.type == ProceduralPropertyType.Float)) && (group == string.Empty))
                    {
                        lInput = description4;
                    }
                    if (description4.type == ProceduralPropertyType.Texture)
                    {
                        if (!dictionary2.ContainsKey(group))
                        {
                            dictionary2.Add(group, new List<ProceduralPropertyDescription>());
                        }
                        dictionary2[group].Add(description4);
                    }
                    else
                    {
                        if (!dictionary.ContainsKey(group))
                        {
                            dictionary.Add(group, new List<ProceduralPropertyDescription>());
                        }
                        dictionary[group].Add(description4);
                    }
                }
            }
            bool flag = false;
            if (((hInput != null) && (sInput != null)) && (lInput != null))
            {
                flag = true;
            }
            if (dictionary.TryGetValue(string.Empty, out list2))
            {
                foreach (ProceduralPropertyDescription description5 in list2)
                {
                    if (!flag || (((description5 != hInput) && (description5 != sInput)) && (description5 != lInput)))
                    {
                        this.InputGUI(description5);
                    }
                }
            }
            foreach (string str2 in list)
            {
                ProceduralMaterial target = base.target as ProceduralMaterial;
                string key = target.name + str2;
                GUILayout.Space(5f);
                bool @bool = EditorPrefs.GetBool(key, true);
                EditorGUI.BeginChangeCheck();
                @bool = EditorGUILayout.Foldout(@bool, str2, true);
                if (EditorGUI.EndChangeCheck())
                {
                    EditorPrefs.SetBool(key, @bool);
                }
                if (@bool)
                {
                    List<ProceduralPropertyDescription> list3;
                    List<ProceduralPropertyDescription> list4;
                    EditorGUI.indentLevel++;
                    if (dictionary.TryGetValue(str2, out list3))
                    {
                        foreach (ProceduralPropertyDescription description6 in list3)
                        {
                            this.InputGUI(description6);
                        }
                    }
                    if (dictionary2.TryGetValue(str2, out list4))
                    {
                        GUILayout.Space(2f);
                        foreach (ProceduralPropertyDescription description7 in list4)
                        {
                            this.InputGUI(description7);
                        }
                    }
                    EditorGUI.indentLevel--;
                }
            }
            if (flag)
            {
                this.InputHSLGUI(hInput, sInput, lInput);
            }
            if (dictionary2.TryGetValue(string.Empty, out list5))
            {
                GUILayout.Space(5f);
                foreach (ProceduralPropertyDescription description8 in list5)
                {
                    this.InputGUI(description8);
                }
            }
        }