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