Open sorting table automatically
This commit is contained in:
35
Patches/OpenSortingTablePatch.cs
Normal file
35
Patches/OpenSortingTablePatch.cs
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
using Aki.Reflection.Patching;
|
||||||
|
using Comfort.Common;
|
||||||
|
using EFT.UI;
|
||||||
|
using HarmonyLib;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace UIFixes
|
||||||
|
{
|
||||||
|
public class OpenSortingTablePatch : ModulePatch
|
||||||
|
{
|
||||||
|
private static readonly EItemUiContextType[] AllowedScreens = [EItemUiContextType.InventoryScreen, EItemUiContextType.ScavengerInventoryScreen];
|
||||||
|
|
||||||
|
|
||||||
|
protected override MethodBase GetTargetMethod()
|
||||||
|
{
|
||||||
|
return AccessTools.Method(typeof(ItemUiContext), nameof(ItemUiContext.QuickMoveToSortingTable));
|
||||||
|
}
|
||||||
|
|
||||||
|
[PatchPrefix]
|
||||||
|
public static void Prefix(ItemUiContext __instance)
|
||||||
|
{
|
||||||
|
if (!AllowedScreens.Contains(__instance.ContextType) || Plugin.InRaid())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SortingTableClass sortingTable = __instance.R().InventoryController.Inventory.SortingTable;
|
||||||
|
if (sortingTable != null && !sortingTable.IsVisible)
|
||||||
|
{
|
||||||
|
Singleton<CommonUI>.Instance.InventoryScreen.method_6();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -47,6 +47,7 @@ namespace UIFixes
|
|||||||
new LoadMagPresetsPatch().Enable();
|
new LoadMagPresetsPatch().Enable();
|
||||||
KeepWindowsOnScreenPatches.Enable();
|
KeepWindowsOnScreenPatches.Enable();
|
||||||
new ContextMenuShortcutPatch().Enable();
|
new ContextMenuShortcutPatch().Enable();
|
||||||
|
new OpenSortingTablePatch().Enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool InRaid()
|
public static bool InRaid()
|
||||||
|
|||||||
Reference in New Issue
Block a user