/// <summary> /// Parses the mod's information from Json, loading any required references, and returns its <see cref="ModInfo"/> object. /// </summary> /// <param name="j">Json Data to load the <see cref="ModInfo"/> from</param> /// <param name="path">The path to the mod</param> /// <returns>The <see cref="ModInfo"/> of the mod</returns> public static ModInfo ParseModInfo(JsonData j, string path) { var refs = new List<IReference>(); if (j.Has("dllReferences")) foreach (object s in j["dllReferences"]) refs.Add(new AssemblyReference(s.ToString(), path)); if (j.Has("modReferences")) foreach (object s in j["modReferences"]) refs.Add(new ModReference(s.ToString())); string internalName = j.GetOrExn<string>("internalName"); return new ModInfo( path, internalName, j.GetOrDef("displayName", internalName), j.GetOrDef("author", "<unspecified>"), j.GetOrDef("version", "0.0.0.0"), j.GetOrDef<string>("description"), j.GetOrExn<string>("asmFileName"), j.GetOrExn<string>("modDefTypeName"), refs.ToArray() ); }