Files
Tarkov-UIFixes/Patches/RemoveDoorActionsPatch.cs
2024-07-12 16:17:42 -07:00

38 lines
1.1 KiB
C#

using HarmonyLib;
using SPT.Reflection.Patching;
using System;
using System.Linq;
using System.Reflection;
namespace UIFixes;
public class RemoveDoorActionsPatch : ModulePatch
{
private static readonly string[] UnimplementedActions = ["Bang & clear", "Flash & clear", "Move in"];
protected override MethodBase GetTargetMethod()
{
Type type = typeof(GetActionsClass);
return AccessTools.GetDeclaredMethods(type).FirstOrDefault(x =>
{
var parameters = x.GetParameters();
return x.Name == nameof(GetActionsClass.GetAvailableActions) && parameters[0].Name == "owner";
});
}
[PatchPostfix]
public static void Postfix(ref ActionsReturnClass __result)
{
if (Settings.RemoveDisabledActions.Value && __result != null)
{
for (int i = __result.Actions.Count - 1; i >= 0; i--)
{
if (UnimplementedActions.Contains(__result.Actions[i].Name))
{
__result.Actions.RemoveAt(i);
}
}
}
}
}