diff options
author | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2019-12-24 13:51:21 -0500 |
---|---|---|
committer | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2019-12-24 13:51:21 -0500 |
commit | d932a11f51392cd42ab501185982af971f954c8d (patch) | |
tree | 366ae6bd9ed89e871bba66183b35a241ea3f386d /src/SMAPI/Framework/ModLoading | |
parent | 4c471ea2154772e0eee6a50be2f0e468915a1b9d (diff) | |
download | SMAPI-d932a11f51392cd42ab501185982af971f954c8d.tar.gz SMAPI-d932a11f51392cd42ab501185982af971f954c8d.tar.bz2 SMAPI-d932a11f51392cd42ab501185982af971f954c8d.zip |
list broken dependencies first in 'skipped mods' list
Diffstat (limited to 'src/SMAPI/Framework/ModLoading')
-rw-r--r-- | src/SMAPI/Framework/ModLoading/ModMetadata.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/SMAPI/Framework/ModLoading/ModMetadata.cs b/src/SMAPI/Framework/ModLoading/ModMetadata.cs index 7f788d17..0e90362e 100644 --- a/src/SMAPI/Framework/ModLoading/ModMetadata.cs +++ b/src/SMAPI/Framework/ModLoading/ModMetadata.cs @@ -188,6 +188,27 @@ namespace StardewModdingAPI.Framework.ModLoading } } + /// <summary>Get the mod IDs that must be installed to load this mod.</summary> + /// <param name="includeOptional">Whether to include optional dependencies.</param> + public IEnumerable<string> GetRequiredModIds(bool includeOptional = false) + { + HashSet<string> required = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase); + + // yield dependencies + if (this.Manifest?.Dependencies != null) + { + foreach (var entry in this.Manifest?.Dependencies) + { + if ((entry.IsRequired || includeOptional) && required.Add(entry.UniqueID)) + yield return entry.UniqueID; + } + } + + // yield content pack parent + if (this.Manifest?.ContentPackFor?.UniqueID != null && required.Add(this.Manifest.ContentPackFor.UniqueID)) + yield return this.Manifest.ContentPackFor.UniqueID; + } + /// <summary>Whether the mod has at least one valid update key set.</summary> public bool HasValidUpdateKeys() { |