/// <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); }); }
/// <summary> /// Stops movement /// </summary> /// <param name="parBits">The movement bits</param> public void StopMovement(Enums.ControlBits parBits) { Functions.SetControlBit((int)parBits, 0, Environment.TickCount); }
/// <summary> /// Stop movement /// </summary> internal void StopMovement(Enums.ControlBits parBits) { Functions.SetControlBit((int)parBits, 0, Environment.TickCount); Shared.StartedMovement = false; }
internal static bool HasFlag(this Enums.ControlBits value, Enums.ControlBits flag) { return((value & flag) != 0); }
/// <summary> /// Movement /// </summary> internal void StartMovement(Enums.ControlBits parBits) { Functions.SetControlBit((int)parBits, 1, Environment.TickCount); }