Example #1
0
        static public void swapActiveSetDef(int index, TerrainTextureDef def)
        {
            if (index < 0 || index >= SimTerrainType.mActiveWorkingSet.Count)
            {
                return;
            }

            SimTerrainType.mActiveWorkingSet[index] = SimTerrainType.getIndexFromDef(def);
        }
Example #2
0
        static public List <TerrainTextureDef> getDefsOfActiveSet()
        {
            List <TerrainTextureDef> texList = new List <TerrainTextureDef>();

            for (int i = 0; i < SimTerrainType.mActiveWorkingSet.Count; i++)
            {
                texList.Add(SimTerrainType.getFromNumber(SimTerrainType.mActiveWorkingSet[i]));
            }
            return(texList);
        }
Example #3
0
        static public List <string> getTypeNamesOfActiveSet()
        {
            List <string> texList = new List <string>();

            for (int i = 0; i < SimTerrainType.mActiveWorkingSet.Count; i++)
            {
                texList.Add(SimTerrainType.getFromNumber(SimTerrainType.mActiveWorkingSet[i]).TypeName);
            }
            return(texList);
        }
Example #4
0
        static public bool isDefInActiveSet(TerrainTextureDef def)
        {
            if (def == null)
            {
                return(false);
            }

            int ind = SimTerrainType.getIndexFromDef(def);

            for (int i = 0; i < SimTerrainType.mActiveWorkingSet.Count; i++)
            {
                if (SimTerrainType.mActiveWorkingSet[i] == ind)
                {
                    return(true);
                }
            }

            return(false);
        }
Example #5
0
        static public int getActiveSetIndex(TerrainTextureDef def)
        {
            if (def == null)
            {
                return(-1);
            }

            int ind = SimTerrainType.getIndexFromDef(def);

            for (int i = 0; i < SimTerrainType.mActiveWorkingSet.Count; i++)
            {
                if (SimTerrainType.mActiveWorkingSet[i] == ind)
                {
                    return(i);
                }
            }

            return(-1);
        }
Example #6
0
        static public void addActiveSetDef(TerrainTextureDef def)
        {
            if (def == null)
            {
                MessageBox.Show("WARNING: Terrain type " + def.TextureName + " not found! Replacing with a default type");
                def = SimTerrainType.getFromTypeName("terrain_blank");
            }
            int ind = SimTerrainType.getIndexFromDef(def);

            for (int i = 0; i < SimTerrainType.mActiveWorkingSet.Count; i++)
            {
                if (SimTerrainType.mActiveWorkingSet[i] == ind)
                {
                    return;
                }
            }

            SimTerrainType.mActiveWorkingSet.Add(ind);
        }
Example #7
0
        //our main texture definitions
        static public void loadTerrainTypes()
        {
            //grab a list of all the texture names that exist
            List <string> currentTextures = SimTerrainType.getTerrainTextures();

            mTextureList.Clear();

            TerrainTextureDefXML mTerrainTypesXML;

            //load the XML file
            string fileName = CoreGlobals.getWorkPaths().mGameDataDirectory + @"\" + mTextureDefFileName;

            if (File.Exists(fileName))
            {
                XmlSerializer s  = new XmlSerializer(typeof(TerrainTextureDefXML), new Type[] { typeof(TerrainTextureDef) });
                Stream        st = File.OpenRead(fileName);
                mTerrainTypesXML = (TerrainTextureDefXML)s.Deserialize(st);

                for (int j = 0; j < currentTextures.Count; j++)
                {
                    string themeName;
                    string fName;
                    chopName(currentTextures[j], out themeName, out fName);

                    bool found = false;
                    int  k     = 0;
                    for (k = 0; k < mTerrainTypesXML.mTypes.Count; k++)
                    {
                        if (mTerrainTypesXML.mTypes[k].Theme == themeName &&
                            mTerrainTypesXML.mTypes[k].TextureName == fName)
                        {
                            found = true;
                            break;
                        }
                    }
                    if (found)
                    {
                        mTextureList.Add(mTerrainTypesXML.mTypes[k]);
                    }
                    else
                    {
                        TerrainTextureDef def = new TerrainTextureDef();
                        def.toDefaultValues();
                        def.Theme       = themeName;
                        def.TextureName = getpureFileNameNoExt(fName);
                        def.TypeName    = def.Theme + "_" + def.TextureName;
                        mTextureList.Add(def);
                    }
                }

                st.Close();
            }

            //if the file doesn't exist, create it real quick..
            if (!File.Exists(fileName))
            {
                SimTerrainType.writeTerrainTypes();
            }

            //load a default working set...
            if (mActiveWorkingSet.Count == 0)
            {
                for (int i = 0; i < mTextureList.Count; i++)
                {
                    if (!mTextureList[i].TextureName.Contains("blank"))
                    {
                        mActiveWorkingSet.Add(i);
                        break;
                    }
                }
            }
        }