Beispiel #1
0
        public void Collapse(ref GenericVMFClass parentClass)
        {
            //Remove from vmf's classes
            parentClass.ChildClasses.Remove(this);

            //Add child classes
            parentClass.ChildClasses.AddRange(ChildClasses);
        }
Beispiel #2
0
        //TODO support for dispInfo

        public Side(GenericVMFClass genericVmfClass)
        {
            ID             = Convert.ToInt32(genericVmfClass.Properties[0].Value);
            SidePlane      = (Plane)genericVmfClass.Properties[1].Value;
            Material       = (string)genericVmfClass.Properties[2].Value;
            UAxis          = (UV)genericVmfClass.Properties[3].Value;
            VAxis          = (UV)genericVmfClass.Properties[4].Value;
            Rotation       = Convert.ToSingle(genericVmfClass.Properties[5].Value);
            LightmapScale  = Convert.ToSingle(genericVmfClass.Properties[6].Value);
            SmoothingGroup = Convert.ToInt32(genericVmfClass.Properties[7].Value);
        }
Beispiel #3
0
        public Solid(GenericVMFClass genericVmfClass)
        {
            ID = System.Convert.ToInt32(genericVmfClass.Properties[0].Value);

            Sides = (from side in genericVmfClass.ChildClasses
                     where side.ClassName == "side"
                     select new Side(side)).ToList();

            Editor = (from editorClass in genericVmfClass.ChildClasses
                      where editorClass.ClassName == "editor"
                      select new EditorInfo(editorClass)).First();
        }
Beispiel #4
0
        //Reads the vmf and returns list of raw classes
        private void ReadVMF(bool ignoreHiddenClass)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            Classes = new List <GenericVMFClass>();

            //Read until end of file
            while (!sr.EndOfStream)
            {
                GenericVMFClass vClass = ReadClass();
                Classes.Add(vClass);
            }

            //Collapse the hidden class
            if (ignoreHiddenClass)
            {
                //Get world class from classes
                var worldClass = (from vClass in Classes
                                  where vClass.ClassName == "world"
                                  select vClass).First();

                //Get hidden class from world class
                var hiddenClasses = from hClass in worldClass.ChildClasses
                                    where hClass.ClassName == "hidden"
                                    select hClass;

                //Remove hidden classes
                int worldPos = Classes.IndexOf(worldClass);
                Classes.Remove(worldClass);

                var hiddenClassesArray = hiddenClasses as GenericVMFClass[] ?? hiddenClasses.ToArray();
                worldClass.ChildClasses.Except(hiddenClassesArray);

                //Collapse hidden classes
                foreach (var hiddenClass in hiddenClassesArray)
                {
                    hiddenClass.Collapse(ref worldClass);
                }

                //Re add world class Back
                Classes.Insert(worldPos, worldClass);
            }


            stopwatch.Stop();
            Console.WriteLine($"\nCompleted in {stopwatch.Elapsed}");
        }
Beispiel #5
0
 public EditorInfo(GenericVMFClass genericVmfClass)
 {
 }