/// <summary> /// If we have moved greated than 1m from our last position, inform the network /// TODO: move to avatar handler /// </summary> /// <param name="AP"></param> void CheckNetworkUpdating(Vector3d AP) { double dist = Vector3d.Distance(PreviousPosition, MScene.Camera.transform.Position); double td = Math.Abs(Vector3d.Distance(PreviousTarget, MScene.Camera.Focus.transform.Position)); if (((dist > 0.25) || (td > 1)) && (Throttle > MaxNetworkThrottle)) { Throttle = 0; PreviousPosition = MScene.Camera.transform.Position; PreviousTarget = MScene.Camera.Focus.transform.Position; if (Globals.Network.Connected == true) { MMessageBus.MoveAvatarRequest(this, Globals.UserAccount.UserID, AP, Globals.Avatar.GetRotation()); } else { //TODO: follow this event down the rabbit hole and optimize out where possible MMessageBus.AvatarMoved(this, Globals.UserAccount.UserID, AP, Globals.Avatar.GetRotation()); //Console.WriteLine("Avatar " + Globals.Avatar.GetRotation()); } } }