public LithTechConfig(LithTechConfig originalToCopy)
        {
            foreach (var property in originalToCopy.GetType().GetProperties())
            {
                var value = property.GetValue(originalToCopy);
                this.GetType().GetProperty(property.Name).SetValue(this, value);
            }

            OtherLines = new List <string>();
            foreach (var line in originalToCopy.OtherLines)
            {
                OtherLines.Add(line);
            }
        }
        public static LithTechConfig Load()
        {
            LithTechConfig obj;

            if (File.Exists(FILEPATH))
            {
                obj = new LithTechConfig();
                StreamReader streamReader = new StreamReader(FILEPATH);

                while (!streamReader.EndOfStream)
                {
                    var line = streamReader.ReadLine();
                    if (line.Contains(" "))
                    {
                        var split = line.Split(new char[] { ' ' }, 2);
                        var key   = split[0].Trim(new char[] { '\"' });
                        var value = split[1].Trim(new char[] { '\"' });

                        var propInfo = obj.GetType().GetProperty(key);
                        if (propInfo != null && propInfo.PropertyType == typeof(uint))
                        {
                            propInfo.SetValue(obj, uint.Parse(value));
                        }
                        else
                        {
                            obj.OtherLines.Add(line);
                        }
                    }
                    else
                    {
                        obj.OtherLines.Add(line);
                    }
                }
                streamReader.Close();
                return(obj);
            }
            else
            {
                return(new LithTechConfig());
            }
        }