public static void RemoveFromList(Ytyp[] ytypfiles, Ymap[] ymapfiles) { List <string> removelist = new List <string>(); Console.WriteLine("Insert the file to load names from: (ex. list.txt)"); string filename = Console.ReadLine(); using (StreamReader reader = new StreamReader(filename)) { string line; while ((line = reader.ReadLine()) != null) { removelist.Add(line.Trim().ToLower()); } } if (ytypfiles != null && ytypfiles.Length != 0) { for (int i = 0; i < ytypfiles.Length; i++) { List <CBaseArchetypeDef> removed_archetypes = ytypfiles[i].RemoveArchetypesByNames(removelist); ytypfiles[i].WriteXML().Save(ytypfiles[i].filename); Console.WriteLine("Updated " + (ytypfiles[i].filename)); Ytyp removedytyp = ytypfiles[i]; removedytyp.CMapTypes.archetypes = removed_archetypes; removedytyp.WriteXML().Save(ytypfiles[i].filename.Split('.')[0] + "_removed.ytyp.xml"); Console.WriteLine("Exported {0}_removed.ytyp.xml", ytypfiles[i].filename.Split('.')[0]); } } if (ymapfiles != null && ymapfiles.Length != 0) { for (int i = 0; i < ymapfiles.Length; i++) { List <CEntityDef> removed_entities = ymapfiles[i].RemoveEntitiesByNames(removelist); ymapfiles[i].WriteXML().Save(ymapfiles[i].filename); Console.WriteLine("Updated " + (ymapfiles[i].filename)); Ymap removedymap = ymapfiles[i]; removedymap.CMapData.entities = removed_entities; removedymap.WriteXML().Save(ymapfiles[i].filename.Split('.')[0] + "_removed.ymap.xml"); Console.WriteLine("Exported {0}_removed.ymap.xml", ymapfiles[i].filename.Split('.')[0]); } } }
//TEMP public static void GenerateMLO(string ytyppath, string ymappath) { Console.WriteLine("Insert the name for the MLO:"); string mloname = Console.ReadLine(); Ytyp theytyp = new Ytyp(XDocument.Load(ytyppath), mloname); Ymap theymap = new Ymap(XDocument.Load(ymappath), mloname); if (theytyp != null && theymap != null) { CMloInstanceDef mloent = new CMloInstanceDef(mloname); CMloArchetypeDef mloarc = new CMloArchetypeDef(mloname); //COPY VALUES mloarc.entities = theymap.CMapData.entities; mloarc.lodDist = theytyp.CMapTypes.archetypes.Max(arc => arc.lodDist); mloarc.hdTextureDist = theytyp.CMapTypes.archetypes.Max(arc => arc.hdTextureDist); mloent.lodDist = theymap.CMapData.entities.Max(ent => ent.lodDist); //GET CENTROID OF ENTITIES AND USE IT AS MLO POSITION foreach (CEntityDef ent in theymap.CMapData.entities) { mloent.position += ent.position; } mloent.position = mloent.position / theymap.CMapData.entities.Count; //CHANGE COORDSYSTEM TO PARENT'S ONE foreach (CEntityDef ent in mloarc.entities) { ent.position = ent.position - mloent.position; } //WEIRD WAY OF SAVING BECAUSE I'M ACTUALLY TOO BORED TO FIX ALL THE CODE TO SUPPORT MLO :DDDDDDDDDDD theytyp.CMapTypes.name = mloname; XDocument doc = theytyp.WriteXML(); doc.Element("CMapTypes").Element("archetypes").Add(mloarc.WriteXML()); doc.Save(mloname + ".ytyp.xml"); Console.WriteLine(mloname + ".ytyp.xml"); theymap.CMapData.name = mloname; theymap.CMapData.entities = new List <CEntityDef>(); doc = theymap.WriteXML(); doc.Element("CMapData").Element("entities").Add(mloent.WriteXML()); doc.Save(mloname + ".ymap.xml"); Console.WriteLine(mloname + ".ymap.xml"); } }