Files
DuckovMods/UIFrame/Patch/PatchSpriteRendererLocalizorRefresh.cs

44 lines
1.5 KiB
C#

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}");
}
}
}
}