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