static public void swapActiveSetDef(int index, TerrainTextureDef def) { if (index < 0 || index >= SimTerrainType.mActiveWorkingSet.Count) { return; } SimTerrainType.mActiveWorkingSet[index] = SimTerrainType.getIndexFromDef(def); }
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); }
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); }
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); }
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); }
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); }
//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; } } } }