Files
0A-KFCommonUtilityLib/Harmony/HideMarkerOnAimPatch.cs
2025-06-04 16:13:32 +09:30

46 lines
1.5 KiB
C#

using HarmonyLib;
using UnityEngine;
[HarmonyPatch]
public class HideMarkerOnAimPatch
{
[HarmonyPatch(typeof(XUiC_OnScreenIcons), nameof(XUiC_OnScreenIcons.Init))]
[HarmonyPostfix]
private static void Postfix_Init_XUiC_OnScreenIcons(XUiC_OnScreenIcons __instance)
{
GameObject iconParent = new GameObject("AllIconParent");
iconParent.transform.SetParent(__instance.ViewComponent.UiTransform);
iconParent.transform.localScale = Vector3.one;
}
[HarmonyPatch(typeof(XUiC_OnScreenIcons), nameof(XUiC_OnScreenIcons.CreateIcon))]
[HarmonyPostfix]
private static void Postfix_CreateIcon_XUiC_OnScreenIcons(XUiC_OnScreenIcons __instance)
{
if (__instance.ViewComponent?.UiTransform)
{
__instance.screenIconList[__instance.screenIconList.Count - 1].Transform.SetParent(__instance.ViewComponent.UiTransform.Find("AllIconParent"));
}
}
[HarmonyPatch(typeof(XUiC_OnScreenIcons), nameof(XUiC_OnScreenIcons.Update))]
[HarmonyPrefix]
private static bool Prefix_Update_XUiC_OnScreenIcons(XUiC_OnScreenIcons __instance)
{
GameObject iconParent = __instance.ViewComponent.UiTransform.Find("AllIconParent").gameObject;
if (!iconParent)
{
return true;
}
if (__instance.xui.playerUI.entityPlayer.bAimingGun)
{
iconParent.SetActive(false);
}
else
{
iconParent.SetActive(true);
}
return true;
}
}