public static Vector2 GetMinecartMechPoint(Player mountedPlayer, int offX, int offY)
{
int num1 = Math.Sign(mountedPlayer.velocity.X);
if (num1 == 0)
num1 = mountedPlayer.direction;
float num2 = (float)offX;
int num3 = Math.Sign(offX);
if (mountedPlayer.direction != num1)
num2 -= (float)num3;
if (num1 == -1)
num2 -= (float)num3;
Vector2 vector2_1 = Utils.RotatedBy(new Vector2(num2 * (float)num1, (float)offY), (double)mountedPlayer.fullRotation, new Vector2());
Vector2 vector2_2 = Utils.RotatedBy(new Vector2(MathHelper.Lerp(0.0f, -8f, mountedPlayer.fullRotation / 0.7853982f), MathHelper.Lerp(0.0f, 2f, Math.Abs(mountedPlayer.fullRotation / 0.7853982f))), (double)mountedPlayer.fullRotation, new Vector2());
if (num1 == Math.Sign(mountedPlayer.fullRotation))
vector2_2 *= MathHelper.Lerp(1f, 0.6f, Math.Abs(mountedPlayer.fullRotation / 0.7853982f));
return mountedPlayer.Bottom + vector2_1 + vector2_2;
}