Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }