예제 #1
0
        public static IPiece CreatePiece(Common.DataContracts.Pieces piece, int spawnX, int spawnY, int spawnOrientation, int index)
        {
            //return new SRS.TetriminoI(spawnX, spawnY, spawnOrientation, index);
            switch (piece)
            {
            case Common.DataContracts.Pieces.TetriminoI:
                return(new SRS.TetriminoI(spawnX, spawnY, spawnOrientation, index));

            case Common.DataContracts.Pieces.TetriminoJ:
                return(new SRS.TetriminoJ(spawnX, spawnY, spawnOrientation, index));

            case Common.DataContracts.Pieces.TetriminoL:
                return(new SRS.TetriminoL(spawnX, spawnY, spawnOrientation, index));

            case Common.DataContracts.Pieces.TetriminoO:
                return(new SRS.TetriminoO(spawnX, spawnY, spawnOrientation, index));

            case Common.DataContracts.Pieces.TetriminoS:
                return(new SRS.TetriminoS(spawnX, spawnY, spawnOrientation, index));

            case Common.DataContracts.Pieces.TetriminoT:
                return(new SRS.TetriminoT(spawnX, spawnY, spawnOrientation, index));

            case Common.DataContracts.Pieces.TetriminoZ:
                return(new SRS.TetriminoZ(spawnX, spawnY, spawnOrientation, index));

            case Common.DataContracts.Pieces.Invalid:
                Log.Default.WriteLine(LogLevels.Warning, "Create random cell because server didn't send next cell");
                return(new SRS.TetriminoZ(spawnX, spawnY, spawnOrientation, index));    // TODO: sometimes server takes time to send next cell, it should send 2 or 3 next pieces to ensure this never happens
            }
            Log.Default.WriteLine(LogLevels.Warning, "Unknown piece {0}", piece);
            return(new SRS.TetriminoZ(spawnX, spawnY, spawnOrientation, index));
        }
예제 #2
0
        public static IPiece CreatePiece(Common.DataContracts.Pieces piece, int spawnX, int spawnY, int spawnOrientation, int index, bool isMutationActive)
        {
            if (isMutationActive)
            {
                switch (piece)
                {
                case Common.DataContracts.Pieces.TetriminoI:
                    return(new Mutated.MutatedI(spawnX, spawnY, spawnOrientation, index));

                case Common.DataContracts.Pieces.TetriminoJ:
                    return(new Mutated.MutatedJ(spawnX, spawnY, spawnOrientation, index));

                case Common.DataContracts.Pieces.TetriminoL:
                    return(new Mutated.MutatedL(spawnX, spawnY, spawnOrientation, index));

                case Common.DataContracts.Pieces.TetriminoO:
                    return(new Mutated.MutatedO(spawnX, spawnY, spawnOrientation, index));

                case Common.DataContracts.Pieces.TetriminoS:
                    return(new Mutated.MutatedS(spawnX, spawnY, spawnOrientation, index));

                case Common.DataContracts.Pieces.TetriminoT:
                    return(new Mutated.MutatedT(spawnX, spawnY, spawnOrientation, index));

                case Common.DataContracts.Pieces.TetriminoZ:
                    return(new Mutated.MutatedZ(spawnX, spawnY, spawnOrientation, index));

                //
                case Common.DataContracts.Pieces.Invalid:
                    Log.Default.WriteLine(LogLevels.Warning, "Create random cell because server didn't send next cell");
                    return(CreatePiece(Common.DataContracts.Pieces.TetriminoZ, spawnX, spawnY, spawnOrientation, index));    // TODO: sometimes server takes time to send next cell, it should send 2 or 3 next pieces to ensure this never happens
                }
            }
            else
            {
                return(CreatePiece(piece, spawnX, spawnY, spawnOrientation, index));
            }
            Log.Default.WriteLine(LogLevels.Warning, "Unknow piece {0}", piece);
            return(CreatePiece(Common.DataContracts.Pieces.TetriminoZ, spawnX, spawnY, spawnOrientation, index));
        }
예제 #3
0
파일: Factory.cs 프로젝트: SinaC/TetriNET
 public IPiece CreatePiece(Common.DataContracts.Pieces piece, int spawnX, int spawnY, int spawnOrientation, int index, bool isMutationActive)
 {
     return(Piece.CreatePiece(piece, spawnX, spawnY, spawnOrientation, index, isMutationActive));
 }