public OutpostModuleInfo(OutpostModuleInfo original)
 {
     Name                   = original.Name;
     moduleFlags            = new HashSet <string>(original.moduleFlags);
     allowAttachToModules   = new HashSet <string>(original.allowAttachToModules);
     allowedLocationTypes   = new HashSet <string>(original.allowedLocationTypes);
     SerializableProperties = new Dictionary <string, SerializableProperty>();
     GapPositions           = original.GapPositions;
     foreach (KeyValuePair <string, SerializableProperty> kvp in original.SerializableProperties)
     {
         SerializableProperties.Add(kvp.Key, kvp.Value);
         if (SerializableProperty.GetSupportedTypeName(kvp.Value.PropertyType) != null)
         {
             kvp.Value.TrySetValue(this, kvp.Value.GetValue(original));
         }
     }
 }