Пример #1
0
        /// <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()
            );
        }