public void SaveSettings()
        {
            // Parse prototypes to a format that can be serialized
            ImportCfg.SplatPrototypes.Clear();
            foreach (SplatPrototype prototype in SplatPrototypes)
            {
                ImportCfg.SplatPrototypes.Add(SplatPrototypeConfiguration.Serialize(prototype));
            }

            ImportCfg.DetailPrototypes.Clear();
            foreach (DetailPrototype prototype in DetailPrototypes)
            {
                ImportCfg.DetailPrototypes.Add(DetailPrototypeConfiguration.Serialize(prototype));
            }

            ImportCfg.TreePrototypes.Clear();
            foreach (TreePrototype prototype in TreePrototypes)
            {
                ImportCfg.TreePrototypes.Add(TreePrototypeConfiguration.Serialize(prototype));
            }

            // Serialize
            string filePath = UPath.GetAbsolutePath(ImportCfgPath);

            XmlSerializer serializer = new XmlSerializer(typeof(ImporterConfiguration));
            TextWriter    writer     = new StreamWriter(filePath);

            serializer.Serialize(writer, ImportCfg);
            writer.Close();

            ImportCfg.IsDirty = false;
        }