Esempio n. 1
0
        public bool GUIWrongShader(string uniqueID, Material value, TreeEditorHelper.NodeType nodeType)
        {
            GUIContent gUIContent  = TreeEditorHelper.GetGUIContent("TreeEditor.TreeGroup.NotATreeShader");
            GUIContent gUIContent2 = TreeEditorHelper.GetGUIContent("TreeEditor.TreeGroup.ChangeShaderButton");

            if (TreeEditorHelper.IsMaterialCorrect(value))
            {
                return(false);
            }
            List <string> recommendedShaders = this.GetRecommendedShaders(nodeType);

            this.m_WrongShaders.Add(uniqueID);
            this.SetAnimBool(uniqueID, true, true);
            int num = this.GUIShowError(uniqueID, recommendedShaders, gUIContent, gUIContent2, ConsoleWindow.iconError);

            if (num >= 0)
            {
                value.shader = Shader.Find(recommendedShaders[num]);
                this.m_WrongShaders.Remove(uniqueID);
                this.DisableAnimBool(uniqueID);
                this.RemoveSelectedIndex(uniqueID);
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        private bool CheckForTooManyShaders(TreeEditorHelper.NodeType nodeType)
        {
            List <string> shadersListForNodeType        = this.GetShadersListForNodeType(nodeType);
            List <string> shadersListOppositeToNodeType = this.GetShadersListOppositeToNodeType(nodeType);

            return(shadersListForNodeType.Count > 2 || (shadersListForNodeType.Count == 2 && shadersListOppositeToNodeType.Count > 0));
        }
Esempio n. 3
0
 private static string GetDefaultShader(TreeEditorHelper.NodeType nodeType)
 {
     if (nodeType == TreeEditorHelper.NodeType.BarkNode)
     {
         return("Nature/Tree Creator Bark");
     }
     return("Nature/Tree Creator Leaves Fast");
 }
Esempio n. 4
0
 private List <string> GetShadersListOppositeToNodeType(TreeEditorHelper.NodeType nodeType)
 {
     if (nodeType == TreeEditorHelper.NodeType.BarkNode)
     {
         return(this.GetShadersListForNodeType(TreeEditorHelper.NodeType.LeafNode));
     }
     return(this.GetShadersListForNodeType(TreeEditorHelper.NodeType.BarkNode));
 }
Esempio n. 5
0
 private List <string> GetShadersListForNodeType(TreeEditorHelper.NodeType nodeType)
 {
     if (nodeType == TreeEditorHelper.NodeType.BarkNode)
     {
         return(this.m_BarkShaders);
     }
     return(this.m_LeafShaders);
 }
Esempio n. 6
0
        private List <string> GetRecommendedShaders(TreeEditorHelper.NodeType nodeType)
        {
            List <string> list = new List <string>(3);
            List <string> shadersListForNodeType        = this.GetShadersListForNodeType(nodeType);
            List <string> shadersListOppositeToNodeType = this.GetShadersListOppositeToNodeType(nodeType);

            if (shadersListForNodeType.Count == 1 || (shadersListForNodeType.Count == 2 && shadersListOppositeToNodeType.Count == 0))
            {
                foreach (string current in shadersListForNodeType)
                {
                    list.Add(current);
                }
            }
            if (shadersListForNodeType.Count == 0)
            {
                list.Add(TreeEditorHelper.GetDefaultShader(nodeType));
            }
            return(list);
        }
Esempio n. 7
0
        private bool GUITooManyShaders(TreeEditorHelper.NodeType nodeType)
        {
            string text = nodeType.ToString();

            if (this.CheckForTooManyShaders(nodeType))
            {
                this.SetAnimBool(text, true, true);
            }
            List <string> shadersListForNodeType = this.GetShadersListForNodeType(nodeType);
            GUIContent    gUIContent             = TreeEditorHelper.GetGUIContent((nodeType != TreeEditorHelper.NodeType.BarkNode) ? "TreeEditor.TreeGroup.TooManyLeafShaders" : "TreeEditor.TreeGroup.TooManyBarkShaders");
            GUIContent    gUIContent2            = TreeEditorHelper.GetGUIContent("TreeEditor.TreeGroup.ChangeAllShadersOnNodesButton");
            int           num = this.GUIShowError(text, shadersListForNodeType, gUIContent, gUIContent2, ConsoleWindow.iconError);

            if (num >= 0)
            {
                Shader shader = Shader.Find(shadersListForNodeType[num]);
                TreeEditorHelper.ChangeShaderOnMaterials(this.m_TreeData, shader, this.m_TreeData.root, nodeType);
                this.DisableAnimBool(text);
                this.RemoveSelectedIndex(text);
                return(true);
            }
            return(false);
        }
Esempio n. 8
0
 private static void ChangeShaderOnMaterials(TreeData treeData, Shader shader, TreeGroup group, TreeEditorHelper.NodeType nodeType)
 {
     if (group is TreeGroupBranch && nodeType == TreeEditorHelper.NodeType.BarkNode)
     {
         TreeGroupBranch treeGroupBranch = group as TreeGroupBranch;
         TreeEditorHelper.ChangeShaderOnMaterial(treeGroupBranch.materialBranch, shader);
         TreeEditorHelper.ChangeShaderOnMaterial(treeGroupBranch.materialBreak, shader);
         TreeEditorHelper.ChangeShaderOnMaterial(treeGroupBranch.materialFrond, shader);
     }
     else
     {
         if (group is TreeGroupLeaf && nodeType == TreeEditorHelper.NodeType.LeafNode)
         {
             TreeGroupLeaf treeGroupLeaf = group as TreeGroupLeaf;
             TreeEditorHelper.ChangeShaderOnMaterial(treeGroupLeaf.materialLeaf, shader);
         }
     }
     int[] childGroupIDs = group.childGroupIDs;
     for (int i = 0; i < childGroupIDs.Length; i++)
     {
         int       id     = childGroupIDs[i];
         TreeGroup group2 = treeData.GetGroup(id);
         TreeEditorHelper.ChangeShaderOnMaterials(treeData, shader, group2, nodeType);
     }
 }