public void Collapse(ref GenericVMFClass parentClass) { //Remove from vmf's classes parentClass.ChildClasses.Remove(this); //Add child classes parentClass.ChildClasses.AddRange(ChildClasses); }
//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); }
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(); }
//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}"); }
public EditorInfo(GenericVMFClass genericVmfClass) { }