//Call to the engine to create a new piece and create a representation of the random piece in view private void CreateTetrimino() { if (!pv.IsMine && !PhotonNetwork.IsMasterClient) { return; } if (mCurrentTetrimino != null) { mCurrentTetrimino.isLocked = true; } var tetrimino = mPlayfield.CreateTetrimo(); var tetriminoView = mTetriminoPool.Collect(); tetriminoView.InitiateTetrimino(tetrimino); mTetriminos.Add(tetriminoView); if (mPreview != null) { mTetriminoPool.Release(mPreview); } mPreview = mTetriminoPool.Collect(); mPreview.InitiateTetrimino(tetrimino, true); mRefreshPreview = true; }
//When all the blocks of a piece is destroyed, we must release ("destroy") it. private void DestroyTetrimino(TetriminoView obj) { var index = mTetriminos.FindIndex(x => x == obj); mTetriminoPool.Release(obj); mTetriminos[index].destroyed = true; }
//When all the blocks of a piece is destroyed, we must release ("destroy") it. private void DestroyTetrimino(TetriminoView obj) { if (!pv.IsMine) { return; } var index = mTetriminos.FindIndex(x => x == obj); mTetriminoPool.Release(obj); mTetriminos[index].destroyed = true; }
public void discardPiece() { if (mTetriminos.Count > 1) { if (!hasStashed) { //Debug.Log(mTetriminoPool.Count); int index = (mTetriminoPool.Count == 2) ? 0 : mTetriminoPool.Count - 1; TetriminoView TV = mTetriminoPool[index]; DestroyTetrimino(TV); mTetriminos.Remove(TV); //mTetriminoPool.Release(mTetriminoPool[index]); CreateTetrimino(); hasStashed = true; } } }
//Call to the engine to create a new piece and create a representation of the random piece in view private void CreateTetrimino() { if (mCurrentTetrimino != null) { mCurrentTetrimino.isLocked = true; } var tetrimino = mPlayfield.CreateTetrimo(); var tetriminoView = mTetriminoPool.Collect(); tetriminoView.InitiateTetrimino(tetrimino); mTetriminos.Add(tetriminoView); if (mPreview != null) { mTetriminoPool.Release(mPreview); } mPreview = mTetriminoPool.Collect(); mPreview.InitiateTetrimino(tetrimino, true); mRefreshPreview = true; }
//[PunRPC] //Call to the engine to create a new piece and create a representation of the random piece in view private void CreateTetrimino() { hasStashed = false; if (mCurrentTetrimino != null) { mCurrentTetrimino.isLocked = true; } var tetrimino = mPlayfield.CreateTetrimo(); var tetriminoView = mTetriminoPool.Collect(); tetriminoView.InitiateTetrimino(tetrimino); mTetriminos.Add(tetriminoView); if (mPreview != null) { mTetriminoPool.Release(mPreview); } mPreview = mTetriminoPool.Collect(); mPreview.InitiateTetrimino(tetrimino, true); //Try to create a nextBlock view if (mNextView != null) { mTetriminoPool.Release(mNextView); } mNextView = mTetriminoPool.Collect(nextTetriminoParent); mNextView.InitiateTetrimino(mPlayfield.mNextTetrimino); mRefreshPreview = true; if (firstPiece) { firstPiece = false; } }