using HarmonyLib; using SodaCraft.Localizations; using System.Reflection; using UnityEngine; namespace UIFrame.Patch { [HarmonyPatch(typeof(SpriteRendererLocalizor), "Refresh")] public static class PatchSpriteRendererLocalizorRefresh { private static FieldInfo spriteRendererField = AccessTools.Field(typeof(SpriteRendererLocalizor), "spriteRenderer"); public static void Postfix(SpriteRendererLocalizor __instance) { try { if (spriteRendererField == null) { Debug.LogError("Field 'spriteRenderer' not found in SpriteRendererLocalizor."); return; } var targetSpriteRenderer = spriteRendererField.GetValue(__instance) as SpriteRenderer; if (targetSpriteRenderer == null) { Debug.LogError("Target SpriteRenderer is null."); return; } if (GameOriginMainMenuUI.titleSprite != null) { targetSpriteRenderer.sprite = GameOriginMainMenuUI.titleSprite; } Utilities.ConfigApply.ApplyOverwrite(targetSpriteRenderer.transform, GameOriginMainMenuUI.titleTransform); } catch (System.Exception ex) { Debug.LogError($"An error occurred in PatchSpriteRendererLocalizorRefresh: {ex.Message}"); } } } }