예제 #1
0
 public Tetramino(TetraminoTypeEnum type, int[,] matrix, Vector2 pivot, RotationStateEnum currentRotation, MinoColorsEnum color)
 {
     Type   = type;
     Matrix = matrix;
     Pivot  = pivot;
     CurrentRotationState = currentRotation;
     Color = color;
     Size  = new Vector2Int(Matrix.GetLength(0), Matrix.GetLength(1));
 }
예제 #2
0
        public static List <Vector2Int> Get(TetraminoTypeEnum type, RotationStateEnum currentState, RotationDirectionEnum direction)
        {
            WallKicksInfo wallKicks;

            switch (type)
            {
            case TetraminoTypeEnum.O:
                return(new List <Vector2Int>()
                {
                    new Vector2Int(0, 0)
                });

            case TetraminoTypeEnum.I:
                wallKicks = WallKicksI[currentState];
                break;

            case TetraminoTypeEnum.L:
            case TetraminoTypeEnum.J:
            case TetraminoTypeEnum.Z:
            case TetraminoTypeEnum.S:
            case TetraminoTypeEnum.T:
                wallKicks = WallKicksJLSTZ[currentState];
                break;

            default:
                throw new InvalidOperationException();
            }

            switch (direction)
            {
            case RotationDirectionEnum.Clockwise:
                return(wallKicks.clockwiseWallKicks);

            case RotationDirectionEnum.Counterclockwise:
                return(wallKicks.counterClockwiseWallKicks);

            default:
                throw new InvalidOperationException();
            }
        }
예제 #3
0
 public TetraminoLetterSignal(TetraminoTypeEnum type)
 {
     TetraminoType = type;
 }