internal void Interpolate(int netHandle, int gameHandle, Vector3 newPos, CherryMPShared.Vector3 newVelocity, Vector3 newRotation)
        {
            if (!Interpolations.ContainsKey(netHandle))
            {
                var interp = new UnoccupiedVehicleInterpolator(gameHandle, netHandle);
                interp.SetTargetPosition(newPos, newVelocity, newRotation);

                Interpolations.Set(netHandle, interp);
            }
            else
            {
                Interpolations[netHandle].SetTargetPosition(newPos, newVelocity, newRotation);
            }
        }
        internal void SetTargetPosition(Vector3 targetPos, CherryMPShared.Vector3 velocity, Vector3 rotation)
        {
            var dir = targetPos - _prop.Position.ToVector();

            NetInterpolation.vecTarget = targetPos;
            NetInterpolation.vecError  = dir;

            NetInterpolation.StartTime  = Util.Util.TickCount;
            NetInterpolation.FinishTime = NetInterpolation.StartTime + 400;
            NetInterpolation.LastAlpha  = 0f;

            _velocity = velocity;
            _rotation = rotation;

            _startPos = _prop.Position.ToVector();
            _startRot = _prop.Rotation.ToVector();

            _prop.Rotation = rotation.ToLVector();
            _prop.Position = targetPos.ToLVector();

            HasFinished = false;
        }