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; } }
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; }