public void StartMovement(Vector2 direction) { lock (m_lock) { m_movementType = MovementType.Moving; m_direction = direction; m_lastMovementUpdate = Environment.TickCount; if (m_movementTimer.IsRunning) { m_movementTimer.Change(0, 1000, false); } else { m_movementTimer.Start(0, 1000, false); } } }