Exemple #1
0
        private static void TryAppendOverrideVersion(StringBuilder builder, ModContentPack modContentPack)
        {
            var versionFile = VersionFile.TryParseVersionFile(modContentPack);

            if (versionFile != null && versionFile.OverrideVersion != null)
            {
                builder.AppendFormat("[ov:{0}]", versionFile.OverrideVersion);
            }
        }
Exemple #2
0
        /// <summary>
        /// Return the override version from the Version.xml file if specified,
        /// or the higher one between AssemblyVersion and AssemblyFileVersion
        /// </summary>
        public virtual Version GetVersion()
        {
            var file = VersionFile.TryParseVersionFile(ModContentPack);

            if (file != null && file.OverrideVersion != null)
            {
                return(file.OverrideVersion);
            }
            return(VersionInfo.HighestVersion);
        }
Exemple #3
0
        /// <summary>
        /// Return the override version from the Version.xml file if specified, or the assembly version otherwise
        /// </summary>
        public virtual VersionShort GetVersion()
        {
            var file = VersionFile.TryParseVersionFile(ModContentPack);

            if (file != null && file.OverrideVersion != null)
            {
                return(file.OverrideVersion);
            }
            return(GetType().Assembly.GetName().Version);
        }
Exemple #4
0
        private static void ReadOwnVersion()
        {
            var ownAssembly    = typeof(HugsLibController).Assembly;
            var ownContentPack = LoadedModManager.RunningMods
                                 .FirstOrDefault(p => p.assemblies != null && p.assemblies.loadedAssemblies.Contains(ownAssembly));

            if (ownContentPack != null)
            {
                libraryVersionFile = VersionFile.TryParseVersionFile(ownContentPack);
                libraryVersionInfo = AssemblyVersionInfo.ReadModAssembly(ownAssembly, ownContentPack);
            }
            else
            {
                Logger.Error("Failed to identify own ModContentPack");
            }
        }
        private static VersionFile ReadOwnVersionFile()
        {
            VersionFile file        = null;
            var         ownAssembly = typeof(HugsLibController).Assembly;

            foreach (var modContentPack in LoadedModManager.RunningMods)
            {
                foreach (var loadedAssembly in modContentPack.assemblies.loadedAssemblies)
                {
                    if (!loadedAssembly.Equals(ownAssembly))
                    {
                        continue;
                    }
                    file = VersionFile.TryParseVersionFile(modContentPack);
                    if (file == null)
                    {
                        Logger.Error("Missing Version.xml file");
                    }
                }
            }
            return(file);
        }
        private string ListActiveMods()
        {
            var builder = new StringBuilder();

            builder.Append("Loaded mods:\n");
            foreach (var modContentPack in LoadedModManager.RunningMods)
            {
                builder.Append(modContentPack.Name);
                var versionFile = VersionFile.TryParseVersionFile(modContentPack);
                if (versionFile != null && versionFile.OverrideVersion != null)
                {
                    builder.AppendFormat("[{0}]: ", versionFile.OverrideVersion);
                }
                else
                {
                    builder.Append(": ");
                }
                var firstAssembly = true;
                var anyAssemblies = false;
                foreach (var loadedAssembly in modContentPack.assemblies.loadedAssemblies)
                {
                    if (!firstAssembly)
                    {
                        builder.Append(", ");
                    }
                    firstAssembly = false;
                    builder.Append(loadedAssembly.GetName().Name);
                    builder.AppendFormat("({0})", loadedAssembly.GetName().Version);
                    anyAssemblies = true;
                }
                if (!anyAssemblies)
                {
                    builder.Append("(no assemblies)");
                }
                builder.Append("\n");
            }
            return(builder.ToString());
        }