remove seasonal tilesheet patch (#552)

This is no longer needed (the changes were added to the game in SDV 1.3.19), and caused an issue since it left out the tilesheet reloading.
This commit is contained in:
Jesse Plamondon-Willard 2018-06-22 16:50:15 -04:00
parent 997c65b6f4
commit e149f20583
3 changed files with 1 additions and 62 deletions

View File

@ -1,60 +0,0 @@
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using Harmony;
using StardewValley;
using xTile.Tiles;
namespace StardewModdingAPI.Framework.Patching
{
/// <summary>A Harmony patch for the <see cref="GameLocation.updateSeasonalTileSheets"/> method.</summary>
internal class GameLocationPatch : IHarmonyPatch
{
/*********
** Accessors
*********/
/// <summary>A unique name for this patch.</summary>
public string Name => $"{nameof(GameLocation)}.{nameof(GameLocation.updateSeasonalTileSheets)}";
/*********
** Public methods
*********/
/// <summary>Apply the Harmony patch.</summary>
/// <param name="harmony">The Harmony instance.</param>
public void Apply(HarmonyInstance harmony)
{
MethodInfo method = AccessTools.Method(typeof(GameLocation), nameof(GameLocation.updateSeasonalTileSheets));
MethodInfo prefix = AccessTools.Method(this.GetType(), nameof(GameLocationPatch.Prefix));
harmony.Patch(method, new HarmonyMethod(prefix), null);
}
/*********
** Private methods
*********/
/// <summary>An implementation of <see cref="GameLocation.updateSeasonalTileSheets"/> which correctly handles custom map tilesheets.</summary>
/// <param name="__instance">The location instance being patched.</param>
[SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Argument name is defined by Harmony.")]
private static bool Prefix(GameLocation __instance)
{
if (!__instance.IsOutdoors || __instance.Name.Equals("Desert"))
return false;
foreach (TileSheet tilesheet in __instance.Map.TileSheets)
{
string imageSource = tilesheet.ImageSource;
string imageFile = Path.GetFileName(imageSource);
if (imageFile.StartsWith("spring_") || imageFile.StartsWith("summer_") || imageFile.StartsWith("fall_") || imageFile.StartsWith("winter_"))
{
string imageDir = Path.GetDirectoryName(imageSource);
if (string.IsNullOrWhiteSpace(imageDir))
imageDir = "Maps";
tilesheet.ImageSource = Path.Combine(imageDir, Game1.currentSeason + "_" + imageFile.Split('_')[1]);
}
}
return false;
}
}
}

View File

@ -168,7 +168,7 @@ namespace StardewModdingAPI
// apply game patches
new GamePatcher(this.Monitor).Apply(
new GameLocationPatch()
// new GameLocationPatch()
);
}

View File

@ -290,7 +290,6 @@
<Compile Include="Framework\Monitor.cs" />
<Compile Include="Metadata\InstructionMetadata.cs" />
<Compile Include="Mod.cs" />
<Compile Include="Framework\Patching\GameLocationPatch.cs" />
<Compile Include="PatchMode.cs" />
<Compile Include="GamePlatform.cs" />
<Compile Include="Program.cs" />