/// <summary> /// Move Next Blocks to activeBlocks /// </summary> public void SetNext() { PlaceableData block1; if (blockCount > 0 && blockCount % data.diamondCounter == 0) { block1 = data.diamond; } else { block1 = RollForBlockWeighted(); } blockCount++; PlaceableData block2; if (blockCount > 0 && blockCount % data.diamondCounter == 0) { block2 = data.diamond; } else { block2 = RollForBlockWeighted(); } blockCount++; this.nextBlock1 = block1; this.nextBlock2 = block2; OnSetNext?.Invoke(block1, block2); }
/// <summary> /// Spawn next blocks, (Spawn blocks and put them into nextBlock Set) /// </summary> public void SpawnNext() { Block block = Spawn(nextBlock1); SetupBlock(block, BlockSpawnPosition.center); activeBlocks.Add(block); Block block2 = Spawn(nextBlock2); SetupBlock(block2, BlockSpawnPosition.top); activeBlocks.Add(block2); nextBlock1 = null; nextBlock2 = null; }
/// <summary> /// Get block from pool /// </summary> /// <param name="index"></param> /// <returns></returns> public Block GetPool(PlaceableData pData) { List <Block> pool = pools[pData]; for (int i = 0; i < pool.Count; i++) { if (pool[i].isActiveAndEnabled == false) { return(pool[i]); } } Block block = Instantiate(pData.prefab); pool.Add(block); return(block); }
public Block Spawn(PlaceableData pData) { Block block = GetPool(pData); return(block); }
public void SetBlocks(PlaceableData block1, PlaceableData block2) { this.centerBlock.sprite = block1.original; this.topBlock.sprite = block2.original; }