diff --git a/src/SMAPI/Framework/ContentCoordinator.cs b/src/SMAPI/Framework/ContentCoordinator.cs
index d1021cad..93371415 100644
--- a/src/SMAPI/Framework/ContentCoordinator.cs
+++ b/src/SMAPI/Framework/ContentCoordinator.cs
@@ -95,7 +95,7 @@ namespace StardewModdingAPI.Framework
this.ContentManagers.Add(
this.MainContentManager = new GameContentManager("Game1.content", serviceProvider, rootDirectory, currentCulture, this, monitor, reflection, this.OnDisposing, onLoadingFirstAsset)
);
- this.CoreAssets = new CoreAssetPropagator(this.MainContentManager.AssertAndNormalizeAssetName, reflection, monitor);
+ this.CoreAssets = new CoreAssetPropagator(this.MainContentManager.AssertAndNormalizeAssetName, reflection);
}
/// Get a new content manager which handles reading files from the game content folder with support for interception.
@@ -236,7 +236,7 @@ namespace StardewModdingAPI.Framework
{
foreach (var entry in contentManager.InvalidateCache(predicate, dispose))
{
- if (!removedAssets.TryGetValue(entry.Key, out Type type))
+ if (!removedAssets.ContainsKey(entry.Key))
removedAssets[entry.Key] = entry.Value.GetType();
}
}
diff --git a/src/SMAPI/Framework/ContentPack.cs b/src/SMAPI/Framework/ContentPack.cs
index 43621141..55c1a0b2 100644
--- a/src/SMAPI/Framework/ContentPack.cs
+++ b/src/SMAPI/Framework/ContentPack.cs
@@ -1,10 +1,7 @@
using System;
using System.IO;
-using Microsoft.Xna.Framework.Content;
-using Microsoft.Xna.Framework.Graphics;
using StardewModdingAPI.Toolkit.Serialization;
using StardewModdingAPI.Toolkit.Utilities;
-using xTile;
namespace StardewModdingAPI.Framework
{
diff --git a/src/SMAPI/Framework/ModHelpers/ContentHelper.cs b/src/SMAPI/Framework/ModHelpers/ContentHelper.cs
index 80f61c13..5fd8f5e9 100644
--- a/src/SMAPI/Framework/ModHelpers/ContentHelper.cs
+++ b/src/SMAPI/Framework/ModHelpers/ContentHelper.cs
@@ -5,13 +5,10 @@ using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.IO;
using System.Linq;
-using Microsoft.Xna.Framework.Content;
-using Microsoft.Xna.Framework.Graphics;
using StardewModdingAPI.Framework.Content;
using StardewModdingAPI.Framework.ContentManagers;
using StardewModdingAPI.Framework.Exceptions;
using StardewValley;
-using xTile;
namespace StardewModdingAPI.Framework.ModHelpers
{
diff --git a/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs b/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs
index cfe4c747..9fb5384e 100644
--- a/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs
+++ b/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs
@@ -409,10 +409,10 @@ namespace StardewModdingAPI.Framework.ModLoading
if (handler.Phrases.Any())
{
foreach (string message in handler.Phrases)
- this.Monitor.LogOnce(template.Replace("$phrase", message));
+ this.Monitor.LogOnce(loggedMessages, template.Replace("$phrase", message));
}
else
- this.Monitor.LogOnce(template.Replace("$phrase", handler.DefaultPhrase ?? handler.GetType().Name));
+ this.Monitor.LogOnce(loggedMessages, template.Replace("$phrase", handler.DefaultPhrase ?? handler.GetType().Name));
}
/// Get the correct reference to use for compatibility with the current platform.
diff --git a/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMissingMemberFinder.cs b/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMissingMemberFinder.cs
index 75575c97..b64a255e 100644
--- a/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMissingMemberFinder.cs
+++ b/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMissingMemberFinder.cs
@@ -49,7 +49,7 @@ namespace StardewModdingAPI.Framework.ModLoading.Finders
MethodDefinition target = methodRef.Resolve();
if (target == null)
{
- string phrase = null;
+ string phrase;
if (this.IsProperty(methodRef))
phrase = $"reference to {methodRef.DeclaringType.FullName}.{methodRef.Name.Substring(4)} (no such property)";
else if (methodRef.Name == ".ctor")
diff --git a/src/SMAPI/Framework/Reflection/Reflector.cs b/src/SMAPI/Framework/Reflection/Reflector.cs
index d4904878..889c7ed6 100644
--- a/src/SMAPI/Framework/Reflection/Reflector.cs
+++ b/src/SMAPI/Framework/Reflection/Reflector.cs
@@ -263,7 +263,7 @@ namespace StardewModdingAPI.Framework.Reflection
CacheEntry entry = (CacheEntry)this.Cache[key];
return entry.IsValid
? (TMemberInfo)entry.MemberInfo
- : default(TMemberInfo);
+ : default;
}
// fetch & cache new value
diff --git a/src/SMAPI/Framework/Rendering/SXnaDisplayDevice.cs b/src/SMAPI/Framework/Rendering/SXnaDisplayDevice.cs
index 121e53bc..cb499c6b 100644
--- a/src/SMAPI/Framework/Rendering/SXnaDisplayDevice.cs
+++ b/src/SMAPI/Framework/Rendering/SXnaDisplayDevice.cs
@@ -93,17 +93,17 @@ namespace StardewModdingAPI.Framework.Rendering
{
if (tile == null)
return;
- xTile.Dimensions.Rectangle tileImageBounds = tile.TileSheet.GetTileImageBounds(tile.TileIndex);
+ Rectangle tileImageBounds = tile.TileSheet.GetTileImageBounds(tile.TileIndex);
Texture2D tileSheetTexture = this.m_tileSheetTextures[tile.TileSheet];
if (tileSheetTexture.IsDisposed)
return;
- this.m_tilePosition.X = (float)location.X;
- this.m_tilePosition.Y = (float)location.Y;
+ this.m_tilePosition.X = location.X;
+ this.m_tilePosition.Y = location.Y;
this.m_sourceRectangle.X = tileImageBounds.X;
this.m_sourceRectangle.Y = tileImageBounds.Y;
this.m_sourceRectangle.Width = tileImageBounds.Width;
this.m_sourceRectangle.Height = tileImageBounds.Height;
- this.m_spriteBatchAlpha.Draw(tileSheetTexture, this.m_tilePosition, new Microsoft.Xna.Framework.Rectangle?(this.m_sourceRectangle), this.m_modulationColour, 0.0f, Vector2.Zero, (float)Layer.zoom, SpriteEffects.None, layerDepth);
+ this.m_spriteBatchAlpha.Draw(tileSheetTexture, this.m_tilePosition, this.m_sourceRectangle, this.m_modulationColour, 0.0f, Vector2.Zero, Layer.zoom, SpriteEffects.None, layerDepth);
}
/// Finish drawing to the screen.
diff --git a/src/SMAPI/Framework/SGame.cs b/src/SMAPI/Framework/SGame.cs
index ae2c028d..6680a6c9 100644
--- a/src/SMAPI/Framework/SGame.cs
+++ b/src/SMAPI/Framework/SGame.cs
@@ -297,8 +297,6 @@ namespace StardewModdingAPI.Framework
}
if (Game1.currentMinigame != null)
{
- bool batchEnded = false;
-
if (events.Rendering.HasListeners())
{
Game1.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
@@ -321,12 +319,11 @@ namespace StardewModdingAPI.Framework
Game1.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.LinearClamp, DepthStencilState.Default, RasterizerState.CullNone);
Game1.spriteBatch.Draw(target_screen, Vector2.Zero, target_screen.Bounds, Color.White, 0f, Vector2.Zero, Game1.options.zoomLevel, SpriteEffects.None, 1f);
events.Rendered.RaiseEmpty();
- batchEnded = true;
Game1.spriteBatch.End();
}
else
{
- if (!batchEnded && events.Rendered.HasListeners())
+ if (events.Rendered.HasListeners())
{
Game1.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
events.Rendered.RaiseEmpty();
diff --git a/src/SMAPI/Metadata/CoreAssetPropagator.cs b/src/SMAPI/Metadata/CoreAssetPropagator.cs
index 5c77bf66..41d10cd4 100644
--- a/src/SMAPI/Metadata/CoreAssetPropagator.cs
+++ b/src/SMAPI/Metadata/CoreAssetPropagator.cs
@@ -34,9 +34,6 @@ namespace StardewModdingAPI.Metadata
/// Simplifies access to private game code.
private readonly Reflector Reflection;
- /// Encapsulates monitoring and logging.
- private readonly IMonitor Monitor;
-
/// Optimized bucket categories for batch reloading assets.
private enum AssetBucket
{
@@ -57,12 +54,10 @@ namespace StardewModdingAPI.Metadata
/// Initialize the core asset data.
/// Normalizes an asset key to match the cache key and assert that it's valid.
/// Simplifies access to private code.
- /// Encapsulates monitoring and logging.
- public CoreAssetPropagator(Func assertAndNormalizeAssetName, Reflector reflection, IMonitor monitor)
+ public CoreAssetPropagator(Func assertAndNormalizeAssetName, Reflector reflection)
{
this.AssertAndNormalizeAssetName = assertAndNormalizeAssetName;
this.Reflection = reflection;
- this.Monitor = monitor;
}
/// Reload one of the game's core assets (if applicable).
diff --git a/src/SMAPI/SButton.cs b/src/SMAPI/SButton.cs
index bc76c91d..cc412946 100644
--- a/src/SMAPI/SButton.cs
+++ b/src/SMAPI/SButton.cs
@@ -681,7 +681,7 @@ namespace StardewModdingAPI
}
// not valid
- button = default(InputButton);
+ button = default;
return false;
}