Esempio n. 1
0
        /// <summary>
        /// Produces a 'viewer' object for a TmodFile mod file's build.txt data.
        /// </summary>
        /// <param name="modfile"></param>
        /// <returns></returns>
        public static BuildPropertiesViewer GetBuildPropertiesForModFile(TmodFile modfile)
        {
            Type buildPropType = BuildPropertiesViewer.GetBuildPropertiesClassType();

            if (buildPropType == null)
            {
                LogHelpers.Alert("Could not get `Type` of build properties classes (eventually to get " + modfile.name + " props)");
                return((BuildPropertiesViewer)null);
            }

            MethodInfo method = buildPropType.GetMethod("ReadModFile", BindingFlags.NonPublic | BindingFlags.Static);

            if (method == null)
            {
                LogHelpers.Alert("Could not get ReadModFile method of build properties class for " + modfile.name);
                return((BuildPropertiesViewer)null);
            }

            object buildProps = method.Invoke(null, new object[] { modfile });

            if (buildProps == null)
            {
                LogHelpers.Log("BuildProperties has changed.");
                return((BuildPropertiesViewer)null);
            }

            return(new BuildPropertiesViewer(buildProps));
        }
Esempio n. 2
0
        /// <summary>
        /// Produces a 'viewer' object for an active mod file's build.txt data.
        /// </summary>
        /// <param name="modName"></param>
        /// <returns></returns>
        public static BuildPropertiesViewer GetBuildPropertiesForActiveMod(string modName)
        {
            Mod mod = ModLoader.GetMod(modName);

            if (mod == null)
            {
                return(null);
            }

            TmodFile modFile;

            if (!ReflectionHelpers.Get(mod, "File", out modFile) || modFile == null)
            {
                return(null);
            }

            return(BuildPropertiesViewer.GetBuildPropertiesForModFile(modFile));
        }