Exemplo n.º 1
0
 public void HandleEvent(object sender, RotateEventArgs e)
 {
     if (sender is IRotatable)
     {
         HandleEvent(sender as IRotatable, e);
     }
 }
Exemplo n.º 2
0
 public iOSRotateEventArgs(UIGestureRecognizer gr, RotateEventArgs previous, CoreGraphics.CGPoint locationAtStart)
 {
     Cancelled    = (gr.State == UIGestureRecognizerState.Cancelled || gr.State == UIGestureRecognizerState.Failed);
     ViewPosition = iOSEventArgsHelper.GetViewPosition(gr.View.Frame);
     Touches      = iOSEventArgsHelper.GetTouches(gr, 2, previous, locationAtStart);
     base.CalculateAngles(previous);
 }
Exemplo n.º 3
0
        private void Instance_BarrelRotate(object sender, RotateEventArgs e)
        {
            Tank movedTank = tankDict[e.ConnID];

            movedTank.SetAngle(e.Angle);
            Console.WriteLine(e.ConnID + " Rotated");
        }
Exemplo n.º 4
0
        bool OnRotated(MotionEvent ev, MotionEvent.PointerCoords[] coords)
        {
            //if (_debugEvents) System.Diagnostics.Debug.WriteLine("onRotated [{0}]", _id);
            StopTapLongPress();
            _rotating = true;

            var _view = (Android.Views.View)_weakReferenceView?.Get();

            if (_view == null || _listeners == null || !_listeners.Any())
            {
                return(false);
            }

            bool handled = false;

            if (_previousRotateArgs != null)
            {
                foreach (var listener in _listeners)
                {
                    if (listener.HandlesRotating || listener.HandlesRotated)
                    {
                        RotateEventArgs args = new AndroidRotateEventArgs(ev, coords, _previousRotateArgs, _view, _viewLocationAtOnDown);
                        args.Listener = listener;
                        listener.OnRotated(args);
                        handled |= args.Handled;
                        //if (args.Handled)
                        //	break;
                    }
                }
                _previousRotateArgs = null;
            }
            return(handled);
        }
Exemplo n.º 5
0
 private void RotateHandler(object sender, RotateEventArgs e)
 {
     bUpdate = false;
     numericUpDown1.Value = (decimal)(e.RotationX / Math.PI * 180);
     numericUpDown2.Value = (decimal)(e.RotationY / Math.PI * 180);
     numericUpDown3.Value = (decimal)(e.RotationZ / Math.PI * 180);
     bUpdate = true;
 }
Exemplo n.º 6
0
        // x = -512 to 511
        // y = -512 to 511
        // z = -512 to 511

        private void Controller_Rotate(object sender, RotateEventArgs e)
        {
            int z = ((e.R * -1) + 511) * 32;

            scController.SetJoystickAxis(z, HID_USAGES.HID_USAGE_Z, vJoyTypes.Commander);

            //this.scController.VisualState.UpdateAxis3((UInt32)z);
        }
Exemplo n.º 7
0
        public iOSRotateEventArgs(UIGestureRecognizer gr, RotateEventArgs previous)
        {
            Cancelled       = (gr.State == UIGestureRecognizerState.Cancelled || gr.State == UIGestureRecognizerState.Failed);
            ElementPosition = gr.View.BoundsInFormsCoord();
            ElementTouches  = iOSEventArgsHelper.GetTouches(gr, gr.View, 2, previous);
            WindowTouches   = iOSEventArgsHelper.GetTouches(gr, null, 2, previous);

            CalculateAngles(previous);
        }
Exemplo n.º 8
0
        // twist = -32 to 31

        private void Controller_Rotate(object sender, RotateEventArgs e)
        {
            int z = ((e.R * -1) + 32) * 16 * 32;

            this.swff2Controller.VisualState.UpdateAxis3((UInt32)z);

            z = Curves.Calculate(z - (16 * 1024), (16 * 1024), .4) + 16 * 1024;

            swff2Controller.SetJoystickAxis(z, HID_USAGES.HID_USAGE_Z, vJoyTypes.StickAndPedals);
        }
 void OnRotate(Player p, RotateEventArgs args)
 {
     if (!(bool)(p.ExtraData.GetIfExist <object, object>("WoMCompass") ?? false))
     {
         return;
     }
     else
     {
         WOM.SendDetail(p, "(" + SubstringLoop(p.Rot[0] / (int)(255 / (compass.Length - 1))) + ")");
     }
 }
Exemplo n.º 10
0
        public override void Execute(object sender, EventArgs eventArgs)
        {
            //Get Rotate event arguemetns
            RotateEventArgs rotateEventArgs = (RotateEventArgs)eventArgs;

            //Raise Rotate Event
            if (EventManager.RotateEvent != null)
            {
                EventManager.RotateEvent(rotateEventArgs.rotateDirection);
            }
        }
Exemplo n.º 11
0
        void OnRotate(object sender, RotateEventArgs e)
        {
            string msg = string.Format("Rotate Loc:({0},{1}) Angle:{2}", e.Location.X, e.Location.Y, e.TotalDegrees);

            Debug.WriteLine(msg);

            if (!e.Begin && !e.End)
            {
                _rotation -= e.Degrees;
                Invalidate();
            }
        }
        private string RotateInfo(string eventName, RotateEventArgs e)
        {
            StringBuilder sb = new StringBuilder(eventName);

            sb.Append($" {GetElementName(e)} with {e.NumberOfTouches} fingers");
            sb.Append($", DeltaAngle = {e.DeltaAngle:F}");
            sb.Append($", TotalAngle = {e.TotalAngle:F}");
            sb.Append($", Center =  {e.Center.X:F}/{e.Center.Y:F}");
            AddTouches(sb, e);

            return(sb.ToString());
        }
Exemplo n.º 13
0
        public void HandleEvent(IRotatable sender, RotateEventArgs e)
        {
            if (sender == null || e == null)
            {
                return;
            }

            if (e.Direction != LastDirection)
            {
                DirectionChanged = true;
                LastDirection    = e.Direction;
            }
            else
            {
                DirectionChanged = false;
            }

            if (e.Direction == RotatingDirections.None)
            {
                return;
            }

            if (sender is Polyomino)
            {
                Polyomino polyomino = sender as Polyomino;

                if (DirectionChanged)
                {
                    foreach (Mino mino in polyomino.Minoes)
                    {
                        Vector2 vector = mino.Position - polyomino.OriginMino.Position;
                        float   r      = 0;
                        switch (e.Direction)
                        {
                        case RotatingDirections.Clockwise:
                            r = +MathHelper.PiOver2;
                            break;

                        case RotatingDirections.Counterclockwise:
                            r = -MathHelper.PiOver2;
                            break;

                        default:
                            break;
                        }
                        var x = MathHelper.Clamp(Convert.ToSingle(vector.X * Math.Cos(r) - vector.Y * Math.Sin(r)), float.MinValue, float.MaxValue);
                        var y = MathHelper.Clamp(Convert.ToSingle(vector.X * Math.Sin(r) + vector.Y * Math.Cos(r)), float.MinValue, float.MaxValue);
                        mino.Position = polyomino.OriginMino.Position + new Vector2(x, y);
                    }
                }
            }
        }
Exemplo n.º 14
0
    public void onRotate(RotateEventArgs args)
    {
        float angle = args.Angle * speed;

        if (args.RotationDirection == RotationDirections.CW)
        {
            angle *= -1;
        }

        Vector3 rot = new Vector3(0, 0, angle);

        transform.Rotate(rot);
    }
Exemplo n.º 15
0
#pragma warning restore 0649

            public bool OnRotate(global::Com.Mapbox.Android.Gestures.RotateGestureDetector p0, float p1, float p2)
            {
                var __h = OnRotateHandler;

                if (__h == null)
                {
                    return(false);
                }
                var __e = new RotateEventArgs(true, p0, p1, p2);

                __h(sender, __e);
                return(__e.Handled);
            }
Exemplo n.º 16
0
        // x = -512 to 511
        // y = -512 to 511
        // z = -512 to 511
        // z = 0 to 255

        private void Controller_Rotate(object sender, RotateEventArgs e)
        {
            bool button3 = e.R < 64;
            bool button4 = e.R > 128 + 64;

            int z = e.R * 128;

            chPedals.SetJoystickAxis(z, HID_USAGES.HID_USAGE_RZ, vJoyTypes.StickAndPedals);

            //ChPedalsController.SetJoystickButton(button3, 23, vJoyTypes.StickAndPedals);
            //ChPedalsController.SetJoystickButton(button4, 24, vJoyTypes.StickAndPedals);

            //this.ChPedalsController.VisualState.UpdateAxis3((UInt32)z);
        }
        private void OnRotate(object sender, RotateEventArgs re)
        {
            //for (int i = 0; i < re.TouchBlobs.Count; i++)
            //{
            //    BlobInfo bi = re.TouchBlobs[i];
            //    System.Diagnostics.Trace.WriteLine(bi.ToString());
            //}
            //System.Diagnostics.Trace.WriteLine(re.ToString());

            Matrix m = this.image.RenderTransform.Value;

            m.Rotate(re.DeltaAngle * 180 / Math.PI);
            this.image.RenderTransform = new MatrixTransform(m);
        }
Exemplo n.º 18
0
    private void FireRotateEvent(float angle)
    {
        Vector2         midPoint      = gestureFinger1.position.GetMidPoint(gestureFinger2.position);
        GameObject      hitGameObject = GetHitGameObject(midPoint);
        RotateEventArgs args          = new RotateEventArgs(gestureFinger1, gestureFinger2, angle, hitGameObject);

        OnRotate?.Invoke(this, args);

        if (hitGameObject != null)
        {
            if (hitGameObject.TryGetComponent(out IRotatable rotate))
            {
                rotate.OnRotate(args);
            }
        }
    }
Exemplo n.º 19
0
    private void FireRotateEvent(float angle, RotationDirections dir)
    {
        Vector2 midPoint = GetMidPoint(gesture_finger1.position, gesture_finger2.position);

        GameObject hitObj = GetHit(midPoint);

        RotateEventArgs args = new RotateEventArgs(gesture_finger1, gesture_finger2, angle, dir, hitObj);

        if (OnRotate != null)
        {
            OnRotate(this, args);
        }

        if (hitObj != null)
        {
            IRotate rot = hitObj.GetComponent <IRotate>();
            if (rot != null)
            {
                rot.onRotate(args);
            }
        }
    }
Exemplo n.º 20
0
 protected override void RotateCanvas(RotateEventArgs args)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 21
0
        void OnPinchAndRotate(UIGestureRecognizer gr)
        {
            PinchEventArgs  pinchEventArgs  = new iOSPinchEventArgs(gr, _previousPinchArgs, _viewLocationAtOnDown);
            RotateEventArgs rotateEventArgs = new iOSRotateEventArgs(gr, _previousRotateArgs, _viewLocationAtOnDown);

            if (touchCount == 0)
            {
                //System.Diagnostics.Debug.WriteLine("onPinchAndRotate set _viewLocationAtOnDown");
                _viewLocationAtOnDown = ViewLocationInWindow(gr.View);
                touchCount++;
            }
            bool handled = false;

            if (gr.State == UIGestureRecognizerState.Ended || gr.State == UIGestureRecognizerState.Cancelled || gr.State == UIGestureRecognizerState.Failed)
            {
                if (_previousPinchArgs == null && _previousRotateArgs == null)
                {
                    return;
                }
                foreach (var listener in _listeners)
                {
                    //if (handled)
                    //  break;
                    if (listener.HandlesPinching || listener.HandlesPinched)
                    {
                        var taskArgs = new PinchEventArgs(pinchEventArgs);
                        taskArgs.Listener = listener;
                        listener.OnPinched(taskArgs);
                        if (taskArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                foreach (var listener in _listeners)
                {
                    //if (handled)
                    //  break;
                    if (listener.HandlesRotating || listener.HandlesRotated)
                    {
                        var taskArgs = new RotateEventArgs(rotateEventArgs);
                        taskArgs.Listener = listener;
                        listener.OnRotated(taskArgs);
                        if (taskArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                //gr.CancelsTouchesInView = handled;
                _previousPinchArgs  = null;
                _previousRotateArgs = null;
                _pinching           = false;
                _rotating           = false;
                _panning            = false;
                _longPressing       = false;
            }
            else
            {
                foreach (var listener in _listeners)
                {
                    if (listener.HandlesPinching)
                    {
                        var taskArgs = new PinchEventArgs(pinchEventArgs);
                        taskArgs.Listener = listener;
                        listener.OnPinching(taskArgs);
                        handled = handled || pinchEventArgs.Handled;
                        if (taskArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                foreach (var listener in _listeners)
                {
                    if (listener.HandlesRotating)
                    {
                        var taskArgs = new RotateEventArgs(rotateEventArgs);
                        taskArgs.Listener = listener;
                        listener.OnRotating(taskArgs);
                        handled = handled || rotateEventArgs.Handled;
                        if (taskArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                _previousPinchArgs  = pinchEventArgs;
                _previousRotateArgs = rotateEventArgs;
            }

            /*
             * foreach (var listener in _listeners)
             * {
             *  //if (handled)
             *  //	break;
             *  if (gr.State != UIGestureRecognizerState.Ended && gr.State != UIGestureRecognizerState.Cancelled && gr.State != UIGestureRecognizerState.Failed)
             *  {
             *      if (listener.HandlesPinching)
             *      {
             *          var taskArgs = new PinchEventArgs(pinchEventArgs);
             *          taskArgs.Listener = listener;
             *          listener.OnPinching(taskArgs);
             *          handled = handled ||  pinchEventArgs.Handled;
             *          if (taskArgs.Handled)
             *              break;
             *      }
             *  }
             * }
             * foreach (var listener in _listeners)
             * {
             *  //if (handled)
             *  //	break;
             *  if (gr.State != UIGestureRecognizerState.Ended && gr.State != UIGestureRecognizerState.Cancelled && gr.State != UIGestureRecognizerState.Failed)
             *  {
             *      if (listener.HandlesRotating)
             *      {
             *          var taskArgs = new RotateEventArgs(rotateEventArgs);
             *          taskArgs.Listener = listener;
             *          listener.OnRotating(taskArgs);
             *          handled = handled ||  rotateEventArgs.Handled;
             *          if (taskArgs.Handled)
             *              break;
             *      }
             *  }
             * }
             * _previousPinchArgs = pinchEventArgs;
             * _previousRotateArgs = rotateEventArgs;
             * //gr.CancelsTouchesInView = handled;
             * if (handled)
             *  return;
             * if (_previousPinchArgs == null && _previousRotateArgs == null)
             *  return;
             * foreach (var listener in _listeners)
             * {
             *  //if (handled)
             *  //	break;
             *  if (listener.HandlesPinching || listener.HandlesPinched)
             *  {
             *      var taskArgs = new PinchEventArgs(pinchEventArgs);
             *      taskArgs.Listener = listener;
             *      listener.OnPinched(taskArgs);
             *      if (taskArgs.Handled)
             *          break;
             *  }
             * }
             * foreach (var listener in _listeners)
             * {
             *  //if (handled)
             *  //	break;
             *  if (listener.HandlesRotating || listener.HandlesRotated)
             *  {
             *      var taskArgs = new RotateEventArgs(rotateEventArgs);
             *      taskArgs.Listener = listener;
             *      listener.OnRotated(taskArgs);
             *      if (taskArgs.Handled)
             *          break;
             *  }
             * }
             * //gr.CancelsTouchesInView = handled;
             * _previousPinchArgs = null;
             * _previousRotateArgs = null;
             * _pinching = false;
             * _rotating = false;
             * _panning = false;
             * _longPressing = false;
             */
        }
Exemplo n.º 22
0
 protected virtual void OnRotated(RotateEventArgs e)
 {
     AddText("Rotated " + GetElementName(e) + ", DeltaAngle = " + e.DeltaAngle + ", TotalAngle = " + e.TotalAngle + ", Center =" + e.Center.X + "/" + e.Center.Y);
 }
Exemplo n.º 23
0
 void OnPlayerRotate_Normal(Player sender, RotateEventArgs args)
 {
     Curse(sender);
 }
        private void HandleIncomingPos(byte[] message) {
            if (!IsLoggedIn)
                return;

            byte thisid = message[0];

            if (thisid != 0xFF && thisid != ID && thisid != 0) {
                //TODO Player.GlobalMessageOps("Player sent a malformed packet!");
                Kick("Hacked Client!");
                return;
            }

            ushort x = Packet.NTHO(message, 1);
            ushort y = Packet.NTHO(message, 3);
            ushort z = Packet.NTHO(message, 5);
            byte rotx = message[7];
            byte roty = message[8];
            oldPos = new Vector3S(Pos);
            Vector3S fromPosition = new Vector3S(oldPos.x, oldPos.z, oldPos.y);
            Pos.x = (short)x;
            Pos.y = (short)y;
            Pos.z = (short)z;
            oldRot = Rot;
            Rot = new byte[2] { rotx, roty };
            bool needsOwnPos = false;
            if (!(fromPosition.x == Pos.x && fromPosition.y == Pos.y && fromPosition.z == Pos.z)) {
                MoveEventArgs eargs = new MoveEventArgs(new Vector3S(fromPosition), new Vector3S(Pos));
                eargs = OnPlayerMove.Call(this, eargs, OnAllPlayersMove);
                if (eargs.Canceled) {
                    Pos = fromPosition;
                    oldPos = fromPosition;
                    needsOwnPos = true;
                }
                else {
                    if (eargs.ToPosition / 32 != eargs.FromPosition / 32) {
                        eargs = OnPlayerBigMove.Call(this, eargs, OnAllPlayersBigMove);
                        if (eargs.Canceled) {
                            Pos = fromPosition;
                            oldPos = fromPosition;
                            needsOwnPos = true;
                        }
                        else {
                            Pos = eargs.ToPosition;
                            oldPos = eargs.FromPosition;
                        }
                    }
                    else {
                        Pos = eargs.ToPosition;
                        oldPos = eargs.FromPosition;
                    }
                }
            }
            if (oldRot[0] != Rot[0] || oldRot[1] != Rot[1]) {
                RotateEventArgs eargs = new RotateEventArgs(Rot[0], Rot[1]);
                eargs = OnPlayerRotate.Call(this, eargs, OnAllPlayersRotate);
                if (eargs.Canceled) {
                    Rot = eargs.Rot;
                    needsOwnPos = true;
                }
                else {
                    Rot = eargs.Rot;
                }
            }
            if (needsOwnPos)
                SendThisPlayerTheirOwnPos();
            UpdatePosition(false);
        }
Exemplo n.º 25
0
 public AndroidRotateEventArgs(MotionEvent current, MotionEvent.PointerCoords[] coords, RotateEventArgs previous, View view, int[] startLocation)
 {
     Cancelled    = (current.Action == MotionEventActions.Cancel);
     ViewPosition = AndroidEventArgsHelper.GetViewPosition(view);
     Touches      = AndroidEventArgsHelper.GetTouches(coords, previous, view, startLocation);
     CalculateAngles(previous);
 }
 protected virtual void OnRotated(RotateEventArgs e)
 {
     AddText(RotateInfo("Rotated", e));
 }
Exemplo n.º 27
0
        void OnPinchAndRotate(UIGestureRecognizer gr)
        {
            if (touchCount == 0)
            {
                touchCount++;
            }

            PinchEventArgs  pinchEventArgs  = new iOSPinchEventArgs(gr, _previousPinchArgs);
            RotateEventArgs rotateEventArgs = new iOSRotateEventArgs(gr, _previousRotateArgs);

            if (gr.State == UIGestureRecognizerState.Ended || gr.State == UIGestureRecognizerState.Cancelled || gr.State == UIGestureRecognizerState.Failed)
            {
                if (_previousPinchArgs == null && _previousRotateArgs == null)
                {
                    return;
                }
                foreach (var listener in _listeners)
                {
                    if (listener.HandlesPinching || listener.HandlesPinched)
                    {
                        pinchEventArgs.Listener = listener;
                        listener.OnPinched(pinchEventArgs);
                        if (pinchEventArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                foreach (var listener in _listeners)
                {
                    if (listener.HandlesRotating || listener.HandlesRotated)
                    {
                        rotateEventArgs.Listener = listener;
                        listener.OnRotated(rotateEventArgs);
                        if (rotateEventArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                _previousPinchArgs  = null;
                _previousRotateArgs = null;
                _pinching           = false;
                _rotating           = false;
                _panning            = false;
                _longPressing       = false;
            }
            else
            {
                foreach (var listener in _listeners)
                {
                    if (listener.HandlesPinching)
                    {
                        pinchEventArgs.Listener = listener;
                        listener.OnPinching(pinchEventArgs);
                        if (pinchEventArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                foreach (var listener in _listeners)
                {
                    if (listener.HandlesRotating)
                    {
                        rotateEventArgs.Listener = listener;
                        listener.OnRotating(rotateEventArgs);
                        if (rotateEventArgs.Handled)
                        {
                            break;
                        }
                    }
                }
                _previousPinchArgs  = pinchEventArgs;
                _previousRotateArgs = rotateEventArgs;
            }
        }
Exemplo n.º 28
0
 private void OnRotate(object sender, RotateEventArgs e)
 {
     PrintBaseGestureEventArgs(e);
 }
Exemplo n.º 29
0
 public void OnRotate(RotateEventArgs args)
 {
     transform.Rotate(Vector3.forward, args.Angle * rotateSpeed);
 }
Exemplo n.º 30
0
 protected override void RotateCanvas(RotateEventArgs args)
 {
     this.Rotation += args.Angle;
     //args.Center.DebugVector();
     System.Diagnostics.Debug.WriteLine("ISROTATED");
 }
		protected virtual void OnRotated(RotateEventArgs e)
		{
			AddText("Rotated " + GetElementName(e) + ", DeltaAngle = " + e.DeltaAngle + ", TotalAngle = " + e.TotalAngle + ", Center =" + e.Center.X + "/" + e.Center.Y);
		}
Exemplo n.º 32
0
        void OnRotate( object sender, RotateEventArgs e )
        {
            string msg = string.Format( "Rotate Loc:({0},{1}) Angle:{2}", e.Location.X, e.Location.Y, e.TotalDegrees );
            Debug.WriteLine( msg );

            if ( !e.Begin && !e.End )
            {
                _rotation -= e.Degrees;
                Invalidate();
            }
        }
Exemplo n.º 33
0
 void OnPlayerRotate_Normal(Player sender, RotateEventArgs args) {
     Curse(sender);
 }
 void OnRotate(Player p, RotateEventArgs args)
 {
     if (!(bool)(p.ExtraData.GetIfExist<object, object>("WoMCompass") ?? false)) { return; }
     else
     {
         WOM.SendDetail(p, "(" + SubstringLoop(p.Rot.x / (int)(255 / (compass.Length - 1))) + ")");
     }
 }
Exemplo n.º 35
0
 protected abstract void RotateCanvas(RotateEventArgs args);
Exemplo n.º 36
0
 private bool OnRotate( GestureInfo info )
 {
     if ( Rotate != null )
     {
         if ( info.Begin )
         {
             _lastRotation = 0;
         }
         var args = new RotateEventArgs( info, _lastRotation );
         if ( !info.Begin )
         {
             // First rotation is the angle the fingers are at, so don't use it
             _lastRotation = args.TotalAngle;
         }
         Rotate( this, args );
         return args.Handled;
     }
     return false;
 }
Exemplo n.º 37
0
        private void HandleIncomingPos(byte[] message)
        {
            if (!IsLoggedIn)
                return;

            byte thisid = message[0];

            ushort x = Packet.NTHO(message, 1);
            ushort y = Packet.NTHO(message, 3);
            ushort z = Packet.NTHO(message, 5);
            byte rotx = message[7];
            byte roty = message[8];
            oldPos = new Vector3S(Pos);
            Vector3S fromPosition = new Vector3S(oldPos.x, oldPos.z, oldPos.y);
            Pos.x = (short)x;
            Pos.y = (short)y;
            Pos.z = (short)z;
            oldRot = Rot;
            Rot = new Vector2S(rotx, roty);
            bool needsOwnPos = false;
            if (!(fromPosition.x == Pos.x && fromPosition.y == Pos.y && fromPosition.z == Pos.z))
            {
                MoveEventArgs eargs = new MoveEventArgs(new Vector3S(fromPosition), new Vector3S(Pos));
                eargs = OnPlayerMove.Call(this, eargs, OnAllPlayersMove);
                if (eargs.Canceled)
                {
                    Pos = fromPosition;
                    oldPos = fromPosition;
                    needsOwnPos = true;
                }
                else
                {
                    if (eargs.ToPosition / 32 != eargs.FromPosition / 32)
                    {
                        eargs = OnPlayerBigMove.Call(this, eargs, OnAllPlayersBigMove);
                        if (eargs.Canceled)
                        {
                            Pos = fromPosition;
                            oldPos = fromPosition;
                            needsOwnPos = true;
                        }
                        else
                        {
                            Pos = eargs.ToPosition;
                            oldPos = eargs.FromPosition;
                        }
                    }
                    else
                    {
                        Pos = eargs.ToPosition;
                        oldPos = eargs.FromPosition;
                    }
                }
            }
            if (oldRot.x != Rot.x || oldRot.z != Rot.z)
            {
                RotateEventArgs eargs = new RotateEventArgs((byte)Rot.x, (byte)Rot.z);
                eargs = OnPlayerRotate.Call(this, eargs, OnAllPlayersRotate);
                if (eargs.Canceled)
                {
                    Rot = new Vector2S(eargs.Rot[0], eargs.Rot[1]);
                    needsOwnPos = true;
                }
                else
                {
                    Rot = new Vector2S(eargs.Rot[0], eargs.Rot[1]);
                }
            }
            if (needsOwnPos)
                SendThisPlayerTheirOwnPos();
            UpdatePosition(false);
        }