mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Ensure inverted slide reels have the same key regardless of if they're from the cache folder or not
This commit is contained in:
parent
63cb8e6f5d
commit
a564afcf0c
@ -108,6 +108,16 @@ namespace NewHorizons.Utility.Files
|
||||
public static Texture2D InvertSlideReel(IModBehaviour mod, Texture2D texture, string originalPath)
|
||||
{
|
||||
var key = $"{texture.name} > invert";
|
||||
var cachedPath = "";
|
||||
|
||||
// If we're going to end up caching the texture we must make sure it will end up using the same key
|
||||
// Not sure why we check if the originalPath is null but it did that before so
|
||||
if (!string.IsNullOrEmpty(originalPath))
|
||||
{
|
||||
cachedPath = Path.Combine(mod.ModHelper.Manifest.ModFolderPath, ProjectionBuilder.INVERTED_SLIDE_CACHE_FOLDER, originalPath.Replace(mod.ModHelper.Manifest.ModFolderPath, ""));
|
||||
key = GetKey(cachedPath);
|
||||
}
|
||||
|
||||
if (_textureCache.TryGetValue(key, out var existingTexture)) return (Texture2D)existingTexture;
|
||||
|
||||
var pixels = texture.GetPixels();
|
||||
@ -143,12 +153,11 @@ namespace NewHorizons.Utility.Files
|
||||
|
||||
// Since doing this is expensive we cache the results to the disk
|
||||
// Preloading cached values is done in ProjectionBuilder
|
||||
if (!string.IsNullOrEmpty(originalPath))
|
||||
if (!string.IsNullOrEmpty(cachedPath))
|
||||
{
|
||||
var path = Path.Combine(mod.ModHelper.Manifest.ModFolderPath, ProjectionBuilder.INVERTED_SLIDE_CACHE_FOLDER, originalPath.Replace(mod.ModHelper.Manifest.ModFolderPath, ""));
|
||||
NHLogger.LogVerbose($"Caching inverted image to {path}");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(path));
|
||||
File.WriteAllBytes(path, newTexture.EncodeToPNG());
|
||||
NHLogger.LogVerbose($"Caching inverted image to {cachedPath}");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(cachedPath));
|
||||
File.WriteAllBytes(cachedPath, newTexture.EncodeToPNG());
|
||||
}
|
||||
|
||||
return newTexture;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user