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); }
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)); }
private static string GetDefaultShader(TreeEditorHelper.NodeType nodeType) { if (nodeType == TreeEditorHelper.NodeType.BarkNode) { return("Nature/Tree Creator Bark"); } return("Nature/Tree Creator Leaves Fast"); }
private List <string> GetShadersListOppositeToNodeType(TreeEditorHelper.NodeType nodeType) { if (nodeType == TreeEditorHelper.NodeType.BarkNode) { return(this.GetShadersListForNodeType(TreeEditorHelper.NodeType.LeafNode)); } return(this.GetShadersListForNodeType(TreeEditorHelper.NodeType.BarkNode)); }
private List <string> GetShadersListForNodeType(TreeEditorHelper.NodeType nodeType) { if (nodeType == TreeEditorHelper.NodeType.BarkNode) { return(this.m_BarkShaders); } return(this.m_LeafShaders); }
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); }
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); }
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); } }