Beispiel #1
0
        /// <summary>
        /// Gets the latest release of the mod and properly resolves extended info
        /// </summary>
        public static bool TryGetLatestRelease(this ApiModInfo info, out ModReleaseInfo release)
        {
            if (info.LatestRelease.HasValue)
            {
                release = info.LatestRelease.Value;
                return(true);
            }

            if (!(info.Releases is null) && (info.Releases.Length > 0))
            {
                ModReleaseInfo max = default;
                foreach (var r in info.Releases)
                {
                    if (r.Version > max.Version)
                    {
                        max = r;
                    }
                }
                release = max;
                return(true);
            }

            release = default;
            return(false);
        }
Beispiel #2
0
        /// <summary>
        /// Gets the latest release of the mod that is compatible with a given version of Factorio
        /// </summary>
        public static ModReleaseInfo?GetLatestRelease(this ApiModInfo info, AccurateVersion factorioVersion)
        {
            ModReleaseInfo?max = null;

            if (!(info.Releases is null))
            {
                foreach (var release in info.Releases.Where(r => r.Info.FactorioVersion == factorioVersion))
                {
                    if ((max is null) || (release.Version > max.Value.Version))
                    {
                        max = release;
                    }
                }
            }
            return(max);
        }