예제 #1
0
        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]);
                }
            }
        }
예제 #2
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");
            }
        }