private void Initialize(InputReceiver inputReceiver, GameGrid gameGrid, IBlockItemsPoolModule blockItemsPoolModule, Option <BlockItem[]> blockItems) { GameGrid = gameGrid; BlockItems = blockItems; _blockItemsPoolModule = blockItemsPoolModule; SubscribeToObservables(inputReceiver); }
private void InitModuleReferences() { _blockItemsPoolModule = ModulesRegister.Get <IBlockItemsPoolModule>() .ThrowIfError(() => $"Cannot initialize module references at {nameof(GameLevelInitializer)}") .Value; _gameStateModule = ModulesRegister.Get <IGameStateModule>() .ThrowIfError(() => $"Cannot initialize module references at {nameof(GameLevelInitializer)}") .Value; }
public static ShapeElement Create(InputReceiver inputReceiver, GameGrid gameGrid, IBlockItemsPoolModule blockItemsPoolModule, Option <BlockItem[]> blockItems) { var shapeGameObject = new GameObject("Shape"); var blockGroups = shapeGameObject.AddComponent <ShapeElement>(); blockGroups.Initialize(inputReceiver, gameGrid, blockItemsPoolModule, blockItems); return(blockGroups); }
public GameGrid(Vector2Int playAreaBounds, Option <BlockItem[]> blockItems, IBlockItemsPoolModule blockItemsPoolPoolPool) { GridArea = new BlockItem[playAreaBounds.x, playAreaBounds.y]; _blockItemsPoolPool = blockItemsPoolPoolPool; if (blockItems.isSome) { InitBlocks(blockItems.value); } }
public static BlockItem[] Create(ShapeType type, IBlockItemsPoolModule blockItemsPoolModule) { if (type == ShapeType.Combined) { type = Random.Range(0, 2) == 0 ? ShapeType.TType : ShapeType.Corner; } var itemsQuantity = type == ShapeType.Corner ? 5 : 4; var blocks = blockItemsPoolModule.GetBlockItems(itemsQuantity, true); if (type == ShapeType.TType) { SetItemsTTypeItemsPosition(blocks); } else { SetItemsCornerItemsPosition(blocks); } return(blocks); }