public override ConfigNode[] GetOptionNodes(string nodeName = kOptionNode) { ConfigNode[] nodes = base.GetOptionNodes(nodeName); if (nodes == null) { return(null); } ConfigNode node = null; MeshOption meshOption; string[] transformNames; List <string> meshNames = new List <string>(); //Now process all the nodes for (int index = 0; index < nodes.Length; index++) { node = nodes[index]; if (node.HasValue("meshTransforms") && node.HasValue("name")) { //Create a MeshOption meshOption = new MeshOption(); meshOption.name = node.GetValue("name"); meshOption.meshTransforms = node.GetValue("meshTransforms"); //If we've got transforms to process then add the option to our database. transformNames = meshOption.meshTransforms.Split(';'); if (transformNames.Length > 0) { //Add the option meshOptions.Add(meshOption.name, meshOption); //Add all the mesh transforms for (int meshIndex = 0; meshIndex < transformNames.Length; meshIndex++) { if (string.IsNullOrEmpty(transformNames[meshIndex]) == false) { meshNames.Add(transformNames[meshIndex]); } } } } } //If we've got options, then generate the array of meshes. if (meshNames.Count > 0) { meshTransforms = meshNames.ToArray(); } return(nodes); }
public virtual void SetVisibleMeshes() { if (meshTransforms.Length == 0) { return; } string optionName = optionNames[currentOptionIndex]; MeshOption meshOption = meshOptions[optionName]; Events["ToggleOption"].guiName = optionNames[currentOptionIndex]; for (int index = 0; index < meshTransforms.Length; index++) { if (meshOption.meshTransforms.Contains(meshTransforms[index])) { setMeshVisible(meshTransforms[index], true); } else { setMeshVisible(meshTransforms[index], false); } } }