コード例 #1
0
        /// <summary>
        ///     Starts a movement
        /// </summary>
        /// <param name="parBits">The movement bits</param>
        public void StartMovement(Enums.ControlBits parBits)
        {
            MainThread.Instance.Invoke(() =>
            {
                if (parBits != Enums.ControlBits.Nothing)
                {
                    var movementState = MovementState;
                    if (parBits.HasFlag(Enums.ControlBits.Front) && movementState.HasFlag(Enums.MovementFlags.Back))
                    {
                        StopMovement(Enums.ControlBits.Back);
                    }

                    if (parBits.HasFlag(Enums.ControlBits.Back) && movementState.HasFlag(Enums.MovementFlags.Front))
                    {
                        StopMovement(Enums.ControlBits.Front);
                    }

                    if (parBits.HasFlag(Enums.ControlBits.Left) && movementState.HasFlag(Enums.MovementFlags.Right))
                    {
                        StopMovement(Enums.ControlBits.Right);
                    }

                    if (parBits.HasFlag(Enums.ControlBits.Right) && movementState.HasFlag(Enums.MovementFlags.Left))
                    {
                        StopMovement(Enums.ControlBits.Left);
                    }

                    if (parBits.HasFlag(Enums.ControlBits.StrafeLeft) && movementState.HasFlag(Enums.MovementFlags.StrafeRight))
                    {
                        StopMovement(Enums.ControlBits.StrafeRight);
                    }

                    if (parBits.HasFlag(Enums.ControlBits.StrafeRight) && movementState.HasFlag(Enums.MovementFlags.StrafeLeft))
                    {
                        StopMovement(Enums.ControlBits.StrafeLeft);
                    }
                }
                Console.WriteLine("Starting movement");
                Functions.SetControlBit((int)parBits, 1, Environment.TickCount);
            });
        }
コード例 #2
0
 /// <summary>
 ///     Stops movement
 /// </summary>
 /// <param name="parBits">The movement bits</param>
 public void StopMovement(Enums.ControlBits parBits)
 {
     Functions.SetControlBit((int)parBits, 0, Environment.TickCount);
 }
コード例 #3
0
 /// <summary>
 ///     Stop movement
 /// </summary>
 internal void StopMovement(Enums.ControlBits parBits)
 {
     Functions.SetControlBit((int)parBits, 0, Environment.TickCount);
     Shared.StartedMovement = false;
 }
コード例 #4
0
 internal static bool HasFlag(this Enums.ControlBits value, Enums.ControlBits flag)
 {
     return((value & flag) != 0);
 }
コード例 #5
0
 /// <summary>
 /// Movement
 /// </summary>
 internal void StartMovement(Enums.ControlBits parBits)
 {
     Functions.SetControlBit((int)parBits, 1, Environment.TickCount);
 }