public static GameObject CreateBlock(int index, createMode mode)
    {
        blockSerialized = serialization.getConvertedTiles(index);
        block           = createGameObject("Block");
        createTiles(mode);

        if (mode == createMode.STANDARD)
        {
            block.AddComponent <Block>();
            block.GetComponent <Block>().lockRotation = !serialization.isRotatable(index);
            detectors = createGameObjectAsChildren(block, "Detectors");
            detectors.AddComponent <Detector>();
            createDetectors();

            if (serialization.isRotatable(index))
            {
                createDetectorsRotation();
            }
            else
            {
                createGameObjectAsChildren(detectors, "Rotation");
            }
        }
        fixPosition();
        return(block);
    }
    private static void createTiles(createMode mode)
    {
        Vector2 pos = new Vector2();

        for (int y = 0; y < 6; ++y, pos.y -= 0.38382f, pos.x = 0)
        {
            for (int x = 0; x < 6; ++x, pos.x += 0.38382f)
            {
                if (blockSerialized[x, y])
                {
                    GameObject buffer = createGameObjectAsChildren(block, "Tile", pos, 0.3f);
                    buffer.transform.tag = "Game_blockTile";
                    addSprite(buffer);

                    if (mode == createMode.STANDARD)
                    {
                        addPhysics(buffer);
                        buffer.AddComponent <BlockTile>();
                    }
                }
            }
        }
    }