Fix content patch logic
This commit is contained in:
parent
bdd506b0db
commit
f628466adb
|
@ -412,17 +412,28 @@ namespace StardewModdingAPI.Framework
|
|||
// cached assets
|
||||
foreach (IContentManager contentManager in this.ContentManagers)
|
||||
{
|
||||
#if SMAPI_FOR_MOBILE
|
||||
HashSet<IAssetName> removingAssets = new HashSet<IAssetName>();
|
||||
#endif
|
||||
foreach ((string key, object asset) in contentManager.GetCachedAssets())
|
||||
{
|
||||
if (!predicate(contentManager, key, asset.GetType()))
|
||||
continue;
|
||||
|
||||
AssetName assetName = this.ParseAssetName(key, allowLocales: true);
|
||||
#if !SMAPI_FOR_MOBILE
|
||||
contentManager.InvalidateCache(assetName, dispose);
|
||||
#else
|
||||
removingAssets.Add(assetName);
|
||||
#endif
|
||||
|
||||
if (!invalidatedAssets.ContainsKey(assetName))
|
||||
invalidatedAssets[assetName] = asset.GetType();
|
||||
}
|
||||
#if SMAPI_FOR_MOBILE
|
||||
foreach (IAssetName assetName in removingAssets)
|
||||
contentManager.InvalidateCache(assetName, dispose);
|
||||
#endif
|
||||
}
|
||||
|
||||
// forget localized flags
|
||||
|
|
|
@ -1,9 +1,24 @@
|
|||
using Microsoft.Xna.Framework.Audio;
|
||||
using System.Reflection;
|
||||
using Microsoft.Xna.Framework.Audio;
|
||||
using StardewValley;
|
||||
|
||||
namespace StardewModdingAPI.Framework.ModLoading.RewriteFacades;
|
||||
|
||||
public interface ISoundBankMethods : ISoundBank
|
||||
{
|
||||
CueDefinition GetCueDefinition(string name);
|
||||
void AddCue(CueDefinition cueDefinition)
|
||||
{
|
||||
SoundBank soundBank = (SoundBank)this.GetType()
|
||||
.GetField("soundBank", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
|
||||
?.GetValue(this);
|
||||
soundBank?.AddCue(cueDefinition);
|
||||
}
|
||||
|
||||
CueDefinition GetCueDefinition(string name)
|
||||
{
|
||||
SoundBank soundBank = (SoundBank)this.GetType()
|
||||
.GetField("soundBank", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
|
||||
?.GetValue(this);
|
||||
return soundBank?.GetCueDefinition(name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -654,25 +654,19 @@ namespace StardewModdingAPI.Metadata
|
|||
{
|
||||
Texture2D texture = content.Load<Texture2D>(assetName.BaseName);
|
||||
|
||||
#if SMAPI_FOR_MOBILE
|
||||
this.Reflection.GetField<Texture2D>(titleMenu, "titleButtonsTexture").SetValue(texture);
|
||||
titleMenu.backButton.texture = texture;
|
||||
titleMenu.aboutButton.texture = texture;
|
||||
this.Reflection.GetField<Texture2D>(titleMenu, "languageButton").SetValue(texture);
|
||||
foreach (ClickableTextureComponent button in titleMenu.buttons)
|
||||
button.texture = texture;
|
||||
foreach (TemporaryAnimatedSprite bird in this.Reflection.GetField<List<TemporaryAnimatedSprite>>(titleMenu, "birds").GetValue())
|
||||
bird.texture = texture;
|
||||
#else
|
||||
titleMenu.titleButtonsTexture = texture;
|
||||
#if SMAPI_FOR_MOBILE
|
||||
if (titleMenu.backButton != null)
|
||||
titleMenu.backButton.texture = texture;
|
||||
#else
|
||||
titleMenu.backButton.texture = texture;
|
||||
#endif
|
||||
titleMenu.aboutButton.texture = texture;
|
||||
titleMenu.languageButton.texture = texture;
|
||||
foreach (ClickableTextureComponent button in titleMenu.buttons)
|
||||
button.texture = texture;
|
||||
foreach (TemporaryAnimatedSprite bird in titleMenu.birds)
|
||||
bird.texture = texture;
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue