public static KeyValuePair <string, ArchetypeInfo> GetArchetypeInfo(EditorIniBlock block) { if (block.Name.Equals("solar", StringComparison.OrdinalIgnoreCase)) { ContentType type = ContentType.None; string name = null; double radius = 0d; string cmpFile = null; foreach (EditorIniOption option in block.Options) { if (option.Values.Count > 0) { switch (option.Name.ToLowerInvariant()) { case "nickname": name = option.Values[0].Value.ToString(); break; case "solar_radius": radius = Parser.ParseDouble(option.Values[0].Value.ToString(), 1); break; case "type": type = ParseContentType(option.Values[0].Value.ToString()); break; case "da_archetype": cmpFile = option.Values[0].Value.ToString(); break; } } } if (name != null) { if (type == ContentType.Planet || type == ContentType.Sun) { // save radius only for planets and suns if (radius != 0.0) { return(new KeyValuePair <string, ArchetypeInfo>(name, new ArchetypeInfo { Type = type, Radius = radius })); } } else if (type != ContentType.None && cmpFile != null) { // save model path only for supported objects (not planets and suns) return(new KeyValuePair <string, ArchetypeInfo>(name, new ArchetypeInfo { Type = type, ModelPath = cmpFile })); } } } return(new KeyValuePair <string, ArchetypeInfo>(null, null)); }