using System.Reflection; using NitroxModel.Helper; using UnityEngine; namespace NitroxPatcher.Patches.Dynamic; public sealed partial class Player_WarpForward_Patch : NitroxPatch, IDynamicPatch { private static readonly MethodInfo TARGET_METHOD = Reflect.Method((Player t) => t.OnConsoleCommand_warpforward(default)); public static bool Prefix(Player __instance, NotificationCenter.Notification n) { Vehicle currentMountedVehicle = __instance.currentMountedVehicle; if (!currentMountedVehicle) { return true; } // Code from the original method DevConsole.ParseFloat(n, 0, out var value, 3f); Transform aimingTransform = __instance.camRoot.GetAimingTransform(); Vector3 targetPosition = __instance.transform.position + aimingTransform.forward * value; currentMountedVehicle.TeleportVehicle(targetPosition, currentMountedVehicle.transform.rotation); __instance.WaitForTeleportation(); return false; } }