Fix quick access panel autohide/never not working
This commit is contained in:
@@ -3,7 +3,6 @@ using EFT.InventoryLogic;
|
|||||||
using EFT.UI;
|
using EFT.UI;
|
||||||
using EFT.UI.DragAndDrop;
|
using EFT.UI.DragAndDrop;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
@@ -1,33 +1,74 @@
|
|||||||
using Aki.Reflection.Patching;
|
using Aki.Reflection.Patching;
|
||||||
|
using Bsg.GameSettings;
|
||||||
|
using Comfort.Common;
|
||||||
using EFT.InputSystem;
|
using EFT.InputSystem;
|
||||||
using EFT.InventoryLogic;
|
using EFT.InventoryLogic;
|
||||||
|
using EFT.UI;
|
||||||
|
using EFT.UI.Settings;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
namespace UIFixes
|
namespace UIFixes
|
||||||
{
|
{
|
||||||
public class FixWeaponBindsDisplayPatch : ModulePatch
|
public static class QuickAccessPanelPatches
|
||||||
{
|
{
|
||||||
protected override MethodBase GetTargetMethod()
|
public static void Enable()
|
||||||
{
|
{
|
||||||
return AccessTools.Method(R.ControlSettings.Type, "GetBoundItemNames");
|
new FixWeaponBindsDisplayPatch().Enable();
|
||||||
|
new FixVisibilityPatch().Enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
[PatchPostfix]
|
public class FixWeaponBindsDisplayPatch : ModulePatch
|
||||||
public static void Postfix(object __instance, EBoundItem boundItem, ref string __result)
|
|
||||||
{
|
{
|
||||||
var instance = new R.ControlSettings(__instance);
|
protected override MethodBase GetTargetMethod()
|
||||||
switch(boundItem)
|
|
||||||
{
|
{
|
||||||
case EBoundItem.Item1:
|
return AccessTools.Method(R.ControlSettings.Type, "GetBoundItemNames");
|
||||||
__result = instance.GetKeyName(EGameKey.SecondaryWeapon);
|
}
|
||||||
break;
|
|
||||||
case EBoundItem.Item2:
|
[PatchPostfix]
|
||||||
__result = instance.GetKeyName(EGameKey.PrimaryWeaponFirst);
|
public static void Postfix(object __instance, EBoundItem boundItem, ref string __result)
|
||||||
break;
|
{
|
||||||
case EBoundItem.Item3:
|
var instance = new R.ControlSettings(__instance);
|
||||||
__result = instance.GetKeyName(EGameKey.PrimaryWeaponSecond);
|
switch (boundItem)
|
||||||
break;
|
{
|
||||||
|
case EBoundItem.Item1:
|
||||||
|
__result = instance.GetKeyName(EGameKey.SecondaryWeapon);
|
||||||
|
break;
|
||||||
|
case EBoundItem.Item2:
|
||||||
|
__result = instance.GetKeyName(EGameKey.PrimaryWeaponFirst);
|
||||||
|
break;
|
||||||
|
case EBoundItem.Item3:
|
||||||
|
__result = instance.GetKeyName(EGameKey.PrimaryWeaponSecond);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FixVisibilityPatch : ModulePatch
|
||||||
|
{
|
||||||
|
protected override MethodBase GetTargetMethod()
|
||||||
|
{
|
||||||
|
return AccessTools.Method(typeof(InventoryScreenQuickAccessPanel), nameof(InventoryScreenQuickAccessPanel.method_4));
|
||||||
|
}
|
||||||
|
|
||||||
|
// BSGs implementation of this method is just straight up wrong, so reimplementing it
|
||||||
|
[PatchPrefix]
|
||||||
|
public static bool Prefix(InventoryScreenQuickAccessPanel __instance, bool visible)
|
||||||
|
{
|
||||||
|
GameSetting<EVisibilityMode> quickSlotsVisibility = Singleton<SharedGameSettingsClass>.Instance.Game.Settings.QuickSlotsVisibility;
|
||||||
|
bool disabled = __instance.IsDisabled;
|
||||||
|
|
||||||
|
if (visible && !disabled && quickSlotsVisibility != EVisibilityMode.Never)
|
||||||
|
{
|
||||||
|
__instance.AnimatedShow(quickSlotsVisibility == EVisibilityMode.Autohide);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
__instance.AnimatedHide();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,7 +16,7 @@ namespace UIFixes
|
|||||||
ConfirmDialogKeysPatches.Enable();
|
ConfirmDialogKeysPatches.Enable();
|
||||||
new FixMailRecieveAllPatch().Enable();
|
new FixMailRecieveAllPatch().Enable();
|
||||||
FixTooltipPatches.Enable();
|
FixTooltipPatches.Enable();
|
||||||
new FixWeaponBindsDisplayPatch().Enable();
|
QuickAccessPanelPatches.Enable();
|
||||||
FocusFleaOfferNumberPatches.Enable();
|
FocusFleaOfferNumberPatches.Enable();
|
||||||
HideoutSearchPatches.Enable();
|
HideoutSearchPatches.Enable();
|
||||||
HideoutLevelPatches.Enable();
|
HideoutLevelPatches.Enable();
|
||||||
|
Reference in New Issue
Block a user