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)); }
public BlockModel(List <CellPosition> geometry, GameTypes.BlockSizeType blockSizeType) { Id = BlockUniqueId.GetUniqueId(); BlockSizeType = blockSizeType; Geometry = geometry; OccupyCells = new List <CellPosition>(); EnablePositions = new List <CellPosition>(); }