Esempio n. 1
0
        private TextureSet getSet(PartVariant variant)
        {
            string     setName = variant.GetExtraInfoValue("textureSet");
            TextureSet set     = null;

            if (!string.IsNullOrEmpty(setName))
            {
                set            = TexturesUnlimitedLoader.getTextureSet(setName);
                textureSet     = setName;
                modelShaderSet = string.Empty;
                return(set);
            }
            setName = variant.GetExtraInfoValue("modelShader");
            if (!string.IsNullOrEmpty(setName))
            {
                set            = TexturesUnlimitedLoader.getModelShaderTextureSet(setName);
                modelShaderSet = setName;
                textureSet     = string.Empty;
                return(set);
            }
            //if nothing found, clear out references
            if (TexturesUnlimitedLoader.logErrors || TexturesUnlimitedLoader.logAll)
            {
                MonoBehaviour.print("Could not load texture set for part variant: " + variant?.Name + " for part: " + part.name);
            }
            modelShaderSet = textureSet = string.Empty;
            return(null);
        }
        /// <summary>
        /// Restores texture set data and either loads default texture set or saved texture set (if any)
        /// </summary>
        private void initialize()
        {
            if (textureSets != null)
            {
                //already initialized from OnLoad (prefab, some in-editor parts)
                return;
            }
            ConfigNode node = Utils.parseConfigNode(configNodeData);

            string[] setNames        = node.GetStringValues("textureSet", false);
            string   modelShaderName = node.GetStringValue("modelShader");

            List <TextureSet> allSets = new List <TextureSet>();

            if (!string.IsNullOrEmpty(modelShaderName))
            {
                TextureSet set = TexturesUnlimitedLoader.getModelShaderTextureSet(modelShaderName);
                if (set != null)
                {
                    allSets.Add(set);
                }
            }
            TextureSet[] sets = TexturesUnlimitedLoader.getTextureSets(setNames);
            for (int i = 0; i < sets.Length; i++)
            {
                allSets.Add(sets[i]);
            }
            ConfigNode[] fullNodeSets = node.GetNodes("KSP_TEXTURE_SET");
            for (int i = 0; i < fullNodeSets.Length; i++)
            {
                allSets.Add(new TextureSet(fullNodeSets[i], "create"));
            }

            textureSets = new TextureSetContainer(this, Fields[nameof(currentTextureSet)], Fields[nameof(persistentData)], allSets);
            if (string.IsNullOrEmpty(currentTextureSet))
            {
                currentTextureSet = allSets[0].name;
            }
            this.updateUIChooseOptionControl(nameof(currentTextureSet), textureSets.getTextureSetNames(), textureSets.getTextureSetTitles(), true, currentTextureSet);
            textureSets.enableCurrentSet(getModelTransforms(), false);
            Fields[nameof(currentTextureSet)].guiName = sectionName;
        }
Esempio n. 3
0
        private TextureSet getSet()
        {
            TextureSet set = null;

            if (!string.IsNullOrEmpty(textureSet) && (set = TexturesUnlimitedLoader.getTextureSet(textureSet)) != null)
            {
                modelShaderSet = string.Empty;
                return(set);
            }
            else if (!string.IsNullOrEmpty(modelShaderSet) && (set = TexturesUnlimitedLoader.getModelShaderTextureSet(modelShaderSet)) != null)
            {
                textureSet = string.Empty;
                return(set);
            }
            else if ((set = getSet(part.baseVariant)) != null)
            {
                return(set);
            }
            //if nothing found, clear out references
            modelShaderSet = textureSet = string.Empty;
            return(null);
        }
Esempio n. 4
0
 public TextureSet getSectionTexture(string name)
 {
     return(string.IsNullOrEmpty(textureSet)? TexturesUnlimitedLoader.getModelShaderTextureSet(modelShaderSet) : TexturesUnlimitedLoader.getTextureSet(textureSet));
 }