using System.Reflection; using NitroxClient.GameLogic; using NitroxModel.DataStructures; using NitroxModel.Helper; namespace NitroxPatcher.Patches.Dynamic; /// /// Prevents from happening if local player doesn't have lock on creature or if the action is not whitelisted /// public sealed partial class CreatureAction_StartPerform_Patch : NitroxPatch, IDynamicPatch { public static readonly MethodInfo TARGET_METHOD = Reflect.Method((CreatureAction t) => t.StartPerform(default, default)); public static bool Prefix(CreatureAction __instance) { if (!__instance.TryGetNitroxId(out NitroxId id) || Resolve().HasAnyLockType(id)) { return true; } return Resolve().IsCreatureActionWhitelisted(__instance); } }