using MelonLoader; using System.Collections; using UnityEngine; namespace PvZ_Fusion_Translator.AssetStore { public static class TextureStore { internal static Dictionary textureDict = []; internal static Dictionary spriteDict = []; internal static void Init() => FileLoader.LoadTextures(); internal static void Reload() { textureDict.Clear(); #if MULTI_LANGUAGE RestoreTextures(); #endif FileLoader.LoadTextures(); } public static IEnumerator ReplaceTexturesCoroutine() { while (true) { ReplaceTextures(); yield return new WaitForSeconds(0.5f); // Adjust this interval as needed } } public static void ReplaceTextures() { Texture2D[] textures = Resources.FindObjectsOfTypeAll(); foreach (Texture2D texture in textures) { if (texture.name.StartsWith("replaced_")) continue; Utils.TryReplaceTexture2D(texture); } } #if MULTI_LANGUAGE public static void RestoreTextures() { Texture2D[] textures = Resources.FindObjectsOfTypeAll(); foreach (Texture2D texture in textures) { if (texture != null) { texture.name = texture.name.Replace("replaced_", ""); } } } #endif /*public static void LogAll() { Log.LogInfo("Logging all TextureStore entries."); foreach (KeyValuePair entry in textureDict) { Log.LogInfo("TextureDict Entry: " + entry.Key + " | " + entry.Value); } }*/ } }