//=============================================
    //создать новую фигуру на базе фигуры из очереди (взять из нее каркас и типы камней)
    //queueFigura - каркас + типы квадратов (без графики)
    public void Create_Figura(OneQueueFigura queueFigura, Transform parent)
    {
        carcas_type = queueFigura.carcas_type;
        carcas      = queueFigura.carcas;
        //myUtils.console_log(carcas_type, carcas);
        //создание фигуры по центру плашки
        Vector2 min       = new Vector2((float)carcas.getMinD(0), (float)carcas.getMinD(1));
        Vector2 pt_center = new Vector2((float)GameConstants.AREA_WIDTH / 2f, -min.y + (float)GameConstants.AREA_VISUAL_HEIGHT);

        for (int i = 0; i < carcas.numPoints; i++)
        {
            int       type   = queueFigura.squaresList[i].type;
            float     dx     = GameConstants.AREA_START.x + ((float)carcas.coords[i, 0] + pt_center.x + 0.5f) * GameConstants.AREA_SQUARE_SIZE.x;
            float     dy     = GameConstants.AREA_START.y + ((float)carcas.coords[i, 1] + pt_center.y + 0.5f) * GameConstants.AREA_SQUARE_SIZE.y;
            OneSquare square = myUtils.create_OneSquare(new Vector3(dx, dy, 0f), parent, GameConstants.AREA_SQUARE_SCALE, type, GameConstants.sANIM_BASE);
            squaresList.Add(square);
        }
        coords = new Vector2Int(
            Mathf.RoundToInt(pt_center.x),
            Mathf.RoundToInt(pt_center.y)
            );
        delta                        = new Vector2(0f, 0f);
        last_move_time               = 0f;
        rotate_index                 = 0;
        flagFastSpeed                = false;
        figure_area_acept_time       = 0;
        anti_click_space_first_frame = true;
    }
    //=========================================
    //добавить случайную фигуру в конец очереди
    public void Add_Random_Figura()
    {
        CarcasType carcase_type = FiguraCarcasesList.get_RandomCarcasType();
        //myUtils.console_log("random carcase_type =", carcase_type);
        Vector3        crd     = new Vector3(0f, -top_point_y - GameConstants.QUEUE_START.y - (float)figures_Queue.Count * GameConstants.QUEUE_ITEM_HEIGHT, 0f);
        OneQueueFigura qfigura = new OneQueueFigura();
        Transform      parent  = GameObject.FindGameObjectWithTag("queue_figures").GetComponent <Transform>();

        qfigura.Create_Queue_Figura(carcase_type, parent);
        qfigura.MoveTo(crd);
        figures_Queue.Add(qfigura);
    }
    //=========================================
    //получить первую фигуру в очереди
    public OneQueueFigura get_FirstFigure()
    {
        OneQueueFigura figura = figures_Queue[0];

        return(figura);
    }