public static BlockModel GetRandomBlock(GameTypes.BlockSizeType sizeType)
        {
            List <CellPosition> geometry = new List <CellPosition>();

            if (sizeType == GameTypes.BlockSizeType.Small)
            {
                var blockNum  = Enum.GetValues(typeof(SmallBlockType)).Length;
                var vals      = Enum.GetValues(typeof(SmallBlockType)).OfType <SmallBlockType>().ToList();
                var r         = new System.Random();
                var blockType = vals[r.Next(vals.Count)];
                geometry = smallBlockGeomertyDict[blockType];
            }

            if (sizeType == GameTypes.BlockSizeType.Medium)
            {
                var blockNum  = Enum.GetValues(typeof(MediumBlockType)).Length;
                var vals      = Enum.GetValues(typeof(MediumBlockType)).OfType <MediumBlockType>().ToList();
                var r         = new System.Random();
                var blockType = vals[r.Next(vals.Count)];
                geometry = mediumBlockGeomertyDict[blockType];
            }

            if (sizeType == GameTypes.BlockSizeType.Large)
            {
                var blockNum  = Enum.GetValues(typeof(LargeBlockType)).Length;
                var vals      = Enum.GetValues(typeof(LargeBlockType)).OfType <LargeBlockType>().ToList();
                var r         = new System.Random();
                var blockType = vals[r.Next(vals.Count)];
                geometry = largeBlockGeomertyDict[blockType];
            }
            geometry = _RandomRotateAndReverse(geometry);

            return(new BlockModel(geometry, sizeType));
        }
Exemple #2
0
 public BlockModel(List <CellPosition> geometry, GameTypes.BlockSizeType blockSizeType)
 {
     Id              = BlockUniqueId.GetUniqueId();
     BlockSizeType   = blockSizeType;
     Geometry        = geometry;
     OccupyCells     = new List <CellPosition>();
     EnablePositions = new List <CellPosition>();
 }