Example #1
0
 private void EndEdit()
 {
     if (mGameSettings != null)
     {
         var specs = new TetriminoSpecs();
         specs.name                            = mName;
         specs.color                           = mColor;
         specs.initialPosition                 = mInitialPosition;
         specs.serializedBlockPositions        = GetSerializableLayout(mTetriminoLayout);
         mGameSettings.pieces[mCurrentEditing] = specs;
     }
 }
Example #2
0
    private void BeginEdit(int index, TetriminoSpecs specs)
    {
        if (index == -1)
        {
            specs.name  = "New Tetrimino";
            specs.color = Color.white;
            specs.serializedBlockPositions = GetSerializableLayout(GetEmptyLayout());
            specs.initialPosition          = GetInitialPositions();
            mGameSettings.pieces.Add(specs);
            index = mGameSettings.pieces.Count - 1;
        }

        GUIUtility.keyboardControl = 0;
        GUIUtility.hotControl      = 0;

        mCurrentEditing = index;

        var pos            = 0;
        var blockPositions = new int[Tetrimino.BLOCK_ROTATIONS][][];

        for (int i = 0; i < blockPositions.Length; i++)
        {
            blockPositions[i] = new int[Tetrimino.BLOCK_AREA][];
            for (int j = 0; j < blockPositions[i].Length; j++)
            {
                blockPositions[i][j] = new int[Tetrimino.BLOCK_AREA];
                for (int k = 0; k < blockPositions[i][j].Length; k++)
                {
                    blockPositions[i][j][k] = specs.serializedBlockPositions[pos++];
                }
            }
        }

        mTetriminoLayout = blockPositions;
        mInitialPosition = specs.initialPosition;
        mColor           = specs.color;
        mName            = specs.name;
    }