internal override IEnumerator SpawnPieces(Texture texture)
    {
        yield return(internalPuzzlePivot.SpawnPieces(texture));

        internalPuzzlePivot.ScramblePiecePosition();
        yield return(null);

        piecePivots = CreatePiecePivotList();

        yield return(TakeSnapShotsOfPiecePivots(piecePivots));

        if (TopPivot() == this)
        {
            yield return(base.SpawnPieces(null));
        }
        else
        {
            yield return(TopPivot().SpawnPieces(null));
        }

        SetPiecePivotsExtraRenderer(piecePivots);

        for (int i = 0; i < piecePivots.Count; i++)
        {
            TopPivot().SetTextureForPiecesRenderer(piecePivots[i].picture, piecePivots[i].pieceRendererIndex);
        }

        SetPiecePivotsGoal(piecePivots);

        internalPuzzlePivot.pivot.gameObject.transform.localPosition = new Vector3(0, 0, -5);
        HideAllPiecePivots();
    }
 public override void SetPiecePosition()
 {
     topPuzzlePivot.ScramblePiecePosition();
 }