diff options
author | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2021-03-07 20:15:10 -0500 |
---|---|---|
committer | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2021-03-07 20:15:10 -0500 |
commit | 5399239c2be01396958ed454d6ae56f006d20ca5 (patch) | |
tree | 87683eda0873a0c24d9bcee5d47f1cec896f21bb /src/SMAPI/Framework/ModLoading/ModMetadata.cs | |
parent | db011ee751bdfb8bbd9abbeb706966db4c4e2461 (diff) | |
parent | a571f459f59a6ecfdd53e3158ba8d29157598920 (diff) | |
download | SMAPI-5399239c2be01396958ed454d6ae56f006d20ca5.tar.gz SMAPI-5399239c2be01396958ed454d6ae56f006d20ca5.tar.bz2 SMAPI-5399239c2be01396958ed454d6ae56f006d20ca5.zip |
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI/Framework/ModLoading/ModMetadata.cs')
-rw-r--r-- | src/SMAPI/Framework/ModLoading/ModMetadata.cs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/SMAPI/Framework/ModLoading/ModMetadata.cs b/src/SMAPI/Framework/ModLoading/ModMetadata.cs index 18d2b112..b4de3d6c 100644 --- a/src/SMAPI/Framework/ModLoading/ModMetadata.cs +++ b/src/SMAPI/Framework/ModLoading/ModMetadata.cs @@ -14,6 +14,13 @@ namespace StardewModdingAPI.Framework.ModLoading internal class ModMetadata : IModMetadata { /********* + ** Fields + *********/ + /// <summary>The non-error issues with the mod, including warnings suppressed by the data record.</summary> + private ModWarning ActualWarnings = ModWarning.None; + + + /********* ** Accessors *********/ /// <inheritdoc /> @@ -41,7 +48,7 @@ namespace StardewModdingAPI.Framework.ModLoading public ModFailReason? FailReason { get; private set; } /// <inheritdoc /> - public ModWarning Warnings { get; private set; } + public ModWarning Warnings => this.ActualWarnings & ~(this.DataRecord?.DataRecord.SuppressWarnings ?? ModWarning.None); /// <inheritdoc /> public string Error { get; private set; } @@ -116,7 +123,7 @@ namespace StardewModdingAPI.Framework.ModLoading /// <inheritdoc /> public IModMetadata SetWarning(ModWarning warning) { - this.Warnings |= warning; + this.ActualWarnings |= warning; return this; } @@ -218,12 +225,10 @@ namespace StardewModdingAPI.Framework.ModLoading } /// <inheritdoc /> - public bool HasUnsuppressedWarnings(params ModWarning[] warnings) + public bool HasWarnings(params ModWarning[] warnings) { - return warnings.Any(warning => - this.Warnings.HasFlag(warning) - && (this.DataRecord?.DataRecord == null || !this.DataRecord.DataRecord.SuppressWarnings.HasFlag(warning)) - ); + ModWarning curWarnings = this.Warnings; + return warnings.Any(warning => curWarnings.HasFlag(warning)); } /// <inheritdoc /> |